Skip to content

Commit f7fb5a9

Browse files
committed
docs(qa): withdraw the retired sys_account.issuer from two checklist carriers
identity-auth.linked-accounts-social required "issuer stamped" in a step and "issuer is stamped" in its first acceptance verify; sys_account.issuer retired with better-auth 1.7.3, so that oracle failed a healthy system. Both clauses now state (provider_id, account_id) is the identity and cite the retirement's migration entry; revision 2 recorded in history. FOLLOW-UPS.md section 6's persona row cited the issuer derivation as closing evidence; the clause is withdrawn with a visible correction note. Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv Co-authored-by: Claude <noreply@anthropic.com>
1 parent c118524 commit f7fb5a9

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

‎docs/qa/platform-checklist/FOLLOW-UPS.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ appended — the #7670 pattern).
148148
| §3 line | landed as | items unblocked |
149149
|---|---|---|
150150
| "a `publicSharing.enabled` object" | `showcase_client_brief` — `redactFields`, `maxExpiryDays`, and an `eligibility` predicate, with a `published` AND a `draft` brief seeded so the predicate is falsifiable | `access-security.share-link-capability-tokens` (was `blocked(fixture)`, now runnable) |
151-
| "a second signed-up (non-admin) user in seeds" | both demo personas get a better-auth credential account at boot (`seed-approval-demo.ts` → `ensureCredentialAccount`), issuer derived from the dev admin's own row | `approvals.per-group-signoff`, `approvals.viewer-gating-submitter-side` (was `blocked(fixture)`), `approvals.ooo-delegation-reroute` |
151+
| "a second signed-up (non-admin) user in seeds" | both demo personas get a better-auth credential account at boot (`seed-approval-demo.ts` → `ensureCredentialAccount`, keyed on `(provider_id, account_id)` through better-auth's `internalAdapter.createAccount`). ⚠️ This row used to add that the personas' issuer was derived from the dev admin's own row; withdrawn 2026-09-23 with #19217 — better-auth 1.7.3 rolled the issuer-scoped account identity back and `sys_account.issuer` retired with it (`packages/spec/src/migrations/entries/semantic/18.sys-account-issuer-retired.ts`), so the seed derives and stamps no issuer. The three items this row unblocked withdrew the same clause with #17453 | `approvals.per-group-signoff`, `approvals.viewer-gating-submitter-side` (was `blocked(fixture)`), `approvals.ooo-delegation-reroute` |
152152
| — (not in §3; found by #9308) | `showcase_client_liaison` — the app's first `readable: false` FLS grant | `access-security.fls-mask-and-strip` clause 5, whose UI half had no reachable fixture |
153153

154154
**Still open from §3, unchanged and still correctly listed there:** the OIDC/social IdP,

‎docs/qa/platform-checklist/areas/identity-auth.json‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,7 +1101,7 @@
11011101
"title": "Linked accounts: link a social/OIDC identity through the redirect round-trip → a sys_account row appears in mine-view; unlink removes it; provider-less boot degrades honestly",
11021102
"since": "v16",
11031103
"status": "active",
1104-
"revision": 1,
1104+
"revision": 2,
11051105
"priority": "P2",
11061106
"surface": "mixed",
11071107
"personas": ["a signed-in user linking a second identity", "the same user after unlinking"],
@@ -1116,7 +1116,7 @@
11161116
"steps": [
11171117
"as a signed-in user, open Account → Identity Links (sys_account `mine` view, filter user_id={current_user_id}); screenshot the initial link set",
11181118
"invoke link_social for a configured provider: the action is type:'url' — GET /api/v1/auth/sign-in/social?provider=<p>&callbackURL=<origin>/_console/apps/account/sys_account (full-page navigation, NOT XHR, so the OAuth 302 dance and link cookie work); complete the provider round-trip and land back on the Identity Links view",
1119-
"confirm a sys_account row now exists for that provider in the caller's mine-view (provider_id = the provider, user_id = the caller, issuer stamped)",
1119+
"confirm a sys_account row now exists for that provider in the caller's mine-view (provider_id = the provider, user_id = the caller) — (provider_id, account_id) is the whole account identity; there is no issuer to check, sys_account.issuer retired with better-auth 1.7.3 (packages/spec/src/migrations/entries/semantic/18.sys-account-issuer-retired.ts)",
11201120
"unlink it: the unlink_account action → POST /api/v1/auth/unlink-account with accountId = the sys_account ROW id (better-auth 1.7 keys on the row id); confirm the row is gone from mine-view",
11211121
"both-sides / degradation: on a boot with NO provider configured, confirm link_social degrades honestly — the affordance is absent or names the missing provider, rather than offering a link that dead-ends (open-edition honest-degradation posture)",
11221122
"confirm sys_account is read-only over the data API — a forged direct insert/delete is refused (apiMethods ['get','list'], writes 405)"
@@ -1125,7 +1125,7 @@
11251125
{
11261126
"clause": "linking a social identity creates a sys_account row in the caller's mine-view after the redirect round-trip completes",
11271127
"oracle": "api",
1128-
"verify": "GET /api/v1/data/sys_account (mine view) after the link shows a new row with provider_id = the provider and user_id = the caller; issuer is stamped",
1128+
"verify": "GET /api/v1/data/sys_account (mine view) after the link shows a new row with provider_id = the provider and user_id = the caller; a row with no issuer is the healthy shape, never a FAIL — the column is retired",
11291129
"evidence": "the post-link mine-view read"
11301130
},
11311131
{
@@ -1166,7 +1166,8 @@
11661166
"packages/platform-objects/src/apps/setup-nav.contributions.ts#nav_accounts (nav_accounts → 'Identity Links', objectName sys_account)"
11671167
],
11681168
"history": [
1169-
{ "revision": 1, "date": "2026-08-08", "change": "new item: social/OIDC account linking round-trip → sys_account mine-view row, unlink removal, provider-less honest degradation; blocked(fixture) pending a configured IdP (PENDING-GAPS §C)", "ref": "claude/platform-test-checklist-ocwugl" }
1169+
{ "revision": 1, "date": "2026-08-08", "change": "new item: social/OIDC account linking round-trip → sys_account mine-view row, unlink removal, provider-less honest degradation; blocked(fixture) pending a configured IdP (PENDING-GAPS §C)", "ref": "claude/platform-test-checklist-ocwugl" },
1170+
{ "revision": 2, "date": "2026-09-23", "change": "the 'issuer stamped' requirement is withdrawn from both the step and the first acceptance clause's verify: better-auth 1.7.3 rolled the issuer-scoped account identity back and sys_account.issuer retired with it, so nothing stamps it and the old verify failed a healthy system. The reason is kept — the step now says (provider_id, account_id) is the whole identity and names the retirement's migration entry in packages/spec — and the verify states that an issuer-less row is the expected shape", "ref": "#19217" }
11701171
]
11711172
},
11721173
{

0 commit comments

Comments
 (0)