towerops/config
Graham McIntire ca7bb75472 fix: 11 critical security/correctness bugs from code audit
- C1: Replace innerHTML template literals with DOM textContent in sites_map.ts
- C2: Derive user_id from current_scope instead of client params in policy consent
- C3: Fix broken halt() in GDPR data export (orphaned _ = ... halt())
- C4: Add owner/admin authorization check to MembersController update/delete
- C5: Require HMAC signature on agent release webhook (was optional)
- C6: Fix Repo.all_by/2 (not a real Ecto function) → Repo.all with query
- C7: Move auth exemption to before_send callback in BruteForceProtection
- C8: Block </style>/<script injection in status page custom_css validation
- C9: Create secrets.example.yaml with placeholders; secrets.yaml already gitignored
- C10: Load Stripe key from STRIPE_SECRET_KEY env var instead of hardcoded value
- C13: Remove credentials from PubSub backup broadcast; channel resolves them

C11 (no force_ssl): by design — Cloudflared terminates TLS
C12 (device quota race): false positive — FOR UPDATE serializes correctly
2026-05-12 10:20:52 -05:00
..
config.exs chore: add gaiia library dep, remove stale honeybadger/tidewave/cbor 2026-05-11 14:46:27 -05:00
dev.exs fix: 11 critical security/correctness bugs from code audit 2026-05-12 10:20:52 -05:00
prod.exs feat(coverage): write rasters to NFS-backed dir, serve via dedicated static plug 2026-05-07 07:38:05 -05:00
runtime.exs feat(insights): AI surfaces its own observations from full network state 2026-05-10 14:29:56 -05:00
test.exs test: in-process Redis fake instead of skipping Redis-backed tests 2026-05-10 11:32:50 -05:00