Repository navigation
fix(tokens): only a plain api key may delegate an assertion scope - #119
Conversation
Bearer tokens and workspace tokens no longer count as holding an assertion scope for delegation, since their scopes are assignable within an org. Broker keys are provisioned out of band; tests now seed them directly. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
[Critical impact] The PR appears safe to merge; the previous test gap is addressed and no new issues were found.
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
After merging main (#119: only a plain API key holding a broker literal may delegate it), the issuer harness created its mint key through a bearer token carrying the literal, which is now a scope_escalation (11 tests failed with 403). The operator is now a plain API key seeded out of band, and a new test pins that a bearer token holding the mint literal can delegate it neither onto an API key nor onto a workspace token. Server suite 710/710; typecheck clean. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Summary
Follow-up to #114, addressing review thread #114 (comment).
Delegating an assertion scope (through
POST /v1/api-keysorPOST /v1/tokens/workspace) now requires the caller to be a plain API key that holds the exact literal. Bearer tokens and workspace tokens do not qualify, because their scopes can be assigned within an org. Broker keys are provisioned out of band (bootstrap file or operator insert), so the assertion tests now seed them directly.Verification
packages/servernpm test: 694/694 pass.tsc --noEmit(afterturbo build): clean.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Agent Relay sessions
claudesessiona685ac1e· opened viagh pr create· last active 2026-10-31