040-runtime-identity-and-binding-surface

Runtime identity: a replica states which bits it runs, which ceiling it enforces, and which instance it is, with every value's basis named, on bounded surfaces

Lifecycle draftImplementation pendingVerification unknownQualification unknown

A consumer that correlates an immutable artifact, an authority snapshot, a deployment, and a running replica needs the replica to say what it is. Today it says almost nothing: rahi version prints the crate version, the manifest hash is visible only inside a ledger export or a backup, the OTel resource carries service.name alone, the image has no labels, and the deploy manifests pin no digest. This spec makes a replica report its measured executable digest, its booted manifest hash, its declared image and build revision, and a per-boot instance id, each with its basis (measured, declared, or absent), on one unguarded document at /binding kept off the ingress like /metrics, on the OTel resource, and in one build-info metric whose labels are versions only. It states what the telemetry does not observe or count. It writes nothing to the chain; deployment epochs are spec 041.

Read the full pinned specification ↗

Relationships

depended on by

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-ops/src/binding.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/binding.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-cli/tests/binding.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "020-edge-server",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "020-edge-server",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/src/router.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "023-observability",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/src/obs/tracer.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "023-observability",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/src/obs/metrics.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "023-observability",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/src/obs/mod.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "023-observability",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-edge/tests/obs.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "030-operational-verbs",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-ops/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "030-operational-verbs",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-cli/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "030-operational-verbs",
      "unit": {
        "kind": "file",
        "path": "crates/rahi-cli/src/serve.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "031-single-container-packaging",
      "unit": {
        "kind": "file",
        "path": "docker/Dockerfile"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "031-single-container-packaging",
      "unit": {
        "kind": "file",
        "path": ".github/workflows/image.yml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "032-cluster-topology",
      "unit": {
        "kind": "file",
        "path": "deploy/k8s/statefulset.yaml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "032-cluster-topology",
      "unit": {
        "kind": "file",
        "path": "deploy/k8s/ingress.yaml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "032-cluster-topology",
      "unit": {
        "kind": "file",
        "path": "scripts/k8s-validate.sh"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "032-cluster-topology",
      "unit": {
        "kind": "file",
        "path": "deploy/README.md"
      }
    }

Source headings

  1. 040: Runtime identity and the binding surface
  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. Proposals (2026-09-12)
  10. Verification

Frozen anchors

No frozen anchors declared.