Skip to main content

Audit Logs

DotVault maintains comprehensive audit logs of all activities within your projects, providing transparency, accountability, and compliance support.

Overview​

Every action in DotVault is logged with detailed metadata, including:

  • Who: User who performed the action
  • What: Type of action performed
  • When: Timestamp of the action
  • Where: IP address and user agent
  • Context: Additional relevant details

Logged Actions​

Project Actions​

ActionDescriptionMetadata
project_createNew project createdproject name, slug
project_updateProject settings changedchanged fields
project_deleteProject deleted-
project_viewProject accessed-

Environment Actions​

ActionDescriptionMetadata
env_createEnvironment createdlabel, import source
env_updateEnvironment modifiedlabel, via (ui/api/cli)
env_deleteEnvironment deletedlabel
env_viewEnvironment viewedlabel, masked flag
env_exportEnvironment exportedlabel, format
env_importEnvironment importedlabel, format, count
env_restoreVersion restoredlabel, from version

Member Actions​

ActionDescriptionMetadata
member_inviteMember invitedemail, role
member_acceptInvitation acceptedemail
member_removeMember removedemail, role
member_role_changeRole changedemail, old role, new role

Access Control Actions​

ActionDescriptionMetadata
access_requestAccess requestedreason, duration
access_approveAccess approvedapprover, duration
access_rejectAccess rejectedapprover
access_useElevated access usedactions performed
emergency_requestEmergency access requestedtype, description
emergency_approveEmergency access approvedapprovers
emergency_rejectEmergency access rejectedapprover
emergency_useEmergency access usedactions performed

Security Actions​

ActionDescriptionMetadata
loginUser logged inmethod, success
logoutUser logged out-
login_failedFailed login attemptreason
2fa_enabled2FA enabledmethod
2fa_disabled2FA disabled-
2fa_backup_usedBackup code used-
api_key_createdAPI key createdname, scopes
api_key_revokedAPI key revokedname
ip_allowlist_updatedIP allowlist changedadded, removed
webhook_createdWebhook createdtype, events
webhook_deletedWebhook deletedtype

Secret Management​

ActionDescriptionMetadata
secret_rotation_enabledRotation enabledkey, interval
secret_rotation_disabledRotation disabledkey
secret_rotatedSecret rotatedkey, method
sync_configuredSync configuredsource, target
sync_executedSync performedsource, target, changes
sync_approvedSync approvedapprover

Viewing Audit Logs​

Web Interface​

  1. Navigate to Project Settings
  2. Click "Audit Logs" tab
  3. Filter by:
    • Date range
    • Action type
    • User
    • Resource

API​

# Get project audit logs
GET /api/projects/{projectId}/audit-logs?page=1&limit=50

# Filter by action
GET /api/projects/{projectId}/audit-logs?action=env_update

# Filter by user
GET /api/projects/{projectId}/audit-logs?userId=user_xxx

# Filter by date range
GET /api/projects/{projectId}/audit-logs?from=2024-01-01&to=2024-01-31

CLI​

# View recent logs
dotvault audit my-project --limit 50

# Filter by action
dotvault audit my-project --action env_update

# Export to file
dotvault audit my-project --from 2024-01-01 --to 2024-01-31 --format csv --output audit.csv

Exporting Audit Logs​

Formats​

  • JSON: Machine-readable, complete data
  • CSV: Spreadsheet-friendly
  • PDF: Human-readable report
  • Syslog: SIEM integration

API Export​

POST /api/projects/{projectId}/audit-logs/export
{
"format": "csv",
"from": "2024-01-01T00:00:00Z",
"to": "2024-01-31T23:59:59Z",
"actions": ["env_update", "env_view"]
}

Real-time Streaming​

For SIEM integration and real-time monitoring:

WebSocket​

const ws = new WebSocket("wss://api.dotvault.io/audit-stream");
ws.onmessage = (event) => {
const log = JSON.parse(event.data);
console.log("New audit log:", log);
};

Webhook​

Configure webhooks to receive audit events:

POST /api/projects/{projectId}/webhooks
{
"type": "generic",
"url": "https://your-siem.com/webhook",
"events": ["env_update", "env_delete", "login_failed"],
"secret": "your-webhook-secret"
}

Retention​

Audit log retention depends on your plan:

PlanRetention
Free7 days
Pro90 days
EnterpriseUnlimited

Enterprise customers can configure custom retention policies.

Compliance​

SOC 2​

Audit logs support SOC 2 compliance by providing:

  • Change tracking (CC6.1)
  • Access logging (CC6.2)
  • Failed access attempts (CC6.3)
  • Privileged access monitoring (CC6.4)

GDPR​

For GDPR compliance:

  • All data access is logged
  • Export capability for data portability
  • Retention policies for data deletion

HIPAA​

For HIPAA compliance:

  • Access controls and logging
  • Audit trail integrity
  • Tamper-evident logs

PCI DSS​

For PCI DSS compliance:

  • Access to cardholder data environments
  • Failed access attempts
  • Administrative access logging

Best Practices​

Regular Review​

Schedule weekly or monthly audit log reviews:

  • Look for unusual patterns
  • Verify access requests are legitimate
  • Check for failed login attempts
  • Review emergency access usage

Alerting​

Set up alerts for critical events:

# Configure Slack alert for emergency access
POST /api/projects/{projectId}/webhooks
{
"type": "slack",
"url": "https://hooks.slack.com/services/...",
"events": ["emergency_request", "emergency_use"]
}

Integration​

Send audit logs to your SIEM:

  • Splunk
  • Datadog
  • Elastic Stack
  • Sumo Logic
  • Custom webhooks

API Reference​

List Audit Logs​

GET /api/projects/{projectId}/audit-logs
?page=1
&limit=50
&action=env_update
&userId=user_xxx
&from=2024-01-01T00:00:00Z
&to=2024-01-31T23:59:59Z

Response:
{
"data": {
"logs": [
{
"id": "log_xxx",
"action": "env_update",
"user": {
"id": "user_xxx",
"name": "John Doe",
"email": "john@example.com"
},
"resourceType": "env",
"resourceId": "env_xxx",
"metadata": {
"label": "production",
"via": "web"
},
"ipAddress": "192.168.1.1",
"userAgent": "Mozilla/5.0...",
"createdAt": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 150,
"hasMore": true
}
}
}

Get Audit Log Statistics​

GET /api/projects/{projectId}/audit-logs/stats
?from=2024-01-01
&to=2024-01-31

Response:
{
"data": {
"totalEvents": 150,
"byAction": {
"env_view": 80,
"env_update": 20,
"login": 50
},
"byUser": {
"user_xxx": 100,
"user_yyy": 50
},
"failedLogins": 5
}
}

Security​

Audit logs are:

  • Immutable: Cannot be modified or deleted
  • Encrypted: At rest with AES-256
  • Access-controlled: Only project owners can view
  • Backed up: Geo-redundant storage

Privacy​

Audit logs contain:

  • User IDs and emails
  • IP addresses
  • User agent strings
  • Action metadata

This data is subject to your privacy policy and data retention requirements.