Skip to main content

Policy Structure

Every policy has the same top-level shape in YAML:

scope and target

Group name resolution: the SDK looks up the group by name first, then by UUID. If the group does not exist, apply will fail with a 404.

locked

When locked: true, the device agent cannot override the policy locally — even if a device-level policy would normally take precedence. Use this for compliance-critical settings you never want overridden.

App Config (app_config)

Controls the Agent Charley application’s behavior on the endpoint.
All fields are optional. Unset fields inherit from the broader scope.

Flow Config (flow_config)

Controls which URL categories Agent Charley classifies and reports.

Available Categories


DLP Config (dlp_config)

Controls data loss prevention — scanning clipboard content and blocking or warning on sensitive data patterns.

targets

Either apply_to_all_apps: true or provide apps_allowlist — not both. apps_allowlist entries are matched against the application’s display name on macOS (as reported by NSWorkspace).

detections.builtins

actions.mode

slack_context

When slack_context.enabled is true, DLP triggers only when the user is pasting into a Slack window that matches the specified channel types. If slack_context is omitted or disabled, DLP applies regardless of the target application.

Python SDK Models

AppConfigData

FlowConfigData

DlpConfigData