OptionalEntityThe Entity Action binding that caused this run.
OptionalEntityWhich lifecycle event fired the binding — AfterUpdate, Validate, List and so on.
Recorded separately from EntityActionID because one binding may be attached to
several invocation types, and telling a Validate refusal apart from an AfterUpdate side
effect is the first question anyone asks of the log.
OptionalEntityThe binding's parameter rows. Required by the redaction rules: ValueType drives the hard
whole-record rule, and LogValue supplies the per-binding override.
OptionalLoggingThe binding's LoggingMode — All / FailuresOnly / None. Defaults to All when absent.
OptionalTargetThe entity of the record the run operated on. Denormalized rather than derived through EntityActionID so it survives the binding being deleted or retargeted, and so the log can be queried by record with no join. Kept generic — every invoker has a subject, not only Entity Actions.
OptionalTargetThe primary key of the record the run operated on, as text. For multi-record invocation types
(List, View) one log row is written per record, so this is always a single record.
Where an action run came from, when it was dispatched by an Entity Action binding rather than invoked directly. Carried on RunActionParams.Provenance and stamped onto
ActionExecutionLogso a failed workflow is diagnosable: which binding fired this, on which record, from which event.Also supplies the two things the engine cannot work out for itself once the run is under way — the binding's
LoggingMode, and theEntityActionParamrows the redaction rules need in order to see a parameter'sValueTypeand per-bindingLogValueoverride.Absent for direct invocations (a resolver, a script, an agent step, a scheduled action), which is exactly what the log's NULL provenance columns mean.