Skip to content

Ingest Source

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_importNOT 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)labelinlet
uploadUploaddirect app upload
watched_folderWatched Foldercontrolled local file server (v1 primary binding)
driveGoogle DriveDrive connector
sharepointSharePointSharePoint connector
transcript_feedTranscript Feedmeeting/transcript stream
urlURLURL 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.

  • reference_items.ingestion_source — LIVE. The enforced substrate today (CHECK reference_items_ingestion_source_check, values above). See 33-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; CHECK form_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 is form_instances post-{145.6}; the constraint name is the historical one.

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.