Executes one closed-catalog operation inside a temporary Runner.
Summary
Functions
Runs one operation end to end: input validation, portability check, policy authorization, kind-specific invocation and output/domain validation.
Resolves an ambiguous outcome by calling the spec's reconcile executor
with the stored receipt, then validates the produced execution.
Types
Functions
@spec execute( Spectre.Operation.Spec.t(), Spectre.Operation.Request.t(), Spectre.Operation.ExecutionContext.t() ) :: result()
Runs one operation end to end: input validation, portability check, policy authorization, kind-specific invocation and output/domain validation.
Returns {:ok, execution}, {:error, reason}, or {:ambiguous, reason}
when a side-effecting operation failed in a way whose outcome is unknown
(timeout, crash, declared ambiguity).
@spec reconcile( Spectre.Operation.Spec.t(), term(), Spectre.Operation.ExecutionContext.t() ) :: result()
Resolves an ambiguous outcome by calling the spec's reconcile executor
with the stored receipt, then validates the produced execution.
Returns {:error, {:operation_not_reconcilable, id}} when the spec has no
reconcile executor.