NotificationDefaults
The organisation's default browser push notifications: which events are pushed to a person who has not chosen for themselves. Fields, YAML, HCL and CLI samples, and how apply treats it.
The organisation’s default browser push notifications: which events are pushed to a person who has not chosen for themselves. A person’s own choices on the notifications page still win. One per tenant, named default. The document replaces the defaults whole, as the console’s tenant defaults form does. Deleting it removes the organisation’s defaults, so the catalogue defaults apply again.
apiVersion |
vulnetix.com/v1 |
kind |
NotificationDefaults |
| Group | Org |
| Status | Served. The config engine plans and applies it. |
| Objects per tenant | one (metadata.name: default) |
| Token and role | An owner or admin session, or a vmt_ config management token with the owner or admin role that lists NotificationDefaults in its kinds. See Management tokens. |
| Terraform resource | vulnetix_notification_defaults, imported by name (see Terraform and OpenTofu) |
| CLI | vulnetix config apply, CLI v3.168.0 and later. |
| Pinned schema | v1.15.0/NotificationDefaults.schema.json |
| Newest schema | latest/NotificationDefaults.schema.json |
| First released in | v1.5.0 |
| Print the built-in copy | vulnetix config schema NotificationDefaults |
Minimal
Only the fields the kind requires. From examples/NotificationDefaults/minimal.yaml.
YAML
# yaml-language-server: $schema=https://github.com/Vulnetix/config-schemas/releases/latest/download/NotificationDefaults.schema.json
apiVersion: vulnetix.com/v1
kind: NotificationDefaults
metadata:
name: default
spec:
push: {}
HCL (resource vulnetix_notification_defaults)
# Only the arguments the kind requires. From config-schemas examples/NotificationDefaults/minimal.yaml.
resource "vulnetix_notification_defaults" "default" {
push = {
}
}
CLI (applies it)
export VULNETIX_CONFIG_TOKEN=vmt_... # a config management token
vulnetix config apply -f - --manager gitops:acme/platform --auto-approve <<'EOF'
# yaml-language-server: $schema=https://github.com/Vulnetix/config-schemas/releases/latest/download/NotificationDefaults.schema.json
apiVersion: vulnetix.com/v1
kind: NotificationDefaults
metadata:
name: default
spec:
push: {}
EOF
Advanced
Every field the kind supports, with a when expression where it takes one. From examples/NotificationDefaults/advanced.yaml.
YAML
# yaml-language-server: $schema=https://github.com/Vulnetix/config-schemas/releases/latest/download/NotificationDefaults.schema.json
apiVersion: vulnetix.com/v1
kind: NotificationDefaults
metadata:
name: default
annotations:
ticket: https://tracker.example.com/OPS-77
spec:
push:
"*": false
tier:needs_you: true
tier:error: true
factory.run.*: true
factory.run.succeeded: false
HCL (resource vulnetix_notification_defaults)
# Every argument the kind supports. From config-schemas examples/NotificationDefaults/advanced.yaml.
resource "vulnetix_notification_defaults" "default" {
push = {
"*" = false
"factory.run.*" = true
"factory.run.succeeded" = false
"tier:error" = true
"tier:needs_you" = true
}
annotations = {
ticket = "https://tracker.example.com/OPS-77"
}
}
CLI (applies it)
export VULNETIX_CONFIG_TOKEN=vmt_... # a config management token
vulnetix config apply -f - --manager gitops:acme/platform --auto-approve <<'EOF'
# yaml-language-server: $schema=https://github.com/Vulnetix/config-schemas/releases/latest/download/NotificationDefaults.schema.json
apiVersion: vulnetix.com/v1
kind: NotificationDefaults
metadata:
name: default
annotations:
ticket: https://tracker.example.com/OPS-77
spec:
push:
"*": false
tier:needs_you: true
tier:error: true
factory.run.*: true
factory.run.succeeded: false
EOF
Fields
Paths use dots for nesting and [] for the items of a list. Required means required whenever the parent object is present. A default is what the server uses when the field is left out.
| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
apiVersion |
string | yes | exactly vulnetix.com/v1 |
The document format version. Every kind in this release is vulnetix.com/v1. | |
kind |
string | yes | exactly NotificationDefaults |
Always NotificationDefaults. | |
metadata |
object | yes | no other keys | Metadata for a kind the tenant has exactly one of. The name is fixed to default. | |
metadata.name |
string | yes | exactly default; pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ |
The object’s name, unique per kind within a tenant. It is the natural key: plan, apply, export and the Terraform provider all address an object by kind and name. | |
metadata.org |
string | no | format uuid |
The tenant (organization UUID) the document belongs to. When set, plan and apply refuse to run against any other tenant. | |
metadata.labels |
object | no | map of string to string (length 0 to 256); keys match ^[a-z0-9]([a-z0-9._/-]{0,61}[a-z0-9])?$ |
Free key/value labels. Stored with the object, never interpreted by the server. | |
metadata.annotations |
object | no | map of string to string (length 0 to 4096) | Free key/value notes for people and tools, such as a ticket link. | |
spec |
object | yes | no other keys | ||
spec.push |
object | yes | 0 to 500 keys; map of string to boolean; keys match ^(\*|tier:(needs_you|error|warning|info)|[a-z0-9_]+(\.[a-z0-9_]+)*(\.\*)?)$ |
Whether each event is pushed, keyed by an event type (factory.run.failed), a family (factory.run.*, or * for every event) or a tier (tier:needs_you, tier:error, tier:warning, tier:info). The most specific key wins: a type over its families, and a family over *. An empty object sets no defaults of the organisation’s own. |
Applying this kind
- Command.
vulnetix config apply -f <file>; the CLI line above says from which release. Plan first withvulnetix config plan: it shows each object as create, update, delete or no change, with aplanHashthat apply then holds to. Apply writes in one transaction. - Manager. Each object records the manager that applied it (
terraform,consoleorgitops:<repo>).--prunedeletes only objects its own manager owns. See The manager and the config engine. - Status. Applied, Unchanged or Deleted, with no other status fields. The phases the engine reports are explained under status phases.
- Singleton. There is one per tenant, and its name is always
default.
How apply treats it
- A singleton that replaces: written through the same function as the tenant defaults form, so each change is a factory setting event and an audit entry. Validated like the form.
- Delete removes the setting, so the catalogue defaults apply.
- It does not include the
notify.eventspreset, which is aFactorySettingsfield.FactorySettingsmust not also managenotify.push.defaults, or the two kinds would fight over it.
Terraform and OpenTofu
The resource is vulnetix_notification_defaults in the vulnetix/resolve provider. Its arguments are the spec in snake case, beside name, labels and annotations from metadata. The Minimal and Advanced HCL are above. The provider’s own reference is vulnetix_notification_defaults.
Import an object that already exists by its name (default):
# Import an existing NotificationDefaults by its name (metadata.name).
terraform import vulnetix_notification_defaults.default default
Install, authentication and how state is read: Terraform and OpenTofu.
Check a file with vulnetix config validate -f <file>. See Validate documents. In an editor, start the file with the schema comment.