Firestore Collections
Database schema overview -- collections, document counts, access rules, and indexes.
Open Firestore Console| Collection | Documents | Purpose | Public Read |
|---|---|---|---|
| users | -- | User accounts + profiles | No |
| subscribers | -- | Blog/email subscribers | No |
| context_pipelines | -- | 5-step context generation | No |
| email_logs | -- | Email delivery tracking | No |
| agent_tasks | -- | Task submissions | No |
| agent_logs | -- | Agent execution logs | Yes |
| support_tickets | -- | Support form submissions | No |
| submissions | -- | Blog entity submissions | No |
| system_cache | -- | Manifest cache + priorities | No |
| tools | ~200 | AI tools index | Yes |
| models | ~200 | AI models index | Yes |
| agents | ~162 | AI agents index | Yes |
| skills | ~120 | AI skills index | Yes |
| (+ 11 more entity collections) -- Knowledge index, public read | |||
Access Pattern
Public read: Entity collections (tools, models, agents, skills, scripts, benchmarks, etc.) are publicly readable for the knowledge index. All other collections require Firebase Auth (request.auth != null).
User-scoped writes: users/{uid} documents are writable only by the owning user (request.auth.uid == uid). Subcollections inherit the parent rule.
Admin operations: Cloud Functions use firebase-admin SDK which bypasses security rules. All batch writes, migrations, and agent operations go through server-side admin access.
Source: firestore.rules in repo root. Last verified: 2026-04-22.
Composite Indexes
Defined in firestore.indexes.json -- includes indexes for entity queries (type + slug), email log queries (userId + createdAt), context pipeline queries (userId + status), and agent task queries (userId + status + createdAt).