Strata currently persists indexed content and indexing workflow state in PostgreSQL.
Stores explicit ingestion source records for configured connectors.
id: bigint identity primary keyname: server-controlled source name for operator-facing identificationtype: current connector type, currentlyfilesystemroot_path: unique configured filesystem root for the sourcestatus: lifecycle status such asactive,disabled, orerrorlast_indexed: timestamp reserved for source-level lifecycle tracking
- the current product slice persists one configured filesystem source per deployment through the ingestion path
- source records are server-controlled and derive from deployment configuration, not client-supplied filesystem paths
- later Milestone 2 work will link documents and index jobs directly to source records and populate richer lifecycle metadata
Stores searchable document records.
id: bigint identity primary keypath: unique text path stored relative to the configured source roottitle: extracted title, typically the first markdown headingcontent: full markdown file contentschecksum: SHA-256 checksum used for change detectionsearch_vector: generated full-text search vectorcreated_at: creation timestampupdated_at: last update timestamp
search_vectoris refreshed by trigger on insert and content/title updatesix_documents_search_vectorprovides GIN-backed full-text search performancepathis normalized with/separators for cross-platform consistency
Stores indexing work items claimed by background workers.
id: bigint identity primary keystatus:pending,processing,completed, orfailedrequested_at: job creation timestampclaimed_at: timestamp recorded when a worker claims the jobcompleted_at: timestamp recorded on successful completionattempt_count: number of processing attempts claimed so farmax_attempts: server-controlled retry ceiling for the jobworker_id: worker identifier for claimed jobserror_message: truncated failure detail when processing fails
ix_index_jobs_status_requested_at_idsupports pending-job polling- Job creation is API-driven; claiming and completion are background operations
- failed attempts return to
pendingwhileattempt_count < max_attempts - terminal
failedstate means the last allowed attempt has already been used
The current implementation still operates with a single configured filesystem
source root per deployment, but that source is now persisted as a first-class
record in sources.
Broader multi-source workflows, source-scoped job ownership, and source management APIs remain follow-on Milestone 2 work.