polix.policy

Policy definition and management.

Provides the defpolicy macro for defining declarative policies and the Policy record for representing compiled policies.

defpolicy

macro

(defpolicy name & args)

Defines a policy with a name, optional docstring, and policy expression.

A policy is a declarative rule that evaluates to boolean true/false. The macro parses the policy expression into an AST and extracts the required document schema.

Examples:

(defpolicy MyPolicy
  "Optional docstring"
  [:= :doc/actor-role "admin"])

(defpolicy AnotherPolicy
  [:or [:= :doc/role "admin"]
       [:= :doc/role "user"]])

Returns a def form that creates a Policy record, or throws on parse error.