OptionalaccessOptionalactorOptionalattributesOptionalgrantsOptionalgrantsOptionalidempotencyCaller-supplied key that makes this call safe to retry blind (a network
failure ate the response; a queue redelivered the message). The first
commit records the key on the instance's processedRequests[] ledger —
in the same CAS write as the operation itself — and a retry carrying the
same key replays instead of double-applying (or, for a completed effect,
throwing EffectNotFoundError): the operation is NOT re-applied, but
the cascade runs to convergence (the original may have died before its
own cascade), so changed is false unless that cascade repaired
something. Keys live for the engine's idempotencyTtlMs (default 24h);
reusing a live key on a different verb throws. The caller owns key
uniqueness per logical request.
Only a commit records the key: a keyed call that no-ops (a setStage
already at its target, an abort of a terminal instance) leaves no ledger
row, so retrying it later re-evaluates fresh rather than replaying.
OptionalidempotentIf true, no-op (instead of throwing) when the activity is missing from
the current stage's activityStatus — typically because the workflow
has already advanced past it. Distinct from idempotencyKey: this flag
tolerates a state the fire no longer applies to (however it got
there, including someone else's action), while the key dedupes a retry
of this specific request. A drive script tolerating advanced
workflows wants the flag; a queue consumer redelivering a message
wants the key.
OptionalparamsCaller-supplied params for the action. Validated against
Action.params[] before commit; missing/required mismatch throws
ActionParamsInvalidError. Resolved values feed ValueExpr.param
lookups in ops and effect bindings.
URL path for grant resolution — see
StartInstanceArgs.grantsFromPath.