Documentation
¶
Overview ¶
Package responsefleet dispatches governed response commands through the durable fleet work lane.
Index ¶
- Variables
- type Config
- type Executor
- func (e *Executor) Execute(ctx context.Context, req ports.ResponseExecRequest) (ports.ResponseExecOutcome, error)
- func (e *Executor) Halt(ctx context.Context, tenantID shared.ID, generation int64) error
- func (*Executor) Identity() string
- func (e *Executor) ResolveAgent(ctx context.Context, tenantID shared.ID, target responsesaga.TargetFingerprint) (shared.ID, error)
- func (*Executor) Supports(kind rdom.Kind) bool
- type ObserverDispatcher
- type TargetEvidenceReceiptBuilder
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrEndpointOutcomeUnknown = errors.New("endpoint response execution outcome unknown")
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
CommandTTL time.Duration
PollInterval time.Duration
AgentStaleAfter time.Duration
}
Config bounds command authorization and endpoint-result waiting.
type Executor ¶
type Executor struct {
// contains filtered or unexported fields
}
Executor is the production response.Executor adapter over signed, leased fleet work orders.
func New ¶
func New(work workService, agents ports.FleetAgentStore, bindings ports.TelemetryAssetBindingLister, signer ports.ResponseCommandSigner, clock ports.Clock, config Config) (*Executor, error)
func (*Executor) Execute ¶
func (e *Executor) Execute(ctx context.Context, req ports.ResponseExecRequest) (ports.ResponseExecOutcome, error)
func (*Executor) Halt ¶
Halt cancels every lower-generation effect order before durably issuing highest-priority signed halt commands. Heartbeats independently repeat the monotonic fence for agents that reconnect later.
func (*Executor) ResolveAgent ¶
func (e *Executor) ResolveAgent(ctx context.Context, tenantID shared.ID, target responsesaga.TargetFingerprint) (shared.ID, error)
ResolveAgent chooses the single active, fresh, response-capable agent authoritatively bound to the process asset. A missing or ambiguous route fails closed.
type ObserverDispatcher ¶
type ObserverDispatcher struct {
// contains filtered or unexported fields
}
func NewObserverDispatcher ¶
func NewObserverDispatcher(work workService, agents ports.FleetAgentStore, bindings ports.ResponseObserverBindingStore, clock ports.Clock, ttl, staleAfter time.Duration) (*ObserverDispatcher, error)
func (*ObserverDispatcher) EnsureObservation ¶
func (d *ObserverDispatcher) EnsureObservation(ctx context.Context, req ports.ResponseVerificationRequest) error
func (*ObserverDispatcher) SetTargetEvidenceReceiptBuilder ¶
func (d *ObserverDispatcher) SetTargetEvidenceReceiptBuilder(builder *TargetEvidenceReceiptBuilder)
type TargetEvidenceReceiptBuilder ¶
type TargetEvidenceReceiptBuilder struct {
// contains filtered or unexported fields
}
func NewTargetEvidenceReceiptBuilder ¶
func NewTargetEvidenceReceiptBuilder(bindings ports.TelemetryAssetBindingLister, timeline ports.EndpointTimelineStore, coverage ports.BoundedCoverageWindowReader, store ports.ResponseTargetEvidenceReceiptStore, clock ports.Clock) (*TargetEvidenceReceiptBuilder, error)
func (*TargetEvidenceReceiptBuilder) Build ¶
func (b *TargetEvidenceReceiptBuilder) Build(ctx context.Context, req ports.ResponseVerificationRequest) (fleetagent.ResponseTargetEvidenceReceipt, error)
Click to show internal directories.
Click to hide internal directories.