openvidu/openvidu-dashboard/openspec/changes/egress-raw-request/proposal.md

1.9 KiB

Proposal

Why

The request of an egress document is a summary: source, encoding and the kinds of output. The configuration of each output (file type and path, stream protocol and URLs, segment and image settings), the audio routes of the unified API and the replay offsets are lost. The full request, through the secrets allow-list, exists only in the raw EGRESS_* event payloads, which expire with the events retention while the egress document keeps the entities retention.

What Changes

  • The egresses document gains an optional rawRequest: the request of the egress encoded as raw event payloads encode egress.request, with the protocol field names, the set member of each oneof under the oneof name and only the allow-listed fields. Credentials, storage uploads and webhooks are never stored, and URLs are redacted.
  • request keeps its summary, unchanged.

Scope excludes the following:

  • Egress documents already stored, which have no rawRequest until their egress receives another event.
  • Any change to the allow-list or to the request summary.
  • How an edition shows the field.

Edition: CE and PRO (data model). Repositories: dashboard (contract, typings, data generator, specs) and openvidu-livekit (projection and document types).

CHANGELOG: none. The analytics data model has not shipped in a release.

Capabilities

New Capabilities

None.

Modified Capabilities

  • data-model: the egress document stores the request in raw payload encoding.

Impact

  • Contract (dashboard-ce/typings): EgressDocument.rawRequest, the egresses validator and the egress fixtures; the contract version stays 1.
  • Writer: the egress projection, the EgressDocument struct, the vendored contract and the integration tests.
  • Data generator: generated egress documents carry rawRequest.
  • Dashboard backend: none; the egress list projection does not read the field.