020-edge-server

The edge: axum router, middleware chain, probes, static slot, error mapping

Lifecycle approvedImplementation completeVerification unknownQualification unknown

The one public listener of a cell: an axum Router builder that an app mounts its services on, a fixed middleware order (observation outermost, then security headers, CSRF double-submit, and a per-node rate limiter on the cache group), liveness and readiness probes that answer different questions, a static file slot for the app's SPA, and one mapping from rahi_types::Error to HTTP status. Everything an app serves goes through this router; there is no second listener.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/Cargo.toml"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/lib.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/router.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/state.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/middleware/mod.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/middleware/security_headers.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/middleware/csrf.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/middleware/rate_limit.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/probes.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/static_files.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/src/error.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/tests/probes.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/tests/middleware.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/tests/common/mod.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/rahi-edge/testdata/"
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-workspace-and-core-types",
      "unit": {
        "anchor": "workspace.dependencies",
        "file": "Cargo.toml",
        "kind": "section"
      }
    }

Source headings

  1. 020: The edge
  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. Verification

Frozen anchors

No frozen anchors declared.