registry: sign-in through GitHub, GitLab and Codeberg, OAuth 2.0 with PKCE (slice 2 of #16) #224
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
A person signs up and signs in to the registry through GitHub, GitLab or Codeberg. A first sign-in creates an account whose owner name the person chooses; a later one opens a session for the account the identity is linked to; a signed-in person can link a further provider to the same account.
Owner decision (recorded on #16)
Pinned records
S256), RFC 9700 (OAuth 2.0 security best current practice)Acceptance criteria
S256) and a single-usestatebound to the browser session, for GitHub, GitLab and Codeberg (Codeberg is a Forgejo: the same code as a configurable Forgejo/Gitea instance); the redirect URI is fixed per provider, never taken from the request.id, GitLabid, Forgejoid) is the identity's subject; login names and e-mail addresses are display data only.REGISTRY_GITHUB_CLIENT_ID/_SECRETand the GitLab and Codeberg equivalents, names final in the PR); a provider without configuration is not offered.state, reusedstate, wrong PKCE verifier, provider error, unknown provider, taken name);torb test tools/registry/testsgreen natively and in the VM.tools/registry/README.mdand RELEASE.md "Not built yet" updated.Seed impact
None: TorbScript in
tools/registryoverstd/http,std/json,std/digest(SHA-256 for PKCE) andstd/random; no syntax change, no native, no driver flag, no looked-up std name.Size and dependencies
One PR, one or two Conventional Commits. Depends on slice 1 (#223, sessions, identities, account page). Parent: #16. Not
readyuntil slice 1 (#223) has landed. Security-relevant: architect review of the diff.[loop:torbscript] intake: in scope (author orion, label loop), slice 2 of #16 filed by the split, not a duplicate, no collision with a design record, no seed impact. next: waiting (slice 1 #223 has not landed; PR #249 is open) until 2026-10-10T04:00:00Z
[loop:torbscript] claim implement by session:loop-torbscript-20261009 until 2026-10-09T12:25Z
[loop:torbscript] close: PR #257 merged by argus (merge commit
2b17439f), issue closed. Claim released.