๐Ÿ”ฅ Firebase data foundation โ€” activation status

Where the per-owner data-model activation stands ยท as of 2026-06-04

Where it stands now

Remaining steps (each gated โ€” paste result before the next)

  1. Authenticate + select project DONE โ€” login + firebase use same-solutions-app.
  2. Deploy security rules โ€” firebase deploy --only firestore:rules.
  3. Isolation test vs deployed rules โ€” npm run test:rules โ†’ must be 21/21.
  4. Verify admin read โ€” sign into /manage as samuel.m.foran@gmail.com; data loads.
  5. Disable public signup โ€” Firebase Console โ†’ Auth โ†’ Sign-in method โ†’ Email/Password โ†’ off.
  6. Backup (Blaze): firebase firestore:export gs://same-solutions-app.firebasestorage.app/backups/... โ†’ verify.
  7. Migrate โ€” DRY RUN โ€” node scripts/migrate-blob.js (writes nothing); paste output back.
  8. Migrate โ€” commit โ€” node scripts/migrate-blob.js --commit (only after backup verified); compare counts, no loss.
  9. Flip features one at a time โ€” shirt poll voting โ†’ party-items/RSVP โ†’ Aimee's hub login โ†’ true admin-only financials gate.
Safety: the verified-email admin path (samuel.m.foran@gmail.com) is the no-lockout safety net โ€” the custom-claim step is optional. Backup before migrate is mandatory; the migration only ADDS per-owner docs and never deletes the blob in-run.

The kit (website repo: SUGARDUNK3RTON/samesolutionsllc-website)

๐Ÿ“„ ACTIVATION-LOCAL-RUN.md โ€” the copy-paste run (exact commands + gates).

๐Ÿ“„ ACTIVATION-RUNBOOK.md โ€” the ordered checklist.

Helpers: scripts/set-admin-claim.js (optional claim), scripts/backup-blob.js (keyless), scripts/migrate-blob.js (keyless, dry-run). Rules: firestore.rules. Design + migration plan: docs/firestore-data-model.md ยง5.

This single activation unlocks real member hubs, shirt-poll voting, party-items/RSVP, and true admin-only financials. Updated 2026-06-04.