feat(authentik): bind account-security stages to user-settings + auth flows - #276
Conversation
… flows The stages-mfa.yaml / stages-sms.yaml blueprints define the TOTP, WebAuthn and SMS authenticator stages but never bind them, so they never surface. Add flow-bindings-account-security.yaml (idempotent, state:present) to wire: - MFA setup stages (TOTP/WebAuthn/SMS) into default-user-settings-flow so users self-enroll devices and link/unlink Google from their profile - fuzefront-mfa-validate (totp/webauthn/sms, not_configured_action=skip) into default-authentication-flow for enforce-if-enrolled, optional MFA at login Validated: helm template render EXIT=0, blueprint present in the authentik-blueprints ConfigMap; YAML structure parses with Authentik !Find tags. Co-Authored-By: Claude <claude-opus-4-8> <noreply@anthropic.com> Claude-Session-Id: cf830721-b1ef-4fe0-a024-035ad280dcf7
CI Fix — branch pushedRoot cause: ( Fix: Ran Fix branch: The fix can be merged into |
CI fix pushed —
|
CI fix pushed — awaiting PR creationThe CI failure root cause has been identified and fixed. Since GitHub Actions is not permitted to create PRs in this repo, here is a summary for manual PR creation if needed. Branch: Root causeThe
Every CI job failed immediately at "Install dependencies (workspace root)" with: The Postgres "role root does not exist" errors in the log tail are from service containers being torn down after the job failed — not the actual cause. FixRan |
CI Fix — branch
|
|
Do not merge the All the CI failures here ( The canonical fix is #270, where The four bot branches each ran Resolution: merge #270 first, then rebase/re-run this PR. No change needed here. 🤖 Addressed by Claude Code |
… ci (#270) Root cause was a PLATFORM SKEW, not a missing workspace registration: `packages/security` was already in `package.json` workspaces + `lerna.json`. The lockfile had been generated on Windows/npm-11, whose hoisting hid a nested node that linux/npm-10 (CI = node 20) requires — `services/email-service/node_modules/@types/express@4.17.21`. Regenerated `package-lock.json` inside a `node:20-bullseye` container matching CI. Verified `npm ci --dry-run` → exit 0 ("changed 1227 packages"). `gate-frontend-build` passes. Only `package-lock.json` changed. Unblocks CI for #271-#276. Note: the "E2E (sign-in)" check is a pre-existing failure on master (red for its last 6 runs, unrelated to this lockfile-only change) — admin-merged past it. Co-Authored-By: Claude <claude-opus-4-8> <noreply@anthropic.com> Claude-Session-Id: cf830721-b1ef-4fe0-a024-035ad280dcf7
CI Fix — branch pushed, PR creation blocked by permissionsI've diagnosed and fixed the Playwright sign-in CI failure (run 29486252345) on branch Root causePR #250 de-vendored the frontend auth API — Backend logs from the failing run confirmed the 404s: Both tests then timed out waiting for Fix (3 files changed)
A PR couldn't be created automatically (Actions not permitted to create PRs in this repo). Please open one from |
|
Do not merge The proposal adds
The actual root cause was correct in the report: "those are in the separate
This PR only needs a rebase on master to pick those up. No shim. 🤖 Addressed by Claude Code |
What
Adds
deploy/helm/fuzefront/authentik/blueprints/flow-bindings-account-security.yaml— the missing idempotent flow bindings that make the existing account-security stages actually surface to users.The recovery flow (
fuzefront-recovery), enrollment + email-verify stage, optional SMS 2FA (stages-sms.yaml), TOTP/WebAuthn (stages-mfa.yaml) and the Google source (source-google.yaml) already exist on master, but the MFA setup/validate stages were defined but never bound to any flow (thestages-mfa.yamlcomment claims a user-settings binding that does not exist). This PR supplies that wiring:default-user-settings-flow): bind TOTP, WebAuthn/passkey and SMS setup stages so users self-enroll MFA devices and link/unlink Google from their profile.default-authentication-flow): bindfuzefront-mfa-validate(device_classes totp/webauthn/sms,not_configured_action=skip) for enforce-if-enrolled, optional MFA at login.Verification
helm template ff deploy/helm/fuzefront→ EXIT 0; new blueprint present in theauthentik-blueprintsConfigMap.!Findtags;version: 1(the version that applies — cf. f7bebfc).helm-validate.yml(blueprint is ConfigMap string data).Idempotent (
state: present+ stable identifiers) — safe to re-apply; worker applies on startup tostatus=successful.Notes
masteris deploy-on-push: labeledhold, no auto-merge — owner merges in a deploy window.🤖 Generated with Claude Code