AUTH-CLOSE-LAST-15.md53 lines · main
1# Close the last ~15% — SuperTokens parity (execution log)
2
3**Started:** 2026-07-28
4**Order:** Batch A → B → C → D (approved “Full last 15%”)
5
6## Batch A — Trust (security locks live)
7
8| Item | Status |
9|------|--------|
10| C1–C5 code (FDI key lock, magic-link allowlist, MFA challenge, rate limit, project admin) | Local + unit tests |
11| Deploy to France `api` (+ web) via `safe-redeploy-service.sh` | **Done 2026-07-28** |
12| Live probe: unauth `POST …/fdi/signinup/code` | **PASS — HTTP 401** `project_required` |
13| Live probe: project header without key | **PASS — HTTP 401** `auth_key_required` |
14| Re-prove 2026-07-29 (+ bad key + valid key) | **PASS** — see `AUTH-HARDEN-TEST-EVIDENCE-2026-07-29.md` |
15
16## Batch B — Login completeness
17
18| Item | Status |
19|------|--------|
20| Passkeys hosted UI → FDI webauthn (not auth-tenant 410) | Code done + web redeployed |
21| Passkey engine client helpers + scaffold | Code done |
22| Live Mavi enroll→sign-in retest | **Human** (Mavi already on FDI + key) |
23| SMS | **Ops-blocked** — product honest (Twilio From + secrets). See `SMS-TWILIO-LIVE-PROVE.md`. Matrix stays **P** until live prove **or** flndrn marks N/A. |
24
25## Batch C — Depth
26
27| Item | Status |
28|------|--------|
29| IdP service E2E (`apps/api/scripts/idp-e2e-proof.mjs`) | Run after deploy |
30| IdP browser consent path | Still recommended human |
31| Migration foreign bcrypt/argon2 verify + upgrade to scrypt | Code done |
32
33## Batch D — DX + claim
34
35| Item | Status |
36|------|--------|
37| Framework pack: Next gold + passkey scaffold | Done |
38| Captcha on passwordless create when Turnstile secret set | Code done |
39| Captcha EP signup/signin when secret set | Already done |
40| Explicit N/A list | Below — needs flndrn OK to claim 100% |
41
42## Proposed N/A (won’t match SuperTokens 1:1)
43
44Approve to clear the matrix:
45
461. **SuperTokens Core Docker** — already N/A (briven-engine on Doltgres).
472. **Every framework SDK** (Vue/Svelte/etc.) — Next + Express + Hono + vanilla scaffolds only unless a real project needs more.
483. **SMS OTP** — optional N/A until Twilio compliance ready (or keep **P** and prove later).
494. **ST bulk-import job queue** (list/delete jobs) — single batch POST max 500 is enough for v1.
50
51## Claim rule
52
53**100% SuperTokens** only when every matrix row is **Y** or **N/A (approved)**.
Preview

Close the last ~15% — SuperTokens parity (execution log)

Started: 2026-07-28
Order: Batch A → B → C → D (approved “Full last 15%”)

Batch A — Trust (security locks live)

ItemStatus
C1–C5 code (FDI key lock, magic-link allowlist, MFA challenge, rate limit, project admin)Local + unit tests
Deploy to France api (+ web) via safe-redeploy-service.shDone 2026-07-28
Live probe: unauth POST …/fdi/signinup/codePASS — HTTP 401 project_required
Live probe: project header without keyPASS — HTTP 401 auth_key_required
Re-prove 2026-07-29 (+ bad key + valid key)PASS — see AUTH-HARDEN-TEST-EVIDENCE-2026-07-29.md

Batch B — Login completeness

ItemStatus
Passkeys hosted UI → FDI webauthn (not auth-tenant 410)Code done + web redeployed
Passkey engine client helpers + scaffoldCode done
Live Mavi enroll→sign-in retestHuman (Mavi already on FDI + key)
SMSOps-blocked — product honest (Twilio From + secrets). See SMS-TWILIO-LIVE-PROVE.md. Matrix stays P until live prove or flndrn marks N/A.

Batch C — Depth

ItemStatus
IdP service E2E (apps/api/scripts/idp-e2e-proof.mjs)Run after deploy
IdP browser consent pathStill recommended human
Migration foreign bcrypt/argon2 verify + upgrade to scryptCode done

Batch D — DX + claim

ItemStatus
Framework pack: Next gold + passkey scaffoldDone
Captcha on passwordless create when Turnstile secret setCode done
Captcha EP signup/signin when secret setAlready done
Explicit N/A listBelow — needs flndrn OK to claim 100%

Proposed N/A (won’t match SuperTokens 1:1)

Approve to clear the matrix:

  1. SuperTokens Core Docker — already N/A (briven-engine on Doltgres).
  2. Every framework SDK (Vue/Svelte/etc.) — Next + Express + Hono + vanilla scaffolds only unless a real project needs more.
  3. SMS OTP — optional N/A until Twilio compliance ready (or keep P and prove later).
  4. ST bulk-import job queue (list/delete jobs) — single batch POST max 500 is enough for v1.

Claim rule

100% SuperTokens only when every matrix row is Y or N/A (approved).