Runtime Status Source Matrix

Runtime status sources are local authorities for image identity and container context. They are not reachability proof, and they do not publish Stella Ops evidence by themselves. The Linux and Windows host agents must use these sources only to resolve immutable image digests and runtime context before the digest-gated publisher can create evidence.

Binding Rules

Source Matrix

SourceOSStatusAuthority levelPermissionsFreshnessFailure behavior
File-backed CRI/container snapshotLinux now, Windows-compatibleActive baseline in current resolver/worker and Linux agentLocal runtime status snapshot created by an operator-approved watcher or import stepRead access to configured absolute file pathRefreshed on host start and optional background interval; agents carry refreshed/observed timestamps into HostRuntimeStatusMissing, unreadable, unauthorized, malformed, tag-only, not-found, or ambiguous records fail closed
Command-backed CRI/container snapshotLinux now, Windows-compatibleActive baseline in current resolver/worker and Linux agentOutput from an explicitly configured local runtime commandExecute permission for a fully qualified executable path; no shell invocationFresh per command run, bounded by timeout and output limitNon-zero exit, timeout, over-large output, malformed JSON, tag-only, not-found, or ambiguous records fail closed
Native CRI/containerd/Docker/Podman API clientLinuxPlanned, inactiveDirect local runtime API responseRuntime socket/API access with least privilegeMust include API response time and status freshness before publicationMust remain inactive until contracts, generated types, licenses, fixtures, and tests are approved
File-backed Windows runtime snapshotWindowsActive baseline in Windows host agentLocal Windows runtime snapshot created by an operator-approved watcher or import stepRead access under Windows service account ACLsCarries refreshed/observed timestamps into HostRuntimeStatus before publicationMissing, unreadable, unauthorized, malformed, tag-only, stale, not-found, or ambiguous records fail closed
Windows command/named-pipe/API sourceWindowsCommand-backed active baseline; named-pipe/API planned inactiveApproved Windows runtime API, Docker named pipe, containerd-on-Windows, or bounded command outputService account permission to the API, named pipe, executable, or file pathFresh per read or command run; timeout and output bounds requiredPermission denied, unavailable runtime, timeout, malformed response, tag-only, stale, not-found, or ambiguous records fail closed
TetragonLinuxOptional observation source, not status authoritySensor observation onlyLocal Tetragon access when explicitly enabledEvent freshness is sensor-side; image evidence still needs local runtime status digestCannot publish directly; absent, disabled, malformed, or disconnected Tetragon does not block the Linux agent from using other local status
Kubernetes pod status/API/watchLinux historicalRetired, unsupported active sourceHistorical compatibility fixture onlyNot applicable for active product scopeNot applicableOptions validation rejects enabled Kubernetes sources; new work must not expand this path

Current Implementation Notes

The current code lives in src/RuntimeInstrumentation/StellaOps.RuntimeInstrumentation.Tetragon/ and src/RuntimeInstrumentation/StellaOps.Agent.Linux/, and src/RuntimeInstrumentation/StellaOps.Agent.Windows/. The former remains the fail-closed resolver baseline for the existing worker slice. The Linux and Windows host-agent bases use Agent.Core runtime status contracts directly.

Native runtime clients must adapt into the same fail-closed behavior before they can be marked active.