Outcome: You can find Control Plane audit logs by source, search them, and restrict who can view logs. Prerequisites: Access to the Formal console, or an API key with Logs access. See Permissions.
Overview
Every authenticated request to Formal’s is written as an audit log. That includes calls from the , the public API, Terraform, and machine auth such as AWS SigV4. Control Plane logs share the same Logs experience as Connector, Endpoint, and workflow activity. Use the Source filter to switch streams. See Logs for search, aggregations, export, and retention.Log Sources
Formal tags every log with asource field. Choose a source in the Formal console, or filter with Quickwit (source:control-plane).
Prefer
source over event_type when filtering Control Plane activity.
Control Plane logs use source:control-plane and fields under
control_plane_request.*. Connector and Endpoint logs use event_type
values such as request or session-start.What Gets Logged
Formal records a Control Plane log for each authenticated API call after the handler returns. Unauthenticated traffic (for example health checks) is not logged. Each entry includes:control_plane_request.policy_action audits whether that API call was allowed. It is separate from who may view logs later (see Permissions for Viewing Logs).
View Control Plane Logs
1
Open Logs
Go to Logs in the Formal console.
2
Select Control Plane
Set Source to Control Plane. The table columns switch to command, service, user, method, and policy action.
3
Inspect an entry
Click a row to open the details panel. Review arguments, identity, and any error.
Search Examples
Control Plane Field Reference
Permissions for Viewing Logs
There is no separate permission per log source. Access to Connector, Desktop, Control Plane, and workflow logs is gated by the Logs application in Control Plane permissions. If a user cannot open Logs or call Logs APIs, they cannot view Control Plane audit logs in Formal. Formal returns HTTP 403 for blocked requests.Restrict Logs to Security Admins
security-admins cannot list or manage logs. Everyone else keeps allow-by-default access to other applications.
Allow Read-Only Logs Access
List, Get) but cannot change log configurations or related write commands.
Useful Logs Commands
Forwarding Control Plane Logs
When you configure a Log Integration, Formal forwards Control Plane logs with every other source. For object storage (S3, GCS, Azure Blob), Control Plane objects use this key prefix:connector, desktop, or workflow in place of control-plane.
Best Practices
Monitor denied Control Plane calls
Monitor denied Control Plane calls
Alert on
control_plane_request.policy_action:deny in Formal or your SIEM.
Spikes often mean misconfigured permissions or probing.Limit who can view Logs
Limit who can view Logs
Restrict the Logs application to security or audit groups. Control Plane
logs include API arguments and identity context.
Pair with change control
Pair with change control
Use Control Plane logs to audit who changed policies, connectors, and users.
Filter by
control_plane_request.command.type:update or :delete.Forward for long-term retention
Forward for long-term retention
Keep console search for day-to-day work. Forward to S3 or your SIEM for
multi-year compliance archives.
Next Steps
Logs
Search, aggregations, export, and retention
Permissions
Configure OPA access to Formal applications
Log Integration
Forward logs to S3, Datadog, or Splunk
Logs API
Query logs with the public API (
LogsService)