Ingestion lifecycle

Follow governed knowledge from source discovery through immutable revisions and searchable projections.

Ingestion turns source content into governed Knowledge without treating a search index as the source of truth. Uploads and connectors converge on the same ledger and derived-index publication rules.

Lifecycle stages

Governed ingestion lifecycle from source observation through immutable recording, worker normalization, projection staging, and compare-and-set publication.
Governed ingestion lifecycleOnly a complete generation becomes visible. Incomplete crawls retire nothing, while stale or partial batches remain unpublished.

Source contract

A connector contributes a versioned crawl batch. Each object separates:

  • source_system: the adapter-owned origin, such as Slack, Google Drive, or GitHub;
  • acl_authority: whether source permissions or OrgMemory permissions govern the content;
  • immutable source-native object and revision identifiers;
  • permission principals with typed stable native IDs;
  • independent content, permission, and membership cursors;
  • completeness claims for each component.

An adapter that cannot establish an object's ACL omits that object. It never sends an empty grant list as a substitute, because a sealed empty ACL means the source explicitly granted nobody.

Checkpoints and convergence

The worker reads enabled connection configuration and encrypted credentials from the ledger on every poll. A configuration change applies on the next poll without a restart.

Per-connection checkpoints distinguish observed state from successfully reconciled content, permissions, and membership. A permanent per-item rejection can be checkpointed past while a transient failure remains pending. A restarted worker resumes rather than replaying completed work.

Membership is independently sealed. Removing a user from a source group can revoke access on the next request without rewriting content, rotating the object's stable group ACL, rechunking, or re-embedding.

Immutable evidence

One source revision cannot change content. ACL rotation appends a new sealed generation and compare-and-set advances the current head. Database constraints reject mutation of sealed ACL evidence. Original bytes are retained through the object-storage port; chunks, vectors, graph topology, and search indexes are rebuildable.

Direct uploads first verify can_create_asset on a Knowledge Space and preserve that Space identity through the source ledger. Publication keeps new versions inactive until required OpenFGA relationships are confirmed.

Graph publication

When a source revision becomes ready, the worker creates a durable graph-index job pinned to:

  • the current Knowledge Asset version and source revision;
  • active chunks and ACL generation;
  • immutable embedding and graph-processing profiles;
  • exact model and prompt coordinates.

Multi-replica workers claim jobs with leases. Contributions and embeddings publish atomically after a current-version recheck. A failed publish leaves the previous generation available; a stale version is superseded rather than made current.

Deletion and incompleteness

A complete crawl may retire content the source stopped mentioning. An incomplete crawl retires nothing merely because it was not observed. A tombstoned object is archived out of retrieval and cannot be revived by a later content revision.

Last updated on