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:
| Action | Meaning |
|---|---|
allow | Permit the call. |
allow_log | Permit the call and record it. This is the default while a bundle is being validated. |
hold | Pause the call and route it to a human for approval before it can run. |
block | Deny 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: holdDomain 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 examplerestricted,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 exampledomain_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.