Unify Logo Footer.svg
AI Governance
Logo
Policy Data Model

Policy Data Model

Logo

3 mins READ

Introduction

Four objects carry all of Regulation and Compliance: control, policy, asset, incident. They connect in one direction, and almost every question in this section is answered by walking the chain.

The chain

Object

What it is

Connects to

Control

One rule: a check, its apply points, an action

Belongs to any number of policies

Policy

A named bundle of controls with a set of covered assets

Holds controls; covers assets

Asset

A governed agent or model

Covered by any number of policies

Incident

A record of one control hitting on one asset

Names the asset, policy, control and action

Both joins are many-to-many. A control can be in several policies; an asset can be covered by several policies. There is no precedence — everything that applies, applies, and when actions differ, Block wins.

What a policy record holds

Field

Type

Description

name

String

Shown in the list. Placeholder suggests naming for the obligation, not the mechanism.

description

String

"What this policy enforces and why." What a reviewer reads first.

enabled

Boolean

Active or Inactive. New policies start enabled.

standard

Boolean

Set by UnifyApps on shipped framework packs. Absent or false means custom.

controls

List

The controls this policy enforces. Backs the CONTROLS count.

appliedTo

Enum

The surface governed. Fixed for AI Governance.

Specific assets

List

Hand-picked agents and models. They stay covered until removed.

Asset rules

Filter

Rule-based targeting: an asset type (Agent or Model) plus conditions combined with AND / OR. Recalculated in the background.

The last two together back the APPLIES TO count.

Scope is set by the surface, not chosen

Policies are a shared object across UnifyApps, and the surface a policy is created from fixes what it targets. In AI Governance, policies target assets — agents and models.

This is why APPLIES TO counts assets here. The same policy object used elsewhere in the platform can target users instead. You do not choose this, and you cannot change it after creation.

What an incident carries

An incident is the join record, and it names every part of the chain that produced it.

Field

Description

INCIDENT

The offending content, truncated.

ASSET · ASSET TYPE

Which agent or model.

POLICY

Which policy delivered the control.

Control

Which control fired.

ACTION

What was done: Flag, Block or Mask.

SEVERITY

Graded by the control. Often blank.

Confidence

How sure the check is: Low, Medium, High.

SOURCE

Which point produced it.

USER

Whose interaction triggered it.

STATUS

Open, In progress, Resolved or False positive.

ASSIGNED TO

Who is triaging it.

DETECTED

When.

Because the incident names the policy and the control, tuning is a lookup rather than an investigation: the noisiest control is visible from the incident list.

Reading the chain backwards

Most real questions are answered by walking from an incident outward.

  1. "Why was this flagged?" — Incident → control. The control's check is the answer.

  2. "Why is this agent governed by that rule?" — Incident → policy → Applies to. Either it was hand-picked or it matches a rule.

  3. "Why did nothing get blocked?" — Incident → asset → connection tier. On Observe · Advisory, only Flag takes effect.

  4. "Why so many incidents?" — Group by control. One control usually dominates. See Tuning Policy Noise.

Known limitations

  1. No precedence between policies — Two policies covering one asset both apply. A stricter policy does not supersede a looser one — each evaluates its own controls, and if any control blocks, the request is blocked.

  2. Overlap duplicates incidents — Two policies checking the same thing raise two incidents for one event.

  3. Coverage is not enforcement — Whether an action executes is a property of the asset's connection, not the policy.

  4. Incidents are immutable records — Regrading a control or removing an asset does not rewrite incidents already raised.

FAQs

If I delete a control, what happens to its incidents?

They remain. An incident records what happened at the time.

Can a policy contain another policy?

No. Policies hold controls, not other policies.

Which object should I name carefully?

All of them, but controls most — a control's name appears on every incident it raises.