Benefits of audit logging
- Compliance readiness — Many regulatory frameworks such as GDPR and SOC 2 require immutable records of user activity.
- Security investigation support — Audit logs provide clear visibility into user and system actions, helping teams respond quickly and confidently during security incidents.
- Operational accountability — Track changes across the system to answer common questions like “who modified this?” or “when was this deleted?”.
Enabling audit logging
- Set the following environment variables in your deployment (Docker Compose, Kubernetes, etc.):
.env
- Redeploy your containers.
- Confirm you can see audit logs in the output of your containers.
Understanding the log format
Audit logs are JSON Lines (one JSON object per line). A typical entry looks like this:Field | Description |
---|---|
level | Log level, always "audit" for audit events |
time | Unix timestamp in milliseconds |
pid | Process ID of the logging instance |
hostname | Hostname of the server generating the log |
name | Application name, typically "formbricks" |
timestamp | ISO‑8601 time of the action |
actor | User or API key responsible (object with id and type ) |
action | Constant verb‑noun string (survey.updated , login.failed , …) |
target | The resource affected (object with id and type ) |
status | success or failure |
organizationId | Organization identifier where the action occurred |
ipAddress | User IP address, present only if AUDIT_LOG_GET_USER_IP=1 , otherwise "unknown" |
apiUrl | (Optional) API endpoint URL if the logs was generated through an API call |
eventId | (Optional) Available on error logs. You can use it to refer to the system log with this eventId for more details on the error |
changes | (Optional) Only the fields that actually changed (sensitive values redacted) |
Centralized logging and compliance
Formbricks audit logs are designed to work with modern centralized logging architectures:- Stdout delivery: Logs are written to stdout for immediate collection by log forwarding agents
- Centralized integrity: Log integrity and immutability are handled by your centralized logging platform (ELK Stack, Splunk, CloudWatch, etc.)
- Platform-level security: Access controls and tamper detection are provided by your logging infrastructure
- SOC2 compliance: Most SOC2 auditors accept centralized logging without application-level integrity mechanisms
Additional details
- Redacted secrets: Sensitive fields (e‑mails, access tokens, passwords…) are replaced with
"********"
before being written. - Failure events count: Both successful and failed operations are logged.
- Single source of truth: The same logs power the
Formbricks
UI and API endpoints. - Scope limitation: For now, only events triggered inside the
Formbricks
application are audited. This means:- Embed and Link Surveys are not included in the audit logs.
- Survey responses created via the client API or client-side SDKs are not audited.