# `Sig.Schemas.WorkflowExecution`
[🔗](https://github.com/peeeuzin/sig/blob/v0.1.0/lib/sig/schemas/workflow_execution.ex#L1)

A single run of a workflow.

Created with `Sig.create_execution/4` or `Sig.run_execution/4`.

## Fields

  * `:workflow_id` - the workflow being executed.
  * `:idempotency_key` - optional key, unique per workflow, that prevents
    duplicate executions.
  * `:params` - execution-level params.
  * `:context` - execution-level context.
  * `:node_results` - results of the completed nodes, keyed by node name.
  * `:status` - `"pending"`, `"running"`, `"suspended"`, `"stopped"`,
    `"completed"` or `"failed"`.
  * `:error` - the error of the node that failed the execution, if any.
  * `:started_at` / `:completed_at` - when the execution started and reached
    a final state.

# `t`

```elixir
@type t() :: %Sig.Schemas.WorkflowExecution{
  __meta__: term(),
  completed_at: DateTime.t() | nil,
  context: map(),
  error: map() | nil,
  id: String.t() | nil,
  idempotency_key: String.t() | nil,
  inserted_at: DateTime.t() | nil,
  node_executions:
    [Sig.Schemas.NodeExecution.t()] | Ecto.Association.NotLoaded.t(),
  node_results: map(),
  params: map(),
  started_at: DateTime.t() | nil,
  status: String.t(),
  updated_at: DateTime.t() | nil,
  workflow: Sig.Schemas.Workflow.t() | Ecto.Association.NotLoaded.t() | nil,
  workflow_id: String.t() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
