fix(GRO-2089): correct Authentik customer credential source in UAT_PLAYBOOK §5.25 #42

Merged
Flea Flicker merged 18 commits from flea/gro-2089-fix-authentik-credential-source into dev 2026-06-02 14:48:03 +00:00
Member

Updates UAT_PLAYBOOK.md §5.25 (Customer Portal — Better Auth SSO Bridge) pre-conditions to point UAT testers at the correct Authentik credential source.

Root cause: the previous §5.25 pre-condition said the Authentik customer password lives in seed-uat-passwords:customer-password. That Secret holds the Better Auth email+password credential — a separate identity store. The actual Authentik uat-customer password lives in authentik-uat-users-credentials:uat_customer_password, provisioned by infra/terraform/users.tf with lifecycle.ignore_changes = [password].

Impact: UAT testers (incl. GRO-2026) were pulling the Better Auth value and typing it into the Authentik OIDC login, which rejected it as invalid. This unblocks GRO-2026 verification and any future run of TC-WEB-5.25.* / TC-WEB-5.27.*.

Verified 2026-06-02 against uat.groombook.dev: signing in with the correct Secret value yields Authentik 302 → /api/auth/get-session 200 (userId be0d112b-…) → /api/portal/session-from-auth 201 (clientId c0000001-…, clientName UAT Customer).

No code or infra change. Documentation only. The two Secrets remain intentionally separate (Better Auth and Authentik are different identity stores); only the playbook's pointer was wrong.

Updated UAT_PLAYBOOK §5.25 (Pre-conditions bullet).

Refs GRO-2089.

