feat(dgw): add Session Recording Log artifacts - #1857
Conversation
|
Implementation notes:
Validation:
Out of scope:
|
Let maintainers know that an action is required on their side
|
There was a problem hiding this comment.
Pull request overview
Adds Gateway support for storing and downloading Session Recording Log (.slog) artifacts.
Changes:
- Adds the
slogrecording type, manifest metadata, and NDJSON responses. - Adds standalone webapp token signing and feature configuration.
- Preserves compatibility with legacy recording manifests.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
config_schema.json |
Defines the session-recording toggle. |
devolutions-gateway/src/api/health.rs |
Exposes the toggle in health metadata. |
devolutions-gateway/src/api/jrec.rs |
Serves .slog files as NDJSON. |
devolutions-gateway/src/api/webapp.rs |
Signs JREC push tokens. |
devolutions-gateway/src/config.rs |
Loads the webapp recording toggle. |
devolutions-gateway/src/recording.rs |
Persists artifact types and migrates manifests. |
devolutions-gateway/src/token.rs |
Defines the SLOG recording type. |
devolutions-gateway/tests/config.rs |
Updates configuration fixtures. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
874ab60 to
93a99fe
Compare
|
Scope update:
Current changed files:
Validation after reducing scope:
|
|
Post-reduction smoke test:
|
93a99fe to
7a4e0cd
Compare
ffc7d40 to
3426004
Compare
Adds RecordingFileType::SessionRecordingLog (wire value slog, extension .slog) and serves .slog recording files with the application/x-ndjson content type on pull. Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
3426004 to
5b0840b
Compare
Follow-up changes requested during review of #1857. Centralize recording extension handling in streaming through RecordingFileType so validation, stream routing, and terminal input selection are derived from one mapping. Define explicit MIME mappings for WebM, TRP, Asciicast, and SLOG artifacts, and declare PullRecordingFile response media types in source annotations so generated OpenAPI output remains aligned and stable. Issue: DGW-406 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Changelog: ignore
Adds server-side support for Session Recording Log recording artifacts.
Gateway can now accept JREC recording pushes with
fileType=slog, persist the raw UTF-8 NDJSON stream as.slog, and serve.slogdownloads with theapplication/x-ndjsoncontent type. This establishes the Gateway storage contract needed by AD Session Recording Log producers and future viewers. Consumers derive the artifact type from the file extension inrecording.json.This PR only adds the Gateway recording storage contract. Token generation remains provided by the host system, such as DVLS. Gateway standalone webapp sandbox wiring will follow separately on top of this server contract.
Issue: DGW-403