{
  "schemaVersion": 1,
  "generatedAt": "2026-08-12T23:39:30.559Z",
  "generationKey": "2474867a7d6be348bdec9eea2694364c71767ca81ec2bb63febfc37cafac6cf5",
  "metadataPayloadSha256": "c9615427ae6b8b04b9d327b83168a6faaedb5c5d38111ffbb8ed8062d73070e7",
  "diagram": {
    "id": "intake-connect-and-ingest-98d98cb8",
    "title": "Intake — connect and ingest",
    "description": "Intake serializes each source, ingests every normalized document before advancing its checkpoint, writes revision/ACL metadata, and dispatches searchable chunk enrichment.",
    "status": "current",
    "canonicalAppearanceKey": "tsx:src/app/(docs)/docs/concepts/system-diagrams/page.tsx:INTAKE_CHART#1"
  },
  "aliases": [],
  "concepts": [
    "System diagrams",
    "Ingest + index",
    "Intake — connect and ingest",
    "Sync + normalize · worker",
    "Inputs",
    "Intake"
  ],
  "keywords": [
    "REST API · UI · schedule",
    "connector_source types",
    "upsert by (source_id, external_id)",
    "documents + document_revisions",
    "Confluence · SharePoint",
    "Slack · Markdown upload",
    "normalize →",
    "contentHash /",
    "sourceVersion changed?",
    "embedChunks → embedMany",
    "batch of 64",
    "enqueue SyncJob",
    "start / finish ledger",
    "await idempotent ingest",
    "unchanged, live",
    "chunks + tsvector",
    "pgvector rows",
    "enqueueExtract · chunks",
    "tsvector FTS",
    "vector kNN",
    "Manual edit · bulk import · binary upload",
    "saveDocument · importMany · normalize",
    "per-source DB advisory lock",
    "all sync kinds / all workers",
    "syncWithConnector · drainCrawl",
    "fullLoad / poll → DocBatch",
    "skip re-chunk / re-embed",
    "chunkMarkdown → persistChunks",
    "Atlas · entity extraction",
    "Lens · hybrid FTS + vector",
    "confirmed page → checkpoint",
    "sync_state",
    "acl_principals",
    "chunk_embeddings",
    "embedding_spaces",
    "/api/v1/connectors",
    "id/sync",
    "NormalizedDocument",
    "ingestConnectorDocument",
    "GIN"
  ],
  "mermaid": {
    "type": "flowchart",
    "direction": "TD",
    "sourceSha256": "98d98cb8b75042b0195fab5ad998bd0804f6e9ad5add341e71b3eaa7ca95b21e"
  },
  "provenance": [
    {
      "appearanceKey": "md:docs/architecture/system-diagrams.md#2",
      "surface": "markdown",
      "sourcePath": "docs/architecture/system-diagrams.md",
      "line": 97,
      "heading": "1 · Intake — connect and ingest"
    },
    {
      "appearanceKey": "tsx:src/app/(docs)/docs/concepts/system-diagrams/page.tsx:INTAKE_CHART#1",
      "surface": "route",
      "sourcePath": "src/app/(docs)/docs/concepts/system-diagrams/page.tsx",
      "line": 111,
      "route": "/docs/concepts/system-diagrams",
      "symbol": "INTAKE_CHART",
      "caption": "Intake serializes each source, ingests every normalized document before advancing its checkpoint, writes revision/ACL metadata, and dispatches searchable chunk enrichment."
    }
  ],
  "embeddedMetadata": [
    {
      "sourcePath": "docs/architecture/system-diagrams.md",
      "heading": "1 · Intake — connect and ingest"
    },
    {
      "sourcePath": "src/app/(docs)/docs/concepts/system-diagrams/page.tsx",
      "caption": "Intake serializes each source, ingests every normalized document before advancing its checkpoint, writes revision/ACL metadata, and dispatches searchable chunk enrichment."
    }
  ],
  "generation": {
    "application": {
      "name": "eli-ai",
      "version": "0.1.0"
    },
    "environment": {
      "node": "v26.3.1",
      "yarn": "4.17.1",
      "platform": "linux",
      "architecture": "x64",
      "containerImage": "playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109"
    },
    "packages": {
      "mermaid": "11.16.0",
      "mermaidCli": "11.16.0",
      "playwright": "1.62.1",
      "playwrightCore": "1.62.1",
      "puppeteer": "25.6.0",
      "puppeteerCore": "25.6.0"
    },
    "renderer": {
      "mermaidConfigSha256": "68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101",
      "themeCssSha256": "c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033",
      "browser": {
        "name": "chromium",
        "revision": "1234",
        "version": "151.0.7922.34",
        "executableSha256": "0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71"
      },
      "font": {
        "family": "Eli Diagram Inter Variable",
        "fileSha256": "3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62",
        "licenseSha256": "3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345"
      }
    },
    "adapterVersions": {
      "diagramGenerator": "2",
      "drawioFlowchart": "1",
      "drawioSequence": "1",
      "drawioState": "1",
      "drawioGantt": "1"
    }
  },
  "artifacts": {
    "mmd": "/diagrams/intake-connect-and-ingest-98d98cb8/intake-connect-and-ingest-98d98cb8.mmd",
    "svg": "/diagrams/intake-connect-and-ingest-98d98cb8/intake-connect-and-ingest-98d98cb8.svg",
    "png": "/diagrams/intake-connect-and-ingest-98d98cb8/intake-connect-and-ingest-98d98cb8.png",
    "drawio": "/diagrams/intake-connect-and-ingest-98d98cb8/intake-connect-and-ingest-98d98cb8.drawio",
    "json": "/diagrams/intake-connect-and-ingest-98d98cb8/intake-connect-and-ingest-98d98cb8.json"
  },
  "artifactSha256": {
    "mmd": "baf1b497343e1dcc495b72fd1229d891722dc68817a9451c201e3a518ad24863",
    "svg": "4e6722d71d80bc5b95e262e83a25e97332c07bacb0fb3705eaf96d2b240a1058",
    "png": "ef99c8dea50509596bd9f12238dc9bb1ff0c56d799985931705a50c5050dee92",
    "drawio": "f87f5fa050167b1f52fe276ff938f9c0bd349b27e8f165bfd41188d12b6dfa17"
  }
}
