Append-only execution lineage row shared by fresh ingress and replay.
Execution runs always point back to the immutable canonical inbound record and stored evidence row they processed.
Summary
Types
@type outcome() :: :no_match | :accept | :ignore | :reject | :bounce | :failed
@type source() :: :fresh | :replay
@type t() :: %MailglassInbound.InboundRecords.ExecutionRun{ __meta__: term(), executed_at: DateTime.t() | nil, failure: map(), id: Ecto.UUID.t() | nil, inbound_evidence: term(), inbound_evidence_id: Ecto.UUID.t() | nil, inbound_record: term(), inbound_record_id: Ecto.UUID.t() | nil, inserted_at: DateTime.t() | nil, mailbox: String.t() | nil, metadata: map(), outcome: outcome() | nil, outcome_reason: String.t() | nil, source: source() | nil, tenant_id: String.t() | nil, updated_at: DateTime.t() | nil }
Functions
@spec changeset(map()) :: Ecto.Changeset.t()