Data Flows
OpenCore separates source access, document processing, OpenSearch indexing, and query-time retrieval. Use these boundaries to decide where data is stored, which controls are applied, and when an external model provider can receive content.
Runtime boundaries
OpenSearch documents do not contain connector credentials. They do contain searchable text and access-related metadata, so an OpenSearch snapshot must be governed as application content rather than as a disposable cache.
Indexing flow
Fetch approved source content
A connector reads records within its configured source and identity scope. Source-side permissions determine what the connector can fetch; OpenCore cannot infer a narrower source scope than the connector configuration supplies.
Parse and divide content
Workers extract supported content, split it into searchable chunks, and attach source, time, hierarchy, document-set, project, and sharing metadata when those values are available.
Query flow
Authorize the request
The calling endpoint authenticates the requester and establishes its role, token scope, tenant scope, and resource context before retrieval.
Prepare retrieval
Keyword retrieval uses query text. Semantic and hybrid retrieval also embed the query with the current index settings.
OpenSearch applies ACL filtering only when the retrieval caller supplies an access-control scope. Endpoint authorization and tenant scoping remain required; search metadata is not a replacement for either control.
Query-time filters
The filters are combined as restrictions. Verify the caller’s filter construction as well as the OpenSearch mapping when auditing an access boundary.
Re-index and port lifecycle
Changing embedding or contextual-retrieval settings creates a future OpenSearch index. The current implementation ports stored chunks from the present index, recalculates the required enrichment or embeddings, and writes the result to the future index; it does not refetch every source record through its connector.
Switch Before Re-index does not clear the OpenSearch corpus in the current backend. It promotes the future index and then backfills it through the port flow. Use this strategy only when temporary search gaps are acceptable, and do not start another model change until its backfill has finished.
Cancellation and concurrent changes
The port uses create-only writes so that a newer write already present in the destination is not overwritten by an older copied chunk. It also checks for deleted documents while copying, and metadata updates are applied to both indexes while a secondary index exists.
Canceling a pending change expires its future indexing work, stops its ports, marks that search setting as historical, and keeps or restores the prior current setting. Cancellation does not promise immediate deletion of every physical OpenSearch index.
Conditions and operations
Verify
- Index a representative document and confirm that its searchable chunks carry the expected source, visibility, and filter metadata.
- Query as an intended member and as an account outside the share; verify both the endpoint authorization and returned OpenSearch results.
- Start a non-immediate model change and confirm that queries continue to use the present index until all required ports and deferred metadata work complete.
- If testing an immediate switch, confirm that promotion occurs before backfill, that no clearing step is reported by the backend, and that result coverage grows as the port completes.
- Cancel a test migration and confirm that the previous current setting remains usable and no second migration starts while an immediate-switch backfill is pending.
Related pages
- Connectors & Indexing explains source setup and connector status.
- Index Settings explains embedding and contextual-retrieval controls.
- Permissions Migration separates current authorization behavior from its future migration target.