PersistedOperation

In-memory representation of a row in trax.persisted_operation. Returned by IPersistedOperationStore reads.

Properties

PropertyTypeColumnNotes
TenantKeystring?tenant_keyNull at the C# boundary. Stored as '' sentinel because the column participates in the composite primary key.
IdstringidBuild-time-stable id, e.g. userProfile_v1.
OperationNamestringoperation_nameOriginal GraphQL operation name (often differs from id by case).
VersionintversionOperator-set metadata, from UpsertOptions.Version (0 when not given). The id is opaque; nothing is parsed from it.
DocumentstringdocumentFull GraphQL document text.
ShapeFingerprintstringshape_fingerprintsha-256 hex of the canonicalized response shape.
IsActiveboolis_activeFalse indicates a soft-delete. Inactive rows do not serve requests.
DeprecationReasonstring?deprecation_reasonRequired when IsActive is false.
Descriptionstring?descriptionOperator-facing note.
CreatedAtDateTimecreated_atUTC.
UpdatedAtDateTimeupdated_atUTC.

Schema

The table is created by Trax migration 035_persisted_operations.sql, which also creates trax.persisted_operation_history for audit and rollback. Both tables live in the trax schema alongside the rest of the Trax tables (metadata, manifest, log, etc.), and both are sets on the Effect DataContext (PersistedOperations, PersistedOperationHistories). There is no separate persisted-operations DbContext.

For history, prefer IPersistedOperationsService.GetHistoryAsync, the call behind the persistedOperationHistory management query.

PersistedOperationHistory properties

One row per change to a live row, in trax.persisted_operation_history.

PropertyTypeColumnNotes
HistoryIdlonghistory_idSurrogate key (bigserial).
TenantKeystring?tenant_keyMirrors the live row.
IdstringidMirrors the live row.
DocumentstringdocumentSnapshot at the time of the change.
ShapeFingerprintstringshape_fingerprintSnapshot at the time of the change.
ChangeTypestringchange_typeOne of Upsert, Deactivate, Restore.
ChangedAtDateTimechanged_atUTC.
ChangedReasonstring?changed_reasonRequired on deactivate.