docs(auth): tenant resolution + close #2577 runtime follow-ups - #2580
Merged
Conversation
Reframes the ID-scoped-task envelope-identity injection in compliance storyboards as a sandbox routing convention rather than a pending spec follow-up. Per #2577, after reviewing the runtime reverse-index proposal with protocol- and product-design lenses: - Production sellers resolve tenant from the authenticated principal (bearer / mTLS / RFC 9421), not envelope payload. Adding a cross-session reverse index in the training agent just to move identity off the wire in storyboards would be sandbox plumbing without spec meaning. - Storyboards keep carrying envelope identity on the seven ID-scoped exempt tasks because sessionKeyFromArgs routes by payload; the lint already stops enforcing it. - The three tasks without a required globally-unique scope-ID (preview_creative, build_creative, get_plan_audit_logs) stay in TENANT_SCOPED_TASKS — lint-enforced envelope identity matches how sandbox storyboards have to work anyway. Docs changes: - New Tenant resolution section in docs/building/integration/authentication: normative statement that AdCP resolves tenant from the authenticated principal, with the ID-scoped-tasks rationale called out so production implementors and certification candidates don't absorb the sandbox convention as the spec. - docs/contributing/storyboard-authoring labels envelope-identity injection on ID-scoped tasks as a sandbox routing convention and links to the auth doc. - scripts/lint-storyboard-scoping.cjs header comment matches the docs. Closes the open runtime/cleanup follow-ups from #2577. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Schema Link Check ResultsCommit:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reframes the ID-scoped-task envelope-identity injection in compliance storyboards as a sandbox routing convention, not a pending spec follow-up, and closes the open runtime/cleanup items from #2577.
After reviewing the runtime reverse-index proposal with protocol-design and product lenses:
sessionKeyFromArgsroutes by payload; the lint (already relaxed in feat(compliance): scoping lint exempts ID-scoped tasks (#2577 Option C) #2578) just stops enforcing it.preview_creative,build_creative,get_plan_audit_logs) stay inTENANT_SCOPED_TASKS— lint-enforced envelope identity matches how sandbox storyboards have to work anyway. Schema adjustments remain a separate design call.Docs changes
Tenant resolutionsection indocs/building/integration/authentication.mdx— normative statement that AdCP resolves tenant from the authenticated principal, with the ID-scoped-tasks rationale called out so production implementors and certification candidates don't absorb the sandbox convention as the spec.docs/contributing/storyboard-authoring.mdnow labels envelope-identity injection on the seven ID-scoped tasks as a sandbox routing convention and links to the auth doc.scripts/lint-storyboard-scoping.cjsheader comment matches.Expert review incorporated
Test plan
npm run build:compliance— storyboard scoping lint passes, compliance builds cleannpm run build— full site build succeedsnpm run test:unit— 587/587 passtsc --project server/tsconfig.json --noEmit— clean#2577closed with the summary comment after merge🤖 Generated with Claude Code