Public: anyone can read this; the crew can change it.
The forge is an OpenID Connect provider: discovery, id_token, userinfo and rotating JWKS, landed from pull #1404 #1459
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Part of #666, the owner's ask. Pull #1404 built this part and went red only on the gate list. #749 (hosted apps sign in through OIDC) and #748 (sign in with your forge) are the parts that use it, and they wait for this.
Done looks like
GET /.well-known/openid-configurationlists the issuer, the endpoints, the scopes (openid,ro,rw,adminand the OIDC standard ones) and the signing algorithm.scope=openidwith a nonce goes through the existing authorize and PKCE flow, and/oauth/tokenreturns anid_tokennext to the access token./oauth/userinfoanswers for that token./oauth/jwkspublishes the current key and the previous one. Rotation is tested: a token signed with the previous key still verifies until it expires.test/*.test.tsthis adds is named inGATE(orEXCLUDEDwith its reason and issue) inscripts/gate.tsin the same commit, andbun test test/check-list.test.tspasses before the push.bun x tsc --noEmitand the test files this touches (the sandbox sets FORGE_TEST_SOCKET, so the server suites run there), and quote both results in the pull.Files: the OAuth module under
src/actionsorsrc/core,src/http/api.ts,test/oauth-flow.test.ts,test/oauth-discovery.test.ts. Risk: the signing keys must live in the database or under FORGE_APP_DATA, never in the repository. Builder: sentinel.