App Studio
Audit Log
The App Studio Audit Log tracks every change made to an app — who made it, what was changed, and when. Backed by the AIExtension.Service audit trail.
What Is Logged
Every mutating operation on an app definition is recorded in the audit log:
| Event Type | Details Recorded |
|---|---|
| Page added | New page ID, route, title, actor |
| Page deleted | Deleted page ID, actor |
| Widget added | Widget ID, type, target pane, actor |
| Widget config changed | Widget ID, changed property key, old value, new value, actor |
| Widget deleted | Widget ID, actor |
| Action configured | Widget ID, event, action type, actor |
| App published | Version snapshot, publish timestamp, actor |
| App exported | Export bundle version, export timestamp, actor |
| App imported | Source bundle version, import timestamp, actor |
| Permissions changed | Changed role list or visibility rule, actor |
Accessing the Audit Log
- In the builder: click the History icon in the toolbar → Audit Log
- Via API:
GET /api/apps/{id}/audit?from={date}&to={date} - Tenant admins can access logs for all apps in their tenant via the admin console
Audit Log Entry Structure
// Example audit log entry (JSON)
{
"auditId": "audit-8f3a2b",
"appId": "crm-app",
"tenantId": "tenant-001",
"timestamp": "2026-05-20T14:32:10Z",
"actor": {
"userId": "user-jane",
"name": "Jane Smith",
"roles": ["app-designer"]
},
"eventType": "widget_config_changed",
"entityId": "leads-grid",
"entityType": "widget",
"changes": [
{
"property": "config.dataSource",
"oldValue": "GetAllLeads",
"newValue": "GetActiveLeads"
}
]
}
Rollback from Audit History
The Audit Log doubles as a version history. Each saved state of the app is snapshotted. To roll back:
- Open the Audit Log and find the save/publish event you want to roll back to
- Click Restore this version
- The builder loads the snapshot for review — it is not applied yet
- Click Confirm Restore to apply — this creates a new audit entry ("Restored to version X")
Audit Log Retention
Audit log entries are retained for 90 days by default. Platform administrators can extend this per-tenant. Long-term audit archives can be exported via the API in JSON or CSV format for compliance archiving.