Skip to main content
Version: Next

Audit & compliance

The audit system provides a complete record of all activities in the platform. It captures who did what, when, and where to support security monitoring, compliance requirements, and incident investigation.


Foundation → Audit & Compliance (segment: foundation/audit)

Sub-sectionPathDescription
Audit Logsfoundation/audit/logsActivity records
Alertsfoundation/audit/alertsSecurity notifications
Exportsfoundation/audit/exportsCompliance reports
Retentionfoundation/audit/retentionData lifecycle

Audit architecture

┌─────────────────────────────────────────────────────────────────────────┐
│ Audit System │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Activity Capture │ │
│ │ │ │
│ │ User Actions → API Events → System Events → Security Events │ │
│ │ │ │
│ └────────────────────────────────┬────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Audit Logs │ │ Alerts │ │ Analytics │ │
│ │ │ │ │ │ │ │
│ │ • Entries │ │ • Threshold │ │ • Trends │ │
│ │ • Categories │ │ • Pattern │ │ • Statistics │ │
│ │ • Severities │ │ • Anomaly │ │ • Reports │ │
│ │ • Actors │ │ • Security │ │ • Dashboards │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Compliance & Exports │ │
│ │ │ │
│ │ JSON • CSV • XLSX • PDF │ Retention Policies │ Archive │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Part 1: Audit logs

Audit logs record every significant action in the system.

Audit entry properties

FieldTypeDescription
idstringUnique log ID
tenantIdstringTenant scope
timestampdatetimeWhen it occurred
categoryenumEvent category
severityenumImportance level
statusenumCompletion status
actionstringAction performed
resourcestringTarget resource
resourceIdstringTarget ID
actorIdstringWho performed
actorTypeenumActor classification
actorEmailstringActor email
ipAddressstringClient IP
userAgentstringClient info
locationobjectGeo-location
metadataobjectAdditional data
previousValueobjectBefore change
newValueobjectAfter change

Audit categories

CategoryDescriptionExamples
authenticationLogin/logout eventsLogin, logout, MFA verify
authorizationAccess control eventsPermission check, role assign
data_accessData read operationsView student, export report
data_modificationData write operationsCreate, update, delete
systemSystem eventsConfig change, service start
securitySecurity eventsPassword change, device trust
complianceCompliance eventsAudit export, policy change
adminAdmin operationsUser create, role modify

Severity levels

SeverityDescriptionUse case
infoInformationalNormal operations
warningNotable eventUnusual but not critical
errorError occurredFailed operations
criticalCritical eventSecurity incidents

Audit statuses

StatusDescription
successAction completed
failureAction failed
pendingAction in progress
cancelledAction cancelled

Actor types

TypeDescription
userHuman user
serviceService account
systemSystem process
apiAPI client
schedulerScheduled task

What gets logged

CategoryEvents
AuthenticationLogin, logout, MFA setup, MFA verify, password change, password reset, session terminate
UsersCreate, update, delete, activate, deactivate, lock, unlock, role assign, role remove
RolesCreate, update, delete, permission add, permission remove
StudentsCreate, update, delete, enroll, transfer, graduate, import
FinanceInvoice create, payment record, receipt issue, fee adjust
GradesGrade enter, grade update, report generate
SettingsConfig change, policy update, feature toggle
SecurityDevice trust, alert acknowledge, export request

Viewing audit logs

  1. Navigate to Foundation → Audit & Compliance → Audit Logs
  2. View log entries with:
    • Timestamp
    • Actor (who)
    • Action (what)
    • Resource (target)
    • Status (result)
    • Severity badge
  3. Filter by category, severity, date, actor
  4. Click entry for full details

Audit log filters

FilterOptions
Date rangeFrom/to dates
CategoryAuth, data, security, etc.
SeverityInfo, warning, error, critical
StatusSuccess, failure, pending
ActorSpecific user
ResourceSpecific resource type
IP addressClient IP

Searching audit logs

Search capabilities:
- By actor email
- By resource ID
- By action name
- By IP address
- Full-text in metadata

Audit log entry detail

When viewing an entry:

SectionContent
SummaryTimestamp, actor, action, resource
ContextIP, user agent, location
ChangesPrevious value → New value
MetadataAdditional context data
RelatedRelated log entries

Part 2: Alerts

Alerts notify administrators of important events that require attention.

Alert properties

FieldTypeDescription
idstringAlert ID
tenantIdstringTenant scope
typeenumAlert type
severityenumImportance
titlestringAlert title
messagestringDescription
sourcestringOrigin system
triggeredAtdatetimeWhen triggered
acknowledgedAtdatetimeWhen acknowledged
acknowledgedBystringWho acknowledged
resolvedAtdatetimeWhen resolved
resolvedBystringWho resolved
metadataobjectAdditional data

Alert types

TypeDescriptionExample
thresholdMetric exceeded limitToo many failed logins
patternSuspicious pattern detectedUnusual access pattern
anomalyAnomalous behaviorLogin from new country
securitySecurity eventCompromised device detected

Alert severity

SeverityResponse
infoAwareness only
warningReview when convenient
errorInvestigate soon
criticalImmediate action required

Alert lifecycle

Alert Triggered


┌──────────────┐
│ Active │
└──────┬───────┘


Acknowledge?
│ │
Yes No (escalate)
│ │
▼ ▼
┌──────────────┐
│ Acknowledged │
└──────┬───────┘


Investigate


Resolved?
│ │
Yes No
│ │
▼ ▼
┌──────────────┐
│ Resolved │ → Escalate/Reopen
└──────────────┘

Viewing alerts

  1. Navigate to Foundation → Audit & Compliance → Alerts
  2. View alert list with:
    • Severity indicator
    • Type badge
    • Title and message
    • Triggered time
    • Status
  3. Filter by type, severity, status
  4. Click alert for details

Acknowledging an alert

  1. Open alert details
  2. Review alert information
  3. Click Acknowledge
  4. Add optional notes
  5. Alert moves to acknowledged status

Resolving an alert

  1. Open acknowledged alert
  2. Verify issue is addressed
  3. Click Resolve
  4. Add resolution notes
  5. Alert moves to resolved status

Alert notifications

Alerts can trigger:

  • In-app notification
  • Email to admins
  • Webhook to external system

Part 3: Exports

Export audit data for compliance reporting and external analysis.

Export properties

FieldTypeDescription
idstringExport ID
tenantIdstringTenant scope
typestringExport type
formatenumFile format
statusenumExport status
filtersobjectApplied filters
requestedBystringWho requested
requestedAtdatetimeWhen requested
completedAtdatetimeWhen finished
expiresAtdatetimeDownload expiry
fileUrlstringDownload URL
fileSizenumberSize in bytes
recordCountnumberRecords exported

Export formats

FormatDescriptionUse case
jsonJSON formatAPI integration
csvComma-separatedSpreadsheet analysis
xlsxExcel formatBusiness reporting
pdfPDF documentOfficial records

Export statuses

StatusDescription
pendingQueued for processing
processingBeing generated
completedReady for download
failedGeneration failed
expiredDownload expired

Creating an export

  1. Navigate to Foundation → Audit & Compliance → Exports
  2. Click New Export
  3. Configure export:
    • Select date range
    • Choose categories to include
    • Select format (JSON, CSV, XLSX, PDF)
    • Add filters if needed
  4. Click Generate
  5. Export processes in background
  6. Download when complete

Export templates

Save common export configurations:

TemplateContent
Monthly complianceAll activity for month
Security reportAuth and security events
User activitySpecific user history
Data accessAll data read operations

Scheduled exports

Configure automatic exports:

  • Daily security summary
  • Weekly compliance report
  • Monthly full audit

Part 4: Retention policies

Retention policies control how long audit data is kept.

Retention policy properties

FieldTypeDescription
idstringPolicy ID
tenantIdstringTenant scope
namestringPolicy name
descriptionstringPolicy purpose
categoryenumTarget category
retentionDaysnumberDays to retain
archiveDaysnumberDays before archive
deleteDaysnumberDays before delete
isActivebooleanPolicy active

Default retention periods

CategoryActiveArchiveDelete
Authentication90 days365 days730 days
Data access90 days365 days730 days
Data modification365 days730 days2555 days
Security365 days730 days2555 days
Compliance365 days2555 daysNever

Retention lifecycle

New Log Entry


┌──────────────┐
│ Active │ ← Quick access
│ (Hot store) │
└──────┬───────┘
│ After retentionDays

┌──────────────┐
│ Archived │ ← Compressed storage
│ (Cold store) │
└──────┬───────┘
│ After archiveDays

┌──────────────┐
│ Deleted │ ← Permanent removal
└──────────────┘

Configuring retention

  1. Navigate to Foundation → Audit & Compliance → Retention
  2. View current policies by category
  3. Click policy to edit
  4. Adjust retention periods
  5. Save changes

For compliance or legal requirements:

  • Place hold on specific data
  • Data won't be archived or deleted
  • Remove hold when no longer needed

Compliance reporting

Common compliance requirements

StandardAudit needs
GDPRData access logs, consent records
FERPAEducation records access
SOC 2Security controls evidence
InternalPolicy compliance checks

Compliance dashboard

MetricDescription
Total eventsEvents in period
By categoryBreakdown by type
By severityError/critical count
Access patternsData access summary
Security eventsSecurity incidents

Generating compliance reports

  1. Navigate to Audit & Compliance → Reports
  2. Select report template
  3. Choose date range
  4. Generate report
  5. Download or schedule

Security monitoring

Real-time monitoring

MetricAlert threshold
Failed logins> 10 in 5 min
Password resets> 5 per hour
Data exports> 3 per day
Permission changesAny (audit)
Admin actionsAny (audit)

Security dashboard metrics

WidgetShows
Auth summaryLogin success/fail rate
Active sessionsCurrent user count
Alert statusActive alerts
Recent activityLive activity feed

Permissions required

ActionRequired permission
View audit logsaudit.view
Search audit logsaudit.search
Export audit logsaudit.export
View alertsalerts.view
Manage alertsalerts.manage
View retentionretention.view
Manage retentionretention.manage

Best practices

Audit logging

  • Review logs weekly
  • Monitor failed authentications
  • Track permission changes
  • Investigate anomalies promptly

Alert management

  • Respond to critical alerts immediately
  • Acknowledge alerts within 24 hours
  • Document resolution steps
  • Review alert patterns monthly

Compliance

  • Schedule regular exports
  • Maintain retention policies
  • Document compliance evidence
  • Review access patterns

Data retention

  • Align with legal requirements
  • Archive rather than delete
  • Use legal hold when needed
  • Review policies annually

Troubleshooting

Cannot find log entry

Causes:

  • Entry outside date range
  • Entry archived
  • Insufficient filter criteria

Fix:

  1. Expand date range
  2. Check archived logs
  3. Broaden search filters

Export stuck in processing

Causes:

  • Large data volume
  • System load high
  • Process interrupted

Fix:

  1. Wait for completion (large exports take time)
  2. Cancel and retry with narrower filters
  3. Contact support if persists

Alerts not triggering

Causes:

  • Threshold not met
  • Alert rule disabled
  • Notification settings incorrect

Fix:

  1. Review alert rules
  2. Check rule is active
  3. Verify notification settings

Retention policy not applied

Causes:

  • Policy not active
  • Processing schedule not run
  • Legal hold in place

Fix:

  1. Verify policy is active
  2. Check processing schedule
  3. Review any legal holds