Saltar al contenido

app.audit_events

TablaParticionada por mesSeguridad a nivel de fila activa

Append-only compliance ledger (Section 7.3, Section 8.4): who did what to which row, with a diff. Kept 7 years in monthly partitions; personal data in plaintext is redacted at 90 days at every JSON depth (invariant 23).

Clave primaria: id, created_at

Columnas de app.audit_events
ColumnaTipoAdmite nulosDescripción
iduuidNoAudit event id, UUID v7.
org_iduuidNoOwning org. A row never moves to another org.Hace referencia a app.organizations.id
actor_kindapp.actor_kindNoPerson, Service or System.
actor_person_iduuidSíPerson who acted, when a person acted.Hace referencia a app.people.id
actiontextNoWhat happened, as table.operation (for example membership_roles.insert) or a named act (for example dsar.exported).
subject_tabletextNoTable of the row acted on.
subject_iduuidSíId of the row acted on.
diffjsonbNoAudit diff: the new values on insert, the old and new values of changed columns on update, the old values on delete. Restricted columns and hashes are never included.
actor_ipinetSíClient IP address of the request. Removed at redaction.
user_agenttextSíClient user agent of the request. Removed at redaction.
request_idtextSíRequest id from the API, for correlating with logs.
redacted_attimestamp with time zoneSíWhen personal data in diff, actor_ip and user_agent was redacted.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidSíPerson who inserted the row, or null for a platform process. Set by the database.Hace referencia a app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidSíPerson who last changed the row, or null for a platform process. Set by the database.Hace referencia a app.people.id
deleted_attimestamp with time zoneSíSoft delete time. A row with deleted_at set is ignored by every access helper.