Updates UAT_PLAYBOOK.md §5.25 (Customer Portal — Better Auth SSO Bridge) pre-conditions to point UAT testers at the correct Authentik credential source. **Root cause:** the previous §5.25 pre-condition said the Authentik customer password lives in seed-uat-passwords:customer-password. That Secret holds the **Better Auth** email+password credential — a separate identity store. The actual Authentik uat-customer password lives in authentik-uat-users-credentials:uat_customer_password, provisioned by infra/terraform/users.tf with lifecycle.ignore_changes = [password]. **Impact:** UAT testers (incl. GRO-2026) were pulling the Better Auth value and typing it into the Authentik OIDC login, which rejected it as invalid. This unblocks GRO-2026 verification and any future run of TC-WEB-5.25.* / TC-WEB-5.27.*. **Verified 2026-06-02 against uat.groombook.dev:** signing in with the correct Secret value yields Authentik 302 → /api/auth/get-session 200 (userId be0d112b-…) → /api/portal/session-from-auth 201 (clientId c0000001-…, clientName UAT Customer). **No code or infra change.** Documentation only. The two Secrets remain intentionally separate (Better Auth and Authentik are different identity stores); only the playbook's pointer was wrong. **Updated UAT_PLAYBOOK §5.25** (Pre-conditions bullet). Refs GRO-2089.
Flea Flicker added 18 commits 2026-06-02 14:41:40 +00:00
chore: promote dev to uat
chore(GRO-1289): promote dev to uat — add UAT_PLAYBOOK.md
chore: promote dev to uat (CI Docker registry fix) (#10)

Promotes GRO-1348 CI registry fix to UAT.
promote: dev → uat (Renovate config, GRO-1081)

Merge PR #11: dev → uat promotion
Includes: chore: add Renovate config (GRO-1081)
Merge pull request 'promote: dev → uat (GRO-1173 buffer rules + GRO-1470 pet save persistence)' (#14) from dev into uat
CI / Test (push) Successful in 14s
CI / Lint & Typecheck (push) Successful in 19s
CI / Build & Push Docker Image (push) Successful in 9s
62cbfe4e43
promote: dev → uat (GRO-1173 buffer rules + GRO-1470 pet save persistence) (#14)

Merged-By: The Dogfather (CTO)
Co-Authored-By: Paperclip <noreply@paperclip.ing>
chore: promote dev→uat for GRO-1592 SSO session cookie fix
CI / Lint & Typecheck (pull_request) Successful in 17s
CI / Test (pull_request) Successful in 18s
CI / Build & Push Docker Image (pull_request) Failing after 41s
93da2f1dd8
- Fixed frontend auth client baseURL fallback to use window.location.origin
- Added UAT test coverage (TC-AUTH-5.3.4)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Merge pull request 'chore(GRO-1592): promote dev→uat SSO session cookie fix' (#16) from promote-uat-gro1592 into uat
CI / Test (push) Successful in 12s
CI / Lint & Typecheck (push) Successful in 18s
CI / Build & Push Docker Image (push) Failing after 39s
0306c7fbd9
Add .mcp.json
CI / Test (push) Successful in 20s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 4m1s
0c41640f59
Merge pull request 'promote: dev → uat (GRO-1757 SSO auto-provision fix)' (#19) from dev into uat
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 33s
CI / Build & Push Docker Image (push) Successful in 14s
CI / Test (pull_request) Successful in 19s
CI / Lint & Typecheck (pull_request) Successful in 24s
CI / Build & Push Docker Image (pull_request) Successful in 15s
8349ea00de
promote: dev → uat (GRO-1757 SSO auto-provision fix)
Merge pull request 'promote: uat → main (GRO-1757 SSO auto-provision fix)' (#21) from uat into main
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 21s
CI / Build & Push Docker Image (push) Successful in 13s
2aad7cb6a0
Merge pull request 'Promote dev → uat (GRO-1793: dynamic time slots)' (#25) from dev into uat
CI / Test (push) Successful in 14s
CI / Lint & Typecheck (push) Successful in 16s
CI / Build & Push Docker Image (push) Failing after 6s
4e3a038bf3
Promote dev → uat: GRO-1793 dynamic portal time slots (#25)
Merge pull request 'chore: promote dev → uat (GRO-1794 booking analytics)' (#27) from dev into uat
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 22s
CI / Build & Push Docker Image (push) Successful in 12s
87939e5413
Merge dev → uat: GRO-1794 booking funnel analytics events
Merge pull request 'chore: promote dev → uat (GRO-1795 StatusBadge)' (#28) from dev into uat
CI / Lint & Typecheck (push) Successful in 17s
CI / Test (push) Successful in 13s
CI / Build & Push Docker Image (push) Successful in 34s
3b4d0f15f6
Merge PR #28: promote dev → uat (GRO-1795 StatusBadge)
Merge pull request 'chore: promote dev → uat (GRO-1829 SW fix)' (#32) from dev into uat
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 23s
CI / Build & Push Docker Image (push) Successful in 15s
0e5e9d1f16
Merge: promote dev → uat (GRO-1829 SW fix)
Merge pull request 'Promote dev -> uat: GRO-2011 login-blank fix (+ GRO-1867)' (#37) from dev into uat
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 23s
CI / Build & Push Docker Image (push) Successful in 10s
bd2a0d9516
Merge pull request 'Promote to UAT: GRO-2012 RescheduleFlow portalSessionId fallback' (#39) from dev into uat
CI / Test (push) Successful in 21s
CI / Lint & Typecheck (push) Successful in 30s
CI / Build & Push Docker Image (push) Successful in 10s
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (pull_request) Successful in 13s
ec29f71974
Merge pull request 'Promote uat → main: GRO-2012 RescheduleFlow portalSessionId fallback' (#40) from uat into main
CI / Test (push) Successful in 23s
CI / Lint & Typecheck (push) Successful in 29s
CI / Build & Push Docker Image (push) Successful in 16s
fdff0977ad
Promote uat → main: GRO-2012 RescheduleFlow portalSessionId fallback

Gate checks:
- UAT: GRO-2023 done (CTO verified, ec29f719)
- Security: GRO-2032 Barkley PASS
- UAT_PLAYBOOK.md: TC-WEB-5.26 present

Fix: CustomerPortal.tsx:329 sessionId={session?.id ?? portalSessionId}
Fix commit: f29f1828c8

Co-Authored-By: Paperclip <noreply@paperclip.ing>
fix(GRO-2089): correct Authentik customer credential source in §5.25 pre-conditions
CI / Test (pull_request) Successful in 22s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (pull_request) Successful in 15s
affb697708
The UAT_PLAYBOOK §5.25 (Customer Portal — Better Auth SSO Bridge) pre-condition
incorrectly stated that the Authentik customer password comes from
seed-uat-passwords:customer-password. That Secret holds the *Better Auth*
email+password credential — a different identity store. The actual Authentik
uat-customer password lives in authentik-uat-users-credentials:uat_customer_password,
provisioned by infra/terraform/users.tf with lifecycle.ignore_changes = [password].

UAT testers were using the Better Auth value at the Authentik OIDC step and
getting 401'd, blocking GRO-2026. Verified 2026-06-02: pulling the correct
Secret value, signing in via SSO, and POST /api/portal/session-from-auth all
succeed (returns 201 with valid portal session).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Flea Flicker merged commit 903ce2d675 into dev 2026-06-02 14:48:03 +00:00
Sign in to join this conversation.