Concepts

The ArmorEdu policy model for targets, tool enforcement, and the domain control blocks that express campus rules.

ArmorEdu policies are ordinary ArmorIQ policy documents (armor.policy.v1). They compile to both the native evaluator and an OPA bundle, and the two must agree on every decision. What makes a policy an ArmorEdu policy is the set of domain control blocks it carries.

Targets

Each bundle sets targetType: agent and a targetId, so the policy applies only to the agent it names. This lets the course-management agent, the research assistant, and the IT operations agent each run under a policy shaped for its own risks.

Enforcement actions

A tool call resolves to one of four actions:

ActionMeaning
allowPermit the call.
allow_logPermit the call and record it. This is the default while a bundle is being validated.
holdPause the call and route it to a human for approval before it can run.
blockDeny the call outright.

Resolution order is specific-to-general: a per-tool override in toolEnforcement wins, then the rule's action, then the policy's defaultEnforcementAction, and finally a fail-closed block.

spec:
  defaultEnforcementAction: allow_log
  memberRules:
    "*":
      allowedTools: [get_course_info, export_student_records, publish_final_grades]
      toolEnforcement:
        export_student_records: block
        publish_final_grades: hold

Domain control blocks

Beyond tool actions, an ArmorEdu bundle declares domain-specific controls that describe what data and operations are acceptable for that agent. These read as policy, not code:

  • ferpaAccessControl: restricts which student data categories (directory, enrollment, grades) an agent may touch, whether only directory information is allowed, whether a legitimate-interest check is required, and whether student identifiers are redacted.
  • studentRecordControl: names the record types an agent may read and whether records may leave the institution, with an allowlist of export destinations.
  • gradeReleaseControl: requires approval for grade publication and constrains which grade statuses (for example, final) may be released.
  • researchDataControl: blocks sharing of classified datasets (for example restricted, export-controlled), allowlists sharing destinations, and can require de-identification.
  • grantControl: holds grant proposals above a threshold amount and allowlists funding agencies.
  • privilegedAccessControl: blocks specific privileges (for example domain_admin), holds creation of privileged or service accounts, and allowlists roles.

These blocks are illustrated concretely in the bundle templates. For the general policy engine (the draft/shadow/active status lifecycle and OPA parity), see platform policies and Policy Studio.

On this page