Skip to main content
projectAuditLogEntries is the audit log of projects: sharing, invites, ownership transfers, downloads and admin actions. One document is one event on one project. web owns it; the schema is services/web/app/src/models/ProjectAuditLogEntry.mjs, and core writes through services/web/app/src/Features/Project/ProjectAuditLogHandler.mjs.

Fields

Who Writes It

Operations written by core with addEntry or addEntryInBackground: Operations written by our modules (services/web/modules/...): Core also calls addEntryIfManaged for project-created, project-deleted, project-archived, project-unarchived, project-trashed, project-untrashed, project-restored, project-cloned (Project/ProjectController.mjs:292-479) and project-history-version-restored, project-history-version-downloaded (History/HistoryController.mjs:334, :396, :454, :711). These write nothing in CE; the project-deleted and project-restored entries in a CE database come from the admin panel.

Who Reads It

Core CE has no page that shows this log.

Indexes

tools/migrations/20220929193200_add_auditLog_indexes.mjs first created project_id_1 on { projectId: 1 }; 20250912102601 replaces it with the compound index. The schema’s index: true marks are not applied, as Mongoose auto-indexing is off (services/web/app/src/infrastructure/Mongoose.mjs:7). The managedSubscriptionId index migration is tagged saas only.

Notes

  • Entries expire 2.5 years after timestamp through the TTL index, and all entries of a project go when its deleted-project record expires.
Last modified on November 14, 2026