Implement S3 service assurance and admission checks
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
This commit is contained in:
codex 2026-09-05 11:43:55 +02:00
parent 8f828c7609
commit 234b1b559f
21 changed files with 1728 additions and 30 deletions

View file

@ -1,8 +1,8 @@
# S3 consumer service interfaces
Work record: `RAILIANCE-WP-0016` item 17; `RPF-WP-0018` T04
Date: 2026-08-15, revised 2026-08-17
Contract version of this index: `1.1.0`
Date: 2026-08-15, revised 2026-09-05
Contract version of this index: `1.2.0`
Consumers bind to these contracts, not to Helm chart names or pod topology.
Changing an engine behind a versioned interface does not bump the interface
@ -101,7 +101,7 @@ Consumer is a `consumers[].declaration`. Boundary unit is
| Declared ceiling / overflow target | **4 declarations / `platform-pg-2`** | The isolation probe counts. `rapp-postgres` rejects a fifth declaration on one cell; ADR-0004 owns the number. |
Service classes currently co-resident on `platform-pg`: `latency-critical`
(`tenant-engine`) and `batch` (`audit-core`). Nothing prioritises between them
(`tenant-engine`, `core-hub`) and `batch` (`audit-core`). Nothing prioritises between them
— community PostgreSQL has no resource governor. Reported per Tenancy Posture
§8.3.3.
@ -115,3 +115,20 @@ the lane without restating TTL, delivery, or revocation rules.
Valkey and in-cluster MinIO have capability blocks in `SCOPE.md` and no
live service. They do not receive a `v1` until a consumer exists.
## Service assurance disclosure (1.2.0, additive)
`assurance/service-records.json` explicitly discloses unsupported availability,
RPO and RTO guarantees, decision owners and existing recovery evidence;
`docs/service-assurance.md` documents the executable local checks. Diagnostic
freshness budgets are not SLAs or approval to deploy schedules. Consumers that
require stronger guarantees need a placement/recovery decision.
Current source occupancy: platform-pg 4/4 including the isolation probe,
platform-pg-2 1/4 for sbom-nexus, apps-pg 2/3, apps-pg-2 0/3 and unapplied.
All three deployed cells declare one instance, 1Gi memory limit, 100 aggregate
connections and 30-day retention; live metadata matched on 2026-09-05. The
second platform cell's approved restore took 51 seconds on 2026-08-22; this
is dated evidence, not an RTO. Tenant-engine cut over from SQLite on 2026-08-21.
`assurance/admission-baseline.json` carries owner-native declarations, hashes
and limits. Do not refresh that baseline without reviewing changes.