Skip to main content
POST
Error

Authorizations

Authorization
string
header
required

Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <token>, where <token> is one of:

  • a Bifrost management API key,
  • a dashboard session token issued by POST /api/session/login,
  • base64 of <admin-username>:<admin-password> (legacy equivalent of BasicAuth).

Virtual keys (sk-bf-*) and the x-api-key header are not accepted on management APIs - the sole exception is GET /api/governance/virtual-keys/quota, which is virtual-key-only.

Body

application/json

A notification to publish. IDs and both timestamps are assigned by the server and cannot be supplied.

audience
enum<string>
required

Who the notification reaches. all is every dashboard user; roles limits it to the listed RBAC roles, enforced on both the list endpoint and the WebSocket fan-out.

Available options:
all,
roles
severity
enum<string>
required

Visual weight the dashboard gives the notification.

Available options:
info,
success,
warning,
error
title
string
required

Trimmed before validation.

Required string length: 1 - 160
message
string
required

Trimmed before validation.

Required string length: 1 - 4000
role_ids
integer<int64>[]

Required when audience is roles, and must be empty otherwise. Duplicates are removed and the list is sorted before it is stored.

Required range: x >= 1
action_label
string

Label for the notification's action. Must be supplied together with action_path, or not at all.

action_path
string

Dashboard-internal absolute path the action opens, for example /workspace/providers. Absolute URLs, host-relative // paths, and anything not starting with / are rejected, so a notification cannot be used to send users off-site.

Pattern: ^/(?!/).*

Response

Notification published and broadcast

A persisted dashboard notification.

id
string<uuid>
required
audience
enum<string>
required

Who the notification reaches. all is every dashboard user; roles limits it to the listed RBAC roles, enforced on both the list endpoint and the WebSocket fan-out.

Available options:
all,
roles
severity
enum<string>
required

Visual weight the dashboard gives the notification.

Available options:
info,
success,
warning,
error
title
string
required
message
string
required
created_at
string<date-time>
required
expires_at
string<date-time>
required

Always 30 days after created_at. Expired rows are pruned hourly and are not returned once pruned.

role_ids
integer<int64>[]
action_label
string
action_path
string