Risk Register

Risk Register #

The known risks, how likely and how bad each is, how it is being treated, and the record that owns it. An entry is added when a risk is identified β€” in an ADR, a change or an incident β€” and reviewed when a related record changes state.

Likelihood and impact are low / medium / high. Treatment is one of reduce (something is being done), accept (deliberately lived with), avoid (the design routes around it) or transfer.


Register #

#RiskLikelihoodImpactTreatmentOwning recordStatus
R-01Tenant state and API registry have no second copy. Both sit on the provisioning VM’s OS disk; losing that disk loses the copies tenants restore fromMediumHighReduce β€” data disk and replicaADR-0014Open β€” Proposed; replica location undecided
R-02The state store’s software is unmaintained upstream. MinIO’s community edition was archived on 2026-04-25; no further releases or fixes. Since 2026-09-24 quay.io also refuses the pinned image (unauthorized), so the Builder’s mirrored tarball is the only copy a rebuild can use ( CHG-0025)HighMediumReduce β€” replace behind a stable S3 contractADR-0026Open β€” Proposed
R-03The state store is plain HTTP. Tenant state, which holds every credential a tenant was issued, crosses the platform network unencryptedMediumHighReduce β€” TLS, as the design already saysADR-0026, ADR-0016Open
R-04The core router is a single device with a NIC fault. Recurring re0 watchdog timeouts; the router is the whole site’s gateway and policy pointHighHighReduce β€” vendor driver or replacement hardwareINC-0004Open β€” investigating
R-05No redundancy in the critical path. One router, one switch, standalone hypervisors, local storage, no out-of-band managementMediumHighAccept β€” recovery is rebuild, not failoverResiliency & LimitsAccepted
R-06The rebuild path lives inside what it rebuilds. The Builder is one physical nodeLowHighAccept, for now β€” a second detachable Builder is hardware, not designResiliency & LimitsAccepted
R-07No automated vulnerability tracking or scanning. Advisories are followed by handMediumMediumReduce β€” feeds, scanning, CIVulnerability ManagementOpen β€” planned
R-08Tenant enrollment tokens are handed over by hand. The designed age-encrypted delivery is not builtLowMediumReduce β€” build the delivery; meanwhile admit close to use (72h expiry, single use)ADR-0012 Β§9Open
R-09Broker accounts are not bound to a client id. A leaked device password works from any client idLowMediumAccept β€” revoke by -replace; topic confinement still holdsDevices & MQTTAccepted
R-10Build secrets rendered to plaintext files. The Proxmox API token was written to build/pve-env/*.env for Packer and the fabric, and the files outlived every buildMediumHighReduce β€” fetch per run from OpenBao, never to diskCHG-0026Closed β€” CHG-0026 Complete

Adding or changing an entry #

  • Add an entry when a record identifies a risk that outlives the record β€” an ADR consequence, a change’s “not tested”, an incident’s root cause that is not fixed
  • Close it in the same commit as the record that treats it, with the record linked
  • Keep closed entries, struck through or moved to a closed table, so the history stays traceable ( Traceability)
Page last modified: September 25, 2026