016-store-binary-values-and-extensions

Binary values and the extension policy: BLOBs are first class, loadable extensions are refused

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Applications above the chassis store vectors, thumbnails, and signatures, so the store must round-trip binary values with a declared ceiling and a paged read that never materializes a table. It must also answer, once and in writing, whether a loadable SQLite extension may be used: it may not. hiqlite replicates statements rather than pages, so a node whose engine differs diverges silently, and a virtual table's behavior under snapshot, backup, and restore is unproven. The escape hatch is named here so a later spec can open it with evidence rather than by assumption.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-store/src/blob.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-store/tests/blob.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "011-store-hiqlite",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-store/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "011-store-hiqlite",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-store/src/query.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "011-store-hiqlite",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-store/src/store.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "011-store-hiqlite",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-store/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-workspace-and-core-types",
      "unit": {
        "anchor": "workspace.dependencies",
        "file": "Cargo.toml",
        "kind": "section"
      }
    }
  • constrains
    {
      "flavor": "invariant-freeze",
      "note": "no SQLite extension is ever loaded; every node runs one identical engine",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-store/src/store.rs"
      }
    }

Source headings

  1. 016: Binary values and the extension policy
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 4. Functional requirements
  6. 5. Acceptance criteria
  7. 6. Out of scope
  8. 7. Resolved decisions
  9. 8. Status
  10. Verification

Frozen anchors

No frozen anchors declared.