Activity Monitoring
Sovrium records every meaningful action across the application — record create/update/delete, authentication events, and administrative operations — into a system-wide activity log. The log is queryable through an authenticated API with filtering and pagination, giving operators and auditors a single place to answer "who did what, when".
This is the operator-facing read surface over the platform's canonical audit-log event store. Each entry is immutable and outlives the rows it references where required for compliance (an account.deletion.purged event survives the erasure of the user who triggered it — see GDPR & Privacy).
What Gets Tracked
| Category | Examples |
|---|---|
| Record CRUD | create, update, delete, restore on any table record. |
| Authentication events | Sign-in, sign-up, password reset, session revocation. |
| Administrative actions | User creation, role changes, bans, schema publishes, force-deletes. |
| System events | Migrations, account-deletion scheduling and purge. |
Each entry carries the action, the affected table and record id (when applicable), a timestamp, and the acting user (id, name, email). The actor reference is FK-linked with ON DELETE SET NULL so an audit entry remains a valid compliance record even after the actor's account is erased.
Querying the Activity Log
The activity API is admin-gated. Unauthenticated requests return 401; non-admin sessions return 403.
GET /api/activity?page=1&pageSize=20&table=orders&action=update{
"activities": [
{
"id": "act_123",
"action": "update",
"tableName": "orders",
"recordId": 456,
"createdAt": "2025-01-15T10:30:00Z",
"user": { "id": "1", "name": "Alice", "email": "alice@example.com" }
}
],
"pagination": { "total": 150, "page": 1, "pageSize": 20, "totalPages": 8 }
}| Endpoint | Description |
|---|---|
GET /api/activity |
Paginated, filterable list of activity entries. |
GET /api/activity/:activityId |
Full detail for a single activity entry. |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page |
number | Page number (default: 1). |
pageSize |
number | Entries per page. |
table |
string | Filter to a single table by name. |
action |
string | Filter by action (create, update, delete, restore, …). |
Activity log vs record history. The activity log is a cross-table, system-wide stream answering "what happened across the app". For the field-level before/after change set of a single record, use Record History — it captures the diff of each individual edit. The two complement each other: activity for breadth, history for depth.
Retention
Activity entries are retained according to the platform retention policy. Soft-deleted source rows themselves age out per the ECO_RETENTION_PURGE_DAYS horizon (see Ecoconception), but audit entries required for compliance — notably erasure records — are preserved independently of the rows they describe.
Compliance Use
The same shape returned to admins is returned to auditors, so SOC2 / GDPR review documentation reflects exactly what operators see. Combined with the immutable canonical event store, the activity log provides the "audit trail of erasure" required when honoring a right-to-be-forgotten request: the deletion is itself logged, with the actor reference null-ified once the account is purged.
Related Pages
- Record History — field-level before/after diffs per record.
- Soft Delete — recoverable deletes and the
deleted_attombstone. - Admin Dashboard — operator read API over the rest of the platform.
- GDPR & Privacy — erasure records and the audit trail of deletion.
- User Management — the admin actions that produce activity entries.
Last updated August 11, 2026
This documentation was written with AI, so errors or outdated content are possible. Sovrium is in beta. Contributions and corrections are welcome.