mirror of https://github.com/OpenVidu/openvidu.git
44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# 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.
|