route-guard-presence
| Field | Value |
|---|---|
| ID | route-guard-presence |
| Version | 1.0.0 |
| Mode | drift |
| Layer | Stripe |
| Category | contract |
| Severity | 🔴 blocking |
| SLA | 60,000 ms |
| Depends on | none |
| Source | apps/api/__gates__/route-guard-presence.gate.ts |
What it asserts
Every apps/api/app/v1 route.ts that maps to a spec operationId calls requireExposed() as its post-auth, pre-validate gate (non-spec routes exempt).
Run it locally
bun run gates --gate=route-guard-presenceSee also
driftmode- Stripe layer
- Allowlists — how to bound a known finding with an expiration
- Contributing — how to evolve this gate or write a new one
Generated by apps/design/scripts/generate-gate-pages.ts from the gate's source-of-truth metadata. Edit this page by editing the gate file's description / version / etc.
rate-limit-matrix
Every operation declares x-matter-rate-limit.bucket + tier caps; the RateLimited response carries Retry-After + RateLimit-* headers; tier × bucket caps are monotone.
route-manifest-property
Property: every path the route-manifest matcher returns for a known template matches that template's regex; literals beat params at the same depth.