resource-control/examples/portfolio/garage-three-node.example.json
tegwick 2c2a6073ff feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).

T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.

RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00

15 lines
1.8 KiB
JSON

{
"schema_version": "0.2", "record_scope": "example",
"id": "resource:example:garage:cluster", "resource_class": "self_managed_service",
"status": "proposed", "management_model": "self_managed",
"provider": {"name": "Example IaaS provider", "account_ref": null, "product_ref": "three-vm-topology", "provider_resource_id": null},
"service": {"name": "Garage object storage", "service_id": "object-storage", "class": "S3-compatible replicated service", "capacity_model": "fixed"},
"location": {"region": "example-eu", "country": "DE", "failure_domains": ["provider:example", "region:example-eu"], "residency": "European Union"},
"capacity": [{"metric": "usable_storage", "value": 320, "unit": "GB", "kind": "usable", "observed_at": null}, {"metric": "nodes", "value": 3, "unit": "count", "kind": "provisioned", "observed_at": null}],
"ownership": {"owner": "railiance-platform", "environment": "production", "workload_ids": [], "tenant_id": null, "allocation": {"mode": "shared", "cost_attribution_key": "platform:object-storage", "driver": "stored-gb-month", "method_version": "storage-share-v1"}},
"cost": {"currency": "EUR", "tax_status": "unknown", "billing_model": "fixed VM capacity plus internal operations labor", "commitment_ref": null, "price_evidence": null},
"lifecycle": {"proposed_on": null, "ordered_on": null, "commissioned_on": null, "renews_on": null, "cancel_by": null, "retired_on": null, "exit_path": "Export objects to a verified S3-compatible target, revoke credentials, and retire nodes after consumers move."},
"relationships": [{"type": "hosted_on", "resource_id": "resource:example:garage:nodes"}],
"requirements": [{"kind": "recovery", "ref": "example:restore-test-required"}],
"evidence": [{"kind": "example", "ref": "RESOURCE-WP-0003-T01", "observed_at": "2026-08-11", "authority": "resource-control"}]
}