{
  "schemaVersion": 1,
  "generatedAt": "2026-08-17T18:35:03.816Z",
  "generationKey": "c02babcd6c9dda9e75f859b273eea9cdaa5101e1794976217bbee3727c30241e",
  "metadataPayloadSha256": "b4ed0c487b1b8992a8af224a579c8a273d9b8db9c95b16bc473d357373fadaba",
  "diagram": {
    "id": "lineage-system-architecture-bdfd5ed9",
    "title": "Lineage — system architecture",
    "description": "Every save flows through the vault, which writes the document, its body, its chunks, its revision, and its audit row together. The lineage route gates on the document ACL, then the assembler joins the owned stores with the intake, graph, and answer tables it only reads.",
    "status": "current",
    "canonicalAppearanceKey": "tsx:src/app/(docs)/docs/modules/lineage/page.tsx:lineageArchitectureChart#1"
  },
  "aliases": [],
  "concepts": [
    "Lineage architecture",
    "REST surface — src/app/api/v1/documents",
    "Write path — the trail producer",
    "Read path — the trail assembler",
    "Modules",
    "Lineage"
  ],
  "keywords": [
    "Lineage route (API)",
    "Catalog routes — list + create (API)",
    "Item routes — get, update, delete (API)",
    "content-acl.ts — document ACL gate (service)",
    "store: queue",
    "store: table",
    "store: tables",
    "embed + extract jobs",
    "saveDocument + softDeleteDocument (service)",
    "path normalization jail (service)",
    "recordDocumentRevision (service)",
    "synchronous chunking (service)",
    "fire-and-forget warm-up (service)",
    "documentLineage (service)",
    "store: append-only table",
    "vault/index.ts",
    "vault/paths.ts",
    "vault/revisions.ts",
    "ingest/chunking.ts",
    "ingest/enrichment.ts",
    "lineage/index.ts"
  ],
  "mermaid": {
    "type": "flowchart",
    "direction": "TB",
    "sourceSha256": "bdfd5ed9c898bae491854039be1fb760cb8e189cff771e2924301322ee0441b1"
  },
  "provenance": [
    {
      "appearanceKey": "tsx:src/app/(docs)/docs/modules/lineage/page.tsx:lineageArchitectureChart#1",
      "surface": "route",
      "sourcePath": "src/app/(docs)/docs/modules/lineage/page.tsx",
      "line": 132,
      "route": "/docs/modules/lineage",
      "symbol": "lineageArchitectureChart",
      "caption": "Every save flows through the vault, which writes the document, its body, its chunks, its revision, and its audit row together. The lineage route gates on the document ACL, then the assembler joins the owned stores with the intake, graph, and answer tables it only reads."
    }
  ],
  "embeddedMetadata": [
    {
      "sourcePath": "src/app/(docs)/docs/modules/lineage/page.tsx",
      "caption": "Every save flows through the vault, which writes the document, its body, its chunks, its revision, and its audit row together. The lineage route gates on the document ACL, then the assembler joins the owned stores with the intake, graph, and answer tables it only reads."
    }
  ],
  "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/lineage-system-architecture-bdfd5ed9/lineage-system-architecture-bdfd5ed9.mmd",
    "svg": "/diagrams/lineage-system-architecture-bdfd5ed9/lineage-system-architecture-bdfd5ed9.svg",
    "png": "/diagrams/lineage-system-architecture-bdfd5ed9/lineage-system-architecture-bdfd5ed9.png",
    "drawio": "/diagrams/lineage-system-architecture-bdfd5ed9/lineage-system-architecture-bdfd5ed9.drawio",
    "json": "/diagrams/lineage-system-architecture-bdfd5ed9/lineage-system-architecture-bdfd5ed9.json"
  },
  "artifactSha256": {
    "mmd": "f82cceb755bf53e8d3a12ce60be90fc8d66c152066da7ab37039e1d9212aad7b",
    "svg": "3499b56ce3f5059718c5fdf66db069fdfbf9be4fe2e794b8d2ae3ef65d9d0ca3",
    "png": "26da6d0663b4dd366eca1a8f55dd4189e10a158f459a70b7bd39313ddbf2c5d7",
    "drawio": "ce59533c695210716a27c6e3c9de2f09a557f0f0608b7c9a5a6e0effa2483780"
  }
}
