PolicyConfigExceptions
components/policy-config/Exceptions.vue
The shared Exceptions section — c65's replacement for enforcement-mode cascades: scoped, reasoned, expiring carve-outs (scope/value/reason/expires) with an add row. Fully controlled: emits @add(exception) / @remove(index); parent owns the array. PolicyConfigShell embeds it on every policy.
Exceptions
Scoped carve-outs with a reason and an expiry — accepted risk, on the record.
| Scope | Value | Reason | Expires | |
|---|---|---|---|---|
| host | lab-03.qpoint.dev | Air-gapped research machine — no tap possible | 2026-09-30 | |
| agent | nightly-etl | Unattended batch pipeline — reviewed 2026-07-02 | 2026-12-31 | |
Empty — policy applies everywhere
Exceptions
Scoped carve-outs with a reason and an expiry — accepted risk, on the record.
| Scope | Value | Reason | Expires | |
|---|---|---|---|---|
| No exceptions — the policy applies everywhere. | ||||
components/policy-config/Exceptions.vue
Usage
<PolicyConfigExceptions
:items = "[]"
:scopes = "[agent,host,user,destination,adapter]"
/>
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| items | Array | [] | { scope, value, reason, expires } |
| scopes | Array | ['agent','host','user','destination','adapter'] | Scope vocabulary for the add row |
Events
| Event | Description |
|---|---|
| add | Add clicked → { scope, value, reason, expires } |
| remove | ✕ clicked → index |