Initial public ModelForge release

This commit is contained in:
Jens
2026-09-01 21:30:16 +02:00
commit 7082ab955a
490 changed files with 104252 additions and 0 deletions
@@ -0,0 +1,29 @@
# ADR-0007: Outbound authenticated compute-node agent
- Status: accepted
- Date: 2026-08-25
## Context
The central control plane must manage hardware on separate GPU servers without conflating the API
host with the compute node. SSH orchestration, Docker socket exposure and inbound node services widen
the trust boundary and do not provide a stable reporting protocol.
## Decision
Run a lightweight unprivileged agent on each compute node. It initiates HTTPS requests to a
versioned central API, reports typed inventory/telemetry and heartbeats, and persists its identity,
credential and stream sequences. Enrollment secrets are random, short-lived, single-use and stored
only as SHA-256 hashes. Issued credentials are random, node-scoped, hash-only at rest, revocable and
never returned by list APIs. Administrative onboarding uses a separately configured operator secret.
The control plane uses server-received heartbeat time for liveness and retains agent observation time
for provenance. Node roles, labels and eligibility are operator-managed metadata; inventory never
grants production eligibility automatically.
## Consequences
The compute server needs only outbound API reachability. Lost agent state requires explicit
revocation/re-enrollment. HTTPS termination and CA trust are deployment responsibilities. Protocol
evolution must remain explicit and test older/replayed/incompatible reports. Runtime execution is
intentionally absent until M5/M6 define adapters and scheduling.