feat(odsp-driver): support per-session request headers - #28140
feat(odsp-driver): support per-session request headers#28140wilki-microsoft wants to merge 6 commits into
Conversation
Apply immutable host attribution headers across ODSP HTTP and Node Socket.IO paths while preserving driver-owned header precedence and socket isolation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ad526467-2d6a-4e98-baa3-39f92b8ee53c
Use a stable per-factory socket cache prefix when request headers are configured, retaining reconnect reuse while isolating factories. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ad526467-2d6a-4e98-baa3-39f92b8ee53c
|
Azure Pipelines: 1 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (471 lines, 24 files), I've queued these reviewers:
How this works
|
|
@microsoft-github-policy-service agree company="Microsoft" |
|
Azure Pipelines: 1 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Copilot reviewed 24 out of 24 changed files in this pull request and generated no comments.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Azure Pipelines: 1 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Document how host headers are sanitized, frozen, merged into ODSP fetches, and applied to Node Socket.IO handshakes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 15cbf0d1-2be0-4972-b4ed-e49bd805f37a
Adds optional immutable
HostStoragePolicy.requestHeadersand applies the values to ODSP HTTP requests and Node Socket.IO handshakes. Existing request headers win case-insensitive collisions, so hosts cannot replace driver-owned authorization or protocol headers. Header-bearing sockets are isolated per factory while reconnects from the same factory retain socket reuse.Status: 309 CommonJS and 309 ESM tests pass. Driver and definitions builds, API reports, export checks, ESLint, Biome, and
git diff --checkpass. A separate final review found no significant issues.This is a draft for ODSP-driver API and coverage review. Office Web Host and the consuming Whiteboard SDK still need to populate the policy in separate changes.
The current consumer is pinned to Fluid
2.30.x; if the API is accepted onmain, it also needs an owner-approved 2.x backport or a validated consumer upgrade before activation.