feat: WP-0002 T03 selection decision, wait on purchase

Recommend Scaleway Multi-AZ nl-ams. Inventory stays proposed with
description, decision, reef: refs, secret: handle, and consumers.
Human approval required before ordered.
This commit is contained in:
tegwick 2026-08-14 16:18:16 +02:00
parent 9d11d2a043
commit f9af7518f5
6 changed files with 179 additions and 5 deletions

View file

@ -5,6 +5,33 @@
"financial_entity_id": "entity:railiance",
"procuring_entity_id": "entity:railiance",
"entity_gap": null,
"description": "Off-host S3-compatible object store for rapp-postgres WAL archive and physical base backups. Procured by Railiance, operated as a Scaleway-delegated substrate on reef-storage, not on reef-railiance.",
"decision": {
"status": "recommended",
"chosen": "Scaleway Standard Multi-AZ nl-ams; independent secondary copy on Host Europe Backup Storage or governed Nextcloud (T06)",
"rejected": [
"Host Europe Cloud Storage as primary (S3 not confirmed orderable)",
"Hetzner Object Storage as primary (no default at-rest encryption)",
"Self-managed Garage as primary (labor and capacity lose at this workload)"
],
"approved_by": null,
"approved_on": null,
"ref": "docs/evidence/RESOURCE-WP-0002-primary-selection-2026-08-14.md"
},
"operational_refs": [
"reef:storage/declarations/reef.yaml",
"reef:storage/substrate/object-stores/platform-audit-storage.yaml",
"reef:storage/substrate/object-stores/platform-audit-storage.yaml#endpoint",
"reef:storage/substrate/object-stores/platform-audit-storage.yaml#bucket",
"reef:storage/substrate/object-stores/platform-audit-storage.yaml#region"
],
"credential_handles": [
"secret:railiance-platform/platform-pg-backup-s3"
],
"consumers": {
"potential": ["rapp-postgres"],
"actual": []
},
"resource_class": "storage",
"status": "proposed",
"management_model": "provider_managed",
@ -23,7 +50,7 @@
"location": {
"region": "nl-ams",
"country": "NL",
"failure_domains": ["provider:scaleway", "region:nl-ams"],
"failure_domains": ["provider:scaleway", "region:nl-ams", "reef:storage"],
"residency": "European Union"
},
"capacity": [
@ -44,7 +71,7 @@
"cost": {
"currency": "EUR",
"tax_status": "excluded",
"billing_model": "usage-based storage and egress; no commitment",
"billing_model": "usage-based storage and egress; no commitment; Railiance self-use at delivered cost",
"commitment_ref": null,
"price_evidence": "data/providers/object-storage.json#scaleway-standard-multi-az"
},
@ -65,6 +92,7 @@
"evidence": [
{"kind": "provider", "ref": "https://www.scaleway.com/en/pricing/storage/", "observed_at": "2026-08-10", "authority": "Scaleway"},
{"kind": "provider", "ref": "https://www.scaleway.com/en/object-storage/", "observed_at": "2026-08-10", "authority": "Scaleway"},
{"kind": "decision", "ref": "docs/evidence/RESOURCE-WP-0002-provider-due-diligence-2026-08-10.md", "observed_at": "2026-08-10", "authority": "resource-control"}
{"kind": "decision", "ref": "docs/evidence/RESOURCE-WP-0002-provider-due-diligence-2026-08-10.md", "observed_at": "2026-08-10", "authority": "resource-control"},
{"kind": "decision", "ref": "docs/evidence/RESOURCE-WP-0002-primary-selection-2026-08-14.md", "observed_at": "2026-08-14", "authority": "resource-control"}
]
}