Overview
Audit Logs provide a comprehensive record of all administrative and significant actions performed in your SnailyCAD instance. They help with accountability, troubleshooting, and compliance by tracking who did what and when.Accessing Audit Logs
Navigate to Admin > Manage > Audit Logs to access the audit logs interface.Required Permissions
Audit logs are available to users with any default admin permission. The system automatically grants access to administrators.Understanding Audit Logs
Each audit log entry contains:- Type - The action type (e.g., UserBan, ValueUpdate)
- Executor - Who performed the action (username or “Public API”)
- Created At - When the action occurred
- Actions - View detailed changes
Audit Log Types
Audit logs are categorized by the type of action performed:User Management
UserBan- User was bannedUserUnban- User was unbannedUserUpdate- User details were modifiedUserDelete- User account was deletedUserTempPassword- Temporary password was generatedUsersPruned- Inactive users were pruned in bulkUserPermissionsUpdate- User permissions were changedUserRolesUpdate- User roles were changedUserApiTokenDelete- User’s API token was revokedUser2FADelete- User’s 2FA was disabledUserWhitelistStatusChange- User whitelist status changed
CAD Settings
CadAPITokenRegenerated- CAD API token was regeneratedCADFeaturesUpdate- CAD features were enabled/disabledCadSettingsUpdate- General CAD settings were modifiedMiscCadSettingsUpdate- Miscellaneous settings were changedUpdateDiscordRoles- Discord role integration was updatedUpdateDiscordWebhooks- Discord webhooks were configuredCadAPITokenRemoved- API token was removedCadAPITokenEnabled- API token was enabledCadAutoSetPropertiesUpdate- Auto-set properties were modifiedUpdateRawWebhooks- Raw webhooks were updated
Citizens & Records
CitizenUpdate- Citizen details were modifiedCitizenDelete- Citizen was deletedCitizenRecordRemove- Arrest/citation record was removedCitizenWarrantRemove- Warrant was removed
Units
UnitUpdate- Unit details were modifiedUnitDelete- Unit was deletedUnitsSetOffDuty- Units were set off-dutyTemporaryUnitCreate- Temporary unit was createdTemporaryUnitUpdate- Temporary unit was modifiedUnitsPruned- Inactive units were prunedUnitQualificationSuspended- Unit qualification was suspendedUnitQualificationAdd- Qualification was added to unitUnitQualificationRemove- Qualification was removed from unitUnitDepartmentDeclined- Unit’s department join request was declinedUnitDepartmentAccepted- Unit’s department join request was accepted
Businesses
BusinessUpdate- Business details were modifiedBusinessDelete- Business was deletedBusinessEmployeeUpdate- Employee details were updatedBusinessEmployeeFire- Employee was fired
Custom Fields & Roles
CustomFieldCreate- Custom field was createdCustomFieldUpdate- Custom field was modifiedCustomFieldDelete- Custom field was deletedCustomRoleCreate- Custom role was createdCustomRoleUpdate- Custom role was modifiedCustomRoleDelete- Custom role was deleted
Values
ValueAdd- Value was createdValueUpdate- Value was modifiedValueRemove- Value was deletedValueBulkRemove- Multiple values were deleted
Courthouse
ExpungementRequestAccepted- Expungement request was approvedExpungementRequestDeclined- Expungement request was deniedNameChangeRequestAccepted- Name change request was approvedNameChangeRequestDeclined- Name change request was deniedActiveWarrantAccepted- Active warrant was approvedActiveWarrantDeclined- Active warrant was denied
Dispatch & Operations
Calls911Purge- 911 calls were purgedLeoIncidentsPurged- LEO incidents were purgedEmsIncidentsPurged- EMS/FD incidents were purgedSignal100Toggled- Signal 100 was toggledCall911Create- 911 call was created
Viewing Audit Logs
The audit logs page displays a paginated table of all actions:- Default View - Shows most recent actions first
- Sorting - Click column headers to sort by:
- Executor (alphabetical)
- Created At (chronological)
- Pagination - Navigate through pages of logs
Filtering by Type
Use the Type dropdown to filter logs:- Click the Type dropdown
- Select an action type (e.g., “UserBan”)
- View only logs of that type
- Click Clear to remove filter
Searching Logs
Use the search box to find logs:- Search by executor username
- Search by action type
- Real-time filtering as you type
Viewing Detailed Changes (Diff)
Click View Diff to see what changed:- Click View Diff button next to an audit log
- A modal opens showing:
- Previous - State before the change (if applicable)
- New - State after the change
- Differences - Highlighted changes
- Added fields (highlighted in green)
- Removed fields (highlighted in red)
- Changed values (side-by-side comparison)
Understanding Executors
User Actions:- Shows the username of the admin who performed the action
- Clicking on the executor name may filter to show their actions
- Actions performed via the API without a specific user
- Usually from automated systems or integrations
- Automated actions by the system itself
- May not have an executor listed
Audit Log Retention
Audit logs are stored permanently by default. Consider:- Database Size - Logs grow over time and consume database space
- Performance - Very large log tables may slow queries
- Compliance - Some jurisdictions require log retention for specific periods
SnailyCAD does not automatically purge audit logs. Implement a retention policy based on your needs.
API Access
Audit logs can be accessed via the API:skip- Pagination offsetquery- Search querytype- Filter by action typesorting- Sort field and direction
Use Cases
Security Auditing
Review administrative actions for security purposes:- Identify unauthorized changes
- Track who banned users and why
- Monitor permission changes
- Detect suspicious API usage
Troubleshooting
Diagnose issues by reviewing recent changes:- “Who changed this setting?”
- “When was this user deleted?”
- “What permissions did this user have before?”
Compliance
Meet regulatory requirements:- Track all data modifications
- Prove who accessed what data
- Demonstrate accountability
- Generate audit reports
User Support
Help users with questions:- “Was my ban appeal processed?”
- “When was my whitelist status changed?”
- “Who approved my expungement request?”
Best Practices
- Regular Review - Check audit logs weekly for unusual activity
- Filter Effectively - Use type filters to focus on specific actions
- Export for Analysis - Use API to export logs for deeper analysis
- Retention Policy - Define how long to keep logs (e.g., 1 year)
- Secure Access - Limit audit log access to trusted administrators
- Action Documentation - When performing sensitive actions, note the reason
Limitations
- No Undo - Audit logs are read-only; you cannot revert actions from logs
- Not All Actions - Only administrative and significant actions are logged (not every page view)
- No User Data - Logs show that changes occurred but may not show full sensitive data
- Pagination - Very old logs require scrolling through many pages
Troubleshooting
Logs Not Appearing
- Permissions - Verify you have admin permissions
- Time Range - Logs may be on a different page; use search
- Action Type - Not all actions are logged; check the action type list
Cannot View Diff
- Old Logs - Very old logs may not have diff data
- Delete Actions - Deletion logs only show the deleted item, not a diff
- Create Actions - Creation logs only show the new item
Performance Issues
- Large Database - If logs are slow to load, consider archiving old logs
- Filters - Use filters to reduce the result set
- API Access - Use the API for bulk analysis instead of the web UI
Related Documentation
- User Management - Actions that generate user audit logs
- Custom Roles - Role change audit logs
- Custom Fields - Field modification audit logs
- Values - Value change audit logs
- CAD Settings - Setting change audit logs