Notification mandate
Included from Basic tierpacks:security-governance
A notification mandate is an organisation-mandated subscription: an
administrator attaches a subscription shape (scope, object kinds, event
kinds, state predicates, severity floor) to a group, and every member
receives it as a subscription they cannot delete, mute, snooze or disable
— their surfaces cite it as "mandated by" its name. Writing mandates is an
admin verb gated by the packs:security-governance entitlement; deleting
one keeps the delivery evidence it already produced. Served by the v2
NotificationAdminService (ListNotificationMandates,
CreateNotificationMandate, UpdateNotificationMandate,
DeleteNotificationMandate).
NotificationMandate
NotificationMandate is one mandated subscription as the admin surface reads and writes it.
| Field | Type | Meaning |
|---|---|---|
created_at | timestamp | When the record was created. |
enabled | boolean | Whether the record is enabled. |
event_kinds | array of string | Event-type conditions: exact event types (e.g. "api:steps:error"), or a trailing ':' matching as a prefix (e.g. "warn:licence:"); empty covers every event kind. |
group_name | string | The group whose members the mandate covers. Membership resolves through the LDAP directory mirror (the approver-group posture). |
id | string | The record's identity. |
name | string | The mandate's name, unique instance-wide — what member surfaces cite as "mandated by". |
object_kinds | array of string | The object kinds the subscription covers; empty covers every kind in its domain (estate: change, workflow_run, step, approval, …; platform: runner, agent, licence, …). |
scope_domain | string | The scope domain: estate or platform. |
scope_path | string | The estate scope selector in the authz-rule path grammar; "" is root. Ignored for the platform domain. |
severity_floor | string | The severity floor: info, warn or error (defaults to info when never set). |
state_predicates | array of string | State-predicate conditions: started, succeeded, failed, cancelled, waiting_on_gate; empty covers every state. |
updated_at | timestamp | When the record was last updated. |
MandatedNotificationSubscription
MandatedNotificationSubscription is one org-mandated subscription: a subscription shape policy attaches to a group whose members cannot delete, mute, snooze or disable it.
| Field | Type | Meaning |
|---|---|---|
created_at | timestamp | When the record was created. |
enabled | boolean | Whether the record is enabled. |
event_kinds | array of string | Event-type conditions: exact event types (e.g. "api:steps:error"), or a trailing ':' matching as a prefix (e.g. "warn:licence:"); empty covers every event kind. |
group_name | string | The group whose members the mandate covers. |
id | string | The record's identity. |
name | string | The mandate's name, unique instance-wide — what the feed and settings surfaces cite as "mandated by". |
object_kinds | array of string | The object kinds the subscription covers; empty covers every kind in its domain (estate: change, workflow_run, step, approval, …; platform: runner, agent, licence, …). |
scope_domain | string | The scope domain: estate or platform. |
scope_path | string | The estate scope selector in the authz-rule path grammar; "" is root. Ignored for the platform domain. |
severity_floor | string | The severity floor: info, warn or error (defaults to info when never set). |
state_predicates | array of string | State-predicate conditions: started, succeeded, failed, cancelled, waiting_on_gate; empty covers every state. |
updated_at | timestamp | When the record was last updated. |
NotificationAttributePredicate
NotificationAttributePredicate narrows a subscription to events whose named attribute matches a glob pattern. field names the event attribute — action_path is the only accepted field this wave; an unknown field is refused. pattern uses the scope-segment glob grammar ('', '?', '[...]' classes) matched against the attribute's FULL string value, so '' crosses the ':' separators of an action path — 'start' covers 'web:start:run'. An event that carries no value for the attribute never matches a subscription holding a predicate on it: predicates only ever narrow.
| Field | Type | Meaning |
|---|---|---|
field | string | The event attribute the predicate reads; action_path is the only accepted field today — an unknown field refuses. |
pattern | string | The glob matched against the attribute's full string value ('', '?', '[...]' classes; '' crosses ':' separators). |
NotificationAttributePredicateList
NotificationAttributePredicateList wraps the predicate list so an update can tell "replace with this list" (supplied, possibly empty) from "preserve" (absent).
| Field | Type | Meaning |
|---|---|---|
values | array of NotificationAttributePredicate | The replacing predicate list; an empty supplied list clears the stored predicates. |
Related pages
opschain docs notifications— the component page: the engine, subscriptions and mandates.opschain docs resources/notification— the feed rows a mandate produces.opschain docs resources/notification_delivery— the delivery evidence mandates leave behind.opschain docs resources/group— the covered group.