Fix #18: migratie-ledger-sync + deploy-proof Azure SSO #19
Reference in New Issue
Block a user
Delete Branch "fix/issue-18-migration-ledger-sso"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #18
Wat dit oplost
PocketBase op Labs crash-loopt sinds de SSO-deploy (24-06): PR #17 mountte voor het eerst
--migrationsDir, waardoor de volledige migratie-historie werd afgespeeld tegen een database die out-of-band geprovisioned is (lege_migrations-ledger) — crash op het allereerste bestand, elke/api/*call 502, "Sign in with Microsoft" kapot. Zie de volledige analyse in #18.De fix (5 onderdelen)
1000000000_baseline_ledger_sync.js— detecteert schema-zonder-ledger en markeert de 79 historische migraties als applied; no-op op verse/normale DB's.1781000000_team_members_to_auth.js— idempotency-guard, relation→text mét databehoud (PocketBase difft velden op id → kolom wordt via SQL geback-upt en teruggezet), index-rebuild, geen silent catches.pb_hooks/entra_oidc.pb.js+utils.js— OIDC-provider wordt bij elke start + cron-minuut gereconcilieerd vanuitENTRA_*env (compare-before-save, warn-once). Heelt ook een DB die zonder secrets migreerde; secret-rotatie = env wijzigen + herstart.infra/staat in PROTECTED.md; wijziging is expliciet gevraagd in issue #18.docker-compose.yml—.env.localweer optioneel (⚠️ idem PROTECTED.md).Plus:
pb_hooks/team_members.pb.jsnaar hetrequire()-patroon (JSVM draait callbacks geïsoleerd; neemt Leroy's fix van defix-ssobranch over) en documentatie (auth-spec ADR 006–008, AI_AGENT gotcha's).Verificatie (DoD uit #18)
Lokaal tegen PocketBase v0.30.4, 7 scenario's / 15 asserts — 15/15 PASS:
team_member_idbehouden, reboot in-syncnpm test: 112/112. Lint: 1513 pre-existing problemen (app/-scaffolding), 0 nieuw.Na de merge: deploy-dev draait automatisch; de nieuwe health-gate bewijst dat PB op Labs healthy wordt. Enige resterende handmatige check: eenmalig inloggen met een echt Microsoft-account door de perimeter heen (E2E-checkbox in #18).
🤖 Generated with Claude Code