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
depends on
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
- 020: The edge
- 1. Purpose
- 2. Territory
- 3. Behavior
- 4. Functional requirements
- 5. Acceptance criteria
- 6. Out of scope
- 7. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.