Public: anyone can read this; nobody can change it.
The OpenID configuration lists only the scopes the forge grants, and the MCP signup tool says what the setting does #46
Check · Review · Land done · Live — Landed; nothing deploys from this branch, so this is the end of its path.
**Problem.** `/.well-known/openid-configuration` listed the scope `admin`. `/oauth/authorize` never grants it. The MCP `signup` tool said "Nothing reads it yet", but #2245 made the doors read the setting.
shipped merged
Sign in to join this conversation.
Problem.
/.well-known/openid-configurationlisted the scopeadmin./oauth/authorizenever grants it. The MCPsignuptool said "Nothing reads it yet", but #2245 made the doors read the setting.Root cause. The discovery documents wrote the scopes as literals, apart from the type that decides what authorize grants. The tool text was not changed with #2245.
Fix.
OAUTH_SCOPES = ["ro", "rw"] as constincore/oauth.tsdefinesOAuthScopeandisOAuthScope. The three discovery documents listOIDC_SCOPESandOAUTH_SCOPESfrom those constants, so they cannot list a scope that authorize does not grant.signuptool says what the setting does: open lets anyone in; invite and closed refuse a new account (invite links are not redeemed yet); the first account is never refused.Test.
test/oauth-discovery.test.tsexpectsscopes_supportedto be exactlyopenid profile email ro rw.test/mcp.test.tschecks thesignuptool text. On main: both fail. With the fix: both pass.Validate (fast). Result: baseline.
contain.test.ts,studio-runs.test.tsandweb-origins.test.tsalso fail on main 1051d451 on this box. tsc passes.Note: if the invite PR (L1) lands, the words "invite links are not redeemed yet" must change. The PR that lands second changes them.