# .gitleaks.toml — gitleaks configuration # Repo: familysync title = "FamilySync gitleaks config" [extend] # Extend with the default ruleset (all standard secret patterns) useDefault = true [[allowlists]] description = "Test fixture VAPID keys — documented test-only values, not production keys" paths = ['''apps/api/tests/fixtures/vapid\.ts'''] [[allowlists]] description = ".env.example — intentional placeholder/template values, not live secrets" paths = ['''\.env\.example$'''] [[allowlists]] description = "apps/api/.env.spike — dev/spike values, not production secrets" paths = ['''apps/api/\.env\.spike$'''] [[allowlists]] description = "apps/api/tests/broker/crypto.test.ts — synthetic AES-256-GCM test key assigned to process.env.APP_PASSWORD_ENCRYPTION_KEY in a Vitest beforeAll; not a real credential" paths = ['''apps/api/tests/broker/crypto\.test\.ts'''] [[allowlists]] description = "apps/api/tests/routes/setup.test.ts — synthetic VAPID public/private test pair used to set process.env.VAPID_* in the setup-route tests; not a real credential (verified not present in .env)" paths = ['''apps/api/tests/routes/setup\.test\.ts'''] [[allowlists]] description = "apps/api/tests/auth/localSession.test.ts — TEST_SECRET is a synthetic >=32-char JWT signing secret used only to exercise issue/verify cookie round-trips under Vitest; not a real credential (Phase 19)" paths = ['''apps/api/tests/auth/localSession\.test\.ts'''] [[allowlists]] description = ".planning/ design docs are internal planning prose (PLAN/SUMMARY/SECURITY/etc.) that frequently discuss credentials, tokens, and auth — they trip generic regex rules (e.g. 'credential atomically, 409-equivalent') but never carry production secrets; not shipped in any image" paths = ['''\.planning/''']