Skip to main content

OBJECT_RESULT_OUTPUT

Constant OBJECT_RESULT_OUTPUT 

Source
pub const OBJECT_RESULT_OUTPUT: &str = "result_output";
Expand description

Object Store holding overflow stdout / stderr blobs for the ExecResult wire kind (#227). The default NATS max_payload is 1 MB; a result whose stdout / stderr exceeds it would reject the publish and pin the agent’s outbox in a reconnect loop. The agent uploads any stdout / stderr larger than STDOUT_INLINE_THRESHOLD (256 KB, picked at 1/4 of the default max_payload so the rest of the ExecResult fields fit alongside) into this bucket and replaces the inline field with crate::wire::ExecResult::stdout_object / stderr_object pointers. Backend’s results projector derefs the pointers before INSERT so downstream consumers (SQLite, SPA Activity, inventory projector) see the full text the same way they always have.

Object keys follow the shape <request_id>/{stdout,stderr} so stdout + stderr for the same execution share a sibling prefix — makes kanade jetstream listings group naturally and keeps the per-key namespace tight against duplicate uploads.

Per-bucket retention (not a stream-wide TTL since async-nats object_store inherits stream config): matches STREAM_RESULTS’s 30-day retention so an operator who can still query the result row in SQLite can also fetch the original blob if the inline copy ever needs re-projection.