Skip to main content

Protected Actions

A protected action is any operation whose effect is real, external, and hard to reverse. Protected actions require explicit authorization from AtlaSent before they execute. The test: if this action ran without authorization, would it cause a problem that couldn’t be undone by refreshing the page?

The action_type field

Every protected action has an action_type — a string that names the operation. This is what AtlaSent evaluates against your policies.
action_type is yours to define. Convention: <domain>.<verb> for organization, agent.<domain>.<verb> for AI agent actions.

Example action types

Some of the slugs below are canonical entries in the Protected Action Canon — production.deploy, production.rollback, infrastructure.change, database.migrate, data.delete, and reconciliation.certify. The others are illustrative names you might define for your own organization.

Deployment

Data

Financial

AI Agent

Adding custom action types

A custom action_type must be lowercase, dot-separated segments (it is validated against /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$/; malformed values return 400 invalid_action_type). Add it to your policy and it becomes protected. The rule below is schematic — see Policy authoring for the exact rule format:
Actions that don’t appear in any policy are denied by default. Unknown = denied.

The evaluation context

When an action is evaluated, pass arbitrary context that policies can inspect:
A policy can reject this call if rows_affected > 10000 or triggered_by === 'ai_agent' and require manual approval instead.

Next steps