feat: operational resource procurement facility

Implement RESOURCE-WP-0005: entity register, V0.1 terms parameters,
entity association on inventory and planning records, transfer-price
and credit-state arithmetic, monthly settlement, and entity views on
the portfolio report. Live close emits nothing until delivered cost
is known. Handoffs are FIN-WP-0006 and RAILIANCE-WP-0017.
This commit is contained in:
tegwick 2026-08-14 13:15:02 +02:00
parent 325a505980
commit f8d1c542d5
37 changed files with 1316 additions and 28 deletions

View file

@ -0,0 +1,41 @@
{
"schema_version": "0.1",
"record_type": "forecast",
"record_id": "forecast:example:coulomb:cluster-share:2026-08:base",
"revision_of": null,
"resource_id": "resource:example:coulomb-cluster-share",
"service_id": "cluster-share",
"workload_id": "coulomb-social",
"tenant_id": "tenant:coulomb",
"environment": "production",
"cost_attribution_key": "entity:coulomb|resource:example:coulomb-cluster-share",
"financial_entity_id": "entity:coulomb",
"procuring_entity_id": "entity:railiance",
"entity_gap": null,
"period_start": "2026-08-01",
"period_end": "2026-08-31",
"source_evidence": [
"docs/TermsOfResourceProcurement.md#15-worked-examples",
"examples/settlement/15.1-ordinary.json"
],
"created_at": "2026-08-14T12:00:00Z",
"currency": "EUR",
"scenario": "base",
"forecast_version": "terms-v0.1:2026-08-14",
"costs": {
"infrastructure": "200.00",
"internal_labor": "0.00",
"external_services": "0.00",
"setup": "0.00",
"other": "0.00"
},
"transfer_price": "240.00",
"credit_headroom": "760.00",
"uncertainty": "illustrative Terms § 15.1 fixture; not booked spend",
"assumptions": [
"delivered_cost=200.00",
"markup_rate=0.20",
"prior_outstanding=0.00",
"credit_limit=1000.00"
]
}

View file

@ -1,6 +1,10 @@
{
"schema_version": "0.2", "record_scope": "example",
"id": "resource:example:garage:cluster", "resource_class": "self_managed_service",
"id": "resource:example:garage:cluster",
"financial_entity_id": "entity:railiance",
"procuring_entity_id": "entity:railiance",
"entity_gap": null,
"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"},

View file

@ -1,6 +1,10 @@
{
"schema_version": "0.2", "record_scope": "example",
"id": "resource:example:railiance:kubernetes-capacity", "resource_class": "kubernetes_capacity",
"id": "resource:example:railiance:kubernetes-capacity",
"financial_entity_id": null,
"procuring_entity_id": "entity:railiance",
"entity_gap": "example shared capacity; consumers would be allocated, not defaulted",
"resource_class": "kubernetes_capacity",
"status": "active", "management_model": "shared_capacity",
"provider": {"name": "Example infrastructure provider", "account_ref": "account:example", "product_ref": "virtual-machines", "provider_resource_id": null},
"service": {"name": "Railiance Kubernetes worker capacity", "service_id": "kubernetes", "class": "shared worker pool", "capacity_model": "shared"},

View file

@ -1,6 +1,10 @@
{
"schema_version": "0.2", "record_scope": "example",
"id": "resource:example:shared:ingress", "resource_class": "shared_platform_service",
"id": "resource:example:shared:ingress",
"financial_entity_id": null,
"procuring_entity_id": "entity:railiance",
"entity_gap": "example shared ingress; helixforge and coulomb would receive allocated shares",
"resource_class": "shared_platform_service",
"status": "active", "management_model": "self_managed",
"provider": {"name": "Railiance", "account_ref": null, "product_ref": "platform-ingress", "provider_resource_id": null},
"service": {"name": "Shared application ingress", "service_id": "platform-ingress", "class": "cluster platform service", "capacity_model": "shared"},

View file

@ -0,0 +1,17 @@
{
"scenario": "15.1-ordinary",
"period": "2026-08",
"statement_date": "2026-09-01",
"as_of": "2026-09-01",
"payment_recognition": "unknown",
"charges": [
{
"financial_entity_id": "entity:coulomb",
"resource_id": "resource:example:coulomb-cluster-share",
"delivered_cost": "200.00",
"usage_summary": "allocated cluster share"
}
],
"prior_outstanding": {},
"recognized_payments": []
}

View file

@ -0,0 +1,19 @@
{
"scenario": "15.2-extended",
"period": "2026-09",
"statement_date": "2026-10-01",
"as_of": "2026-09-30",
"payment_recognition": "unknown",
"charges": [
{
"financial_entity_id": "entity:coulomb",
"resource_id": "resource:example:coulomb-cluster-share",
"delivered_cost": "100.00",
"usage_summary": "allocated cluster share"
}
],
"prior_outstanding": {
"entity:coulomb": "240.00"
},
"recognized_payments": []
}

View file

@ -0,0 +1,12 @@
{
"scenario": "15.3-restricted",
"period": "2026-09",
"statement_date": "2026-10-01",
"as_of": "2026-09-30",
"payment_recognition": "unknown",
"charges": [],
"prior_outstanding": {
"entity:helixforge": "1000.00"
},
"recognized_payments": []
}