Repository navigation
docs(adr-0135): with SSO domain verification on, a provider creates an account only at a domain it has proven - #32951
Conversation
…n account only at a domain it has proven Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017xRBcT1w3zpekijraHJE4f
…ly-at-proven-domain-adr
…les do Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017xRBcT1w3zpekijraHJE4f
…ly-at-proven-domain-adr
…vider-per-domain claim rule to their symbols Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1fyAgM5kyVcE6pbx2
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract-review-claim: session_016WV4cx5nHfga3Hm9BzikGw · head 4b57a83 · 2026-11-13T00:19Z Delta review of the FAIL on #32638 (record 6839445979: M1, S1) plus a full governed-text review of this head; the lane seat takes it (rules face, CONTRACT_REVIEW_TIER). |
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract reviewServed-tier: The face is rules: one governed path. This is a full review of this head, and the delta on record 6839445979 (#32638: M1, S1). Read: this PR's body, its 1-file list and its net diff against ① Derived judgmentsEach change the diff implies, named right or wrong.
② Semver levelThe ③ Boundary flagsCheck-runs on this head: 54, all completed; 24 success, 28 skipped, 2 failure. The failures are
④ Design judgmentThe delta on record 6839445979.
The delta between Is the red right? Yes. The gate reports a true fact about this head: the tree does not hold the code the sentence describes. It clears with no edit to this PR once #32669 is on The ADR against its first consumer. The 5 changed sentences were read against #32669 and the vendor code, as ① lists, and each holds. The ADR against its own file.
No must-fix. The delta owed is S2: one note, or one clause, in the same paragraph. Implemented-by: VERDICT: PASS |
…y's own, and state its condition and the claim rule's bound Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1fyAgM5kyVcE6pbx2
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract-review-claim: session_016WV4cx5nHfga3Hm9BzikGw · head 0815aea · 2026-11-13T00:42Z Delta review of S2, N1, N2 (record 6840140663) by the same reviewer. |
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract reviewServed-tier: This is the delta on record 6840140663 (head ① Derived judgments
② Semver levelUnchanged. The ③ Boundary flagsCheck-runs on this head: 48, all completed; 24 success, 22 skipped, 2 failure. The failures are the same two as on
④ Design judgmentThe delta on record 6840140663.
Does the new text introduce anything wrong? No. Two wordings reach a little further than the file supports; neither changes the rule or who decides it.
Line 261 runs to 113 columns, the file's only line over 110. Cosmetic; no gate on this head flagged it. No must-fix and no should-fix. Nits alone end the round. Implemented-by: VERDICT: PASS |
…ccount rule and the PR that implements it Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1fyAgM5kyVcE6pbx2
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract-review-claim: session_016WV4cx5nHfga3Hm9BzikGw · head 54b1620 · 2026-11-13T01:02Z Delta review of N4, N5 and the ruling now cited in the D6 note (record 6840500717), same reviewer. |
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Contract reviewServed-tier: This is the delta on record 6840500717 (head ① Derived judgments
② Semver levelUnchanged. The ③ Boundary flagsCheck-runs on this head: 48, all completed; 24 success, 22 skipped, 2 failure. None is pending. The failures are the same two as on the two heads before:
④ Design judgmentThe delta on record 6840500717.
Does the new text introduce anything wrong? No. Each new clause was read against #32669's rule module and against the relay of the ruling, and each agrees with both. The note states the ruling's content and adds no mechanism the paragraph's anchor does not already reach: the entry rule lives in the anchored module,
No must-fix and no should-fix. Nits alone end the round. Implemented-by: VERDICT: PASS |
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw Regen-provenance: 6841052407 · 54b1620 → 970b381 · relay pr_update_branch (merge of main, 45 behind; main touched no file of this PR, so the net diff against main is identical before and after) → (empty) The merge brings in #32669, which the lint anchor in this ADR was waiting on. |
|
security#1 · os-elon-musk · session_016WV4cx5nHfga3Hm9BzikGw 席位核对 — ACCEPT · security#1 · head
|
Requested by Elon · project thread
Supersedes #32638.
维护者速读
docs/adr/**属 Tier H 受管面,不发布任何包;回滚即还原本 PR。新锚点指向 fix(plugin-auth)!: with SSO domain verification on, a provider creates an account only for an email address at a domain it has proven #32669 新增的文件,所以 fix(plugin-auth)!: with SSO domain verification on, a provider creates an account only for an email address at a domain it has proven #32669 合并前check:adr-symbol-anchors会红,这是有意为之,用门禁保证落地顺序。docs/adr/0135-identity-and-access-architecture.md中 "Domain verification is opt-in" 一段(唯一改动)。pnpm check:adr-symbol-anchors,预期 0 个发现。970b3810a66dbab784c8863084796da2cdedc0f6。What changes
docs/adr/0135-identity-and-access-architecture.md, the "Domain verification is opt-in" paragraph, states what verification guarantees:The two rule sentences carry symbol anchors (ADR-0135 Provenance point 2):
packages/plugins/plugin-auth/src/sso-account-at-proven-domain.ts#refuseSsoAccountOutsideProvenDomainandpackages/plugins/plugin-auth/src/sso-provider-lifecycle.ts#findSsoDomainClaim.Whose rule this is. The exact comparison and the "no posture, invitation or JIT toggle relaxes it" clause are a rule made in this repository, not text carried from cloud ADR-0024. The ADR now says so in a dated note under D6, and "What this record does NOT settle" names that note as the one exception to "this file adds no clause". The maintainer ruled on it on 2026-11-13 (approved, no carve-out; a domain entry counts only when written as a bare host), and the note records that ruling and names #32669 as the PR that implements it.
The code that holds the rule, its tests, the code comments and
content/docs/permissions/sso.mdxland in #32669. This PR is separate becausedocs/adr/**is a Tier H governed surface.Tests
None: documentation only.
Acceptance notes
check:adr-symbol-anchorsanswers oneunresolved-pathfinding until fix(plugin-auth)!: with SSO domain verification on, a provider creates an account only for an email address at a domain it has proven #32669 is onmain. That red is the landing order held by a gate: this PR lands after fix(plugin-auth)!: with SSO domain verification on, a provider creates an account only for an email address at a domain it has proven #32669. The second anchor resolves onmaintoday.Verification
At head
54b1620a02(5ad86211cewithorigin/mainmerged in, then the anchor commit4b57a83691, the delta-review fix0815aea4b7, and the ruling note),node scripts/pm/dispatch-gates.mjs --commandsderived 21 families from the 1 changed path; each was run with its exit captured before any pipe.Gates
check:adr-anchors,check:adr-index,check:adr-links,check:doc-authoring,check:nul-bytes,check:pm-governed-merges,check:pm-prior-rulings, and@objectstack/lintcheck:doc-formula-expressions(after building the lint closure).pnpm check:adr-symbol-anchorsexit 1, one finding:[unresolved-path]forsso-account-at-proven-domain.ts#refuseSsoAccountOutsideProvenDomain, the intended red described above. ThefindSsoDomainClaimanchor resolves.dispatch-gates --ran: 21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN.Generated by Claude Code