Phase 5 — Logging & Monitoring (2/3)
What
New modules/audit/ module:
AuditLog Mongoose model (action, userId, orgId, targetType, targetId, ip, userAgent, metadata)
- TTL index on
createdAt — configurable via config.audit.ttlDays (default 90)
audit.service.js — audit.log({ action, req, targetType, targetId, metadata })
- Instrument sensitive controllers: auth (login, signup, password change), billing (subscribe, cancel), invitations (create, accept)
GET /api/audit route — admin-only, paginated, filterable by action/userId/orgId
- Zod validation schema
Config
audit: { ttlDays: 90, enabled: true }
Collection
auditlogs (Mongoose auto-pluralize)
Acceptance
Phase 5 — Logging & Monitoring (2/3)
What
New
modules/audit/module:AuditLogMongoose model (action, userId, orgId, targetType, targetId, ip, userAgent, metadata)createdAt— configurable viaconfig.audit.ttlDays(default 90)audit.service.js—audit.log({ action, req, targetType, targetId, metadata })GET /api/auditroute — admin-only, paginated, filterable by action/userId/orgIdConfig
Collection
auditlogs(Mongoose auto-pluralize)Acceptance
audit.enabled: false