pub struct TransactionAttribution {Show 19 fields
pub transaction_id: String,
pub operation_ids: Vec<String>,
pub subject: Option<String>,
pub tenant_id: Option<String>,
pub application_id: Option<String>,
pub application_revision: Option<String>,
pub base_revision: u64,
pub commit_revision: u64,
pub state_before: u64,
pub state_after: u64,
pub keys: Vec<String>,
pub operations: usize,
pub principal_id: Option<String>,
pub agent_id: Option<String>,
pub session_id: Option<String>,
pub delegator_id: Option<String>,
pub work_id: Option<String>,
pub unix_ms: u128,
pub audit: Option<Value>,
}Expand description
Who committed a transaction, and what it touched.
Projected from the audit document the transaction already writes. It carries no record values: attribution answers who, when, and to what, and the values are reachable through the record and revision APIs that authorize each read.
Fields§
§transaction_id: String§operation_ids: Vec<String>Stable operation identities assigned to the rows in this transaction. These are distinct from both transaction and revision identity.
subject: Option<String>The actor the caller authenticated as, when the transaction named one.
tenant_id: Option<String>§application_id: Option<String>§application_revision: Option<String>The application contract revision the transaction was executed against.
base_revision: u64§commit_revision: u64§state_before: u64§state_after: u64§keys: Vec<String>capability:key for each mutation, truncated at
[TRANSACTION_ATTRIBUTION_KEYS].
operations: usizeHow many mutations the transaction made, whether or not keys lists
them all.
principal_id: Option<String>§agent_id: Option<String>§session_id: Option<String>§delegator_id: Option<String>§work_id: Option<String>§unix_ms: u128Milliseconds since the epoch, matching StoredRow::unix_ms.
audit: Option<Value>Canonical transaction metadata exactly as committed. Record values are deliberately absent; stable work/session/agent/operation references live here so historical provenance survives process loss.