Skip to main content

DSL Overview

The Actra DSL is a declarative language for defining what can run, under which conditions, and within what governance boundaries.

It is designed to be:

  • deterministic
  • runtime-safe
  • easy to review
  • portable across JavaScript and Python runtimes

Every Actra policy system is built from six first-class blocks.


1) Schema​

The schema defines the shape of data the runtime and policies are allowed to reference.

This includes:

  • actions
  • actor
  • snapshots
  • field types

The schema is the contract between your application and the policy engine.


2) Policy​

The policy defines rules that decide whether an action should be allowed or blocked.

Policies contain:

  • scoped rules
  • conditions
  • effects
  • rule identifiers

This is where the control logic lives.


3) Governance​

The governance block defines the boundaries of what policies are allowed to control.

It establishes:

  • valid action surfaces
  • inspection boundaries
  • allowed effects
  • execution guarantees

Governance ensures policies remain safe and predictable.


4) Actor​

The actor block models the identity attempting an action.

This can represent:

  • users
  • services
  • workflows
  • AI agents

Policies often use actor data for role-aware decisions.


5) Action​

The action block represents the operation being admitted by the runtime.

Examples include:

  • refund
  • deploy
  • execute_tool
  • approve_workflow

Actions are the primary admission surface in Actra.


6) Snapshots​

Snapshots represent external runtime state captured before execution.

Examples:

  • fraud status
  • deployment freeze
  • account health
  • quota limits

Snapshots allow policies to reason about the current world safely.


Mental Model​

Think of the DSL as:

Schema defines the world
Policy defines the logic
Governance defines the boundaries
Runtime admits the action

Next Steps​

  • Learn the full Schema DSL
  • Write scoped rules in Policy
  • Define execution boundaries in Governance