Ingest Source
Ingest Source
Section titled “Ingest Source”Definition
Section titled “Definition”The vocabulary answering “by what route did this record arrive?” — record-level
ingest provenance. Rewritten under the id-417 B3 ruling (S535): the vocabulary is
real and stays, but the register is now connector-first per corpus-reframe R8 —
sources are evidence streams reaching the platform through a growing set of inlets,
and this register must describe those inlets rather than the retired
content_items-era route names (see §History).
Live, enforced values today sit on reference_items.ingestion_source:
rss_feed | url_import — NOT NULL, CHECK reference_items_ingestion_source_check
(('rss_feed','url_import'); ID-75 M1, folded into 20260617130000_squash_baseline.sql —
cite the constraint, not a per-migration file). Readers: api.reference_get_verbatim,
api.reference_search.
Forward set — connector origin types (R8, planned)
Section titled “Forward set — connector origin types (R8, planned)”The connector roadmap (R8 connector-first register) will extend the ingest-origin vocabulary along these lines; none are enforced yet, and landing each is a migration-gated decision at connector-build time:
| key (planned) | label | inlet |
|---|---|---|
| upload | Upload | direct app upload |
| watched_folder | Watched Folder | controlled local file server (v1 primary binding) |
| drive | Google Drive | Drive connector |
| sharepoint | SharePoint | SharePoint connector |
| transcript_feed | Transcript Feed | meeting/transcript stream |
| url | URL | URL import |
Each connector inlet carries a per-binding retention class (R1: keep-and-watch / ingest-once / live-connected / external-referenced) — the retention class is a binding property, not an ingest_source value.
Relationships
Section titled “Relationships”reference_items.ingestion_source— LIVE. The enforced substrate today (CHECKreference_items_ingestion_source_check, values above). See33-reference-item.md§2.2 for the extension-by-migration rule (BI-9).- CV 29
cocoindex_source_kind(source_documents.origin_type) — LIVE sibling. Carries the external surface (“where from”) axis for walked sources (ID-138 {138.5} M1). When connectors land, CV 13 and CV 29 likely converge into the one connector-first register — flagged as an open design point, not ruled. form_templates.ingest_source— separate 2-value vocabulary (pipeline|app_upload; CHECKform_templates_ingest_source_check, squash baseline). NOT part of CV 13’s value-set; stays documented as its own register (standing ruling — do not merge). Note the table isform_instancespost-{145.6}; the constraint name is the historical one.
History
Section titled “History”The original register was written against content_items.ingestion_source
(manual / upload / upload_autosplit / mcp_create / bid_outcome_integration +
reserved adopted_from_reference, plus frozen-legacy python_url / python_markdown
/ qa_import). content_items was DROPPED at ID-131 M6; the column and its planned
CHECK died with it (ID-133 BI-4a ruling, {133.14}). The full archaeology — historic
writers, re-homings, the batch_reclassify non-value — is in this file’s git history
and is deliberately not carried forward.