Integrations
A landing page that lists every external system the appliance can talk to. Each integration appears as a card with its current status and a link to the integration’s own management page.
The Integrations panel exists so that there is exactly one place to discover what the appliance can plug into — instead of new menu entries appearing whenever an integration is added. Today the page lists one entry: Prometheus. Future integrations will join the same grid without changing the sidebar layout.
This page is admin-leaning. Each integration is “admin-issued and revocable” — meaning an operator with administrator role can hand out, rotate, or revoke whatever credential the integration needs. Viewers and operators can read this page, but creating credentials and toggling the underlying feature flag is restricted.
When to Use This Page
Section titled “When to Use This Page”| Goal | Where to go |
|---|---|
| See which integrations the appliance offers | This page |
| Configure a specific integration’s tokens or settings | The integration’s own page (linked from its card) |
| Enable or disable an integration entirely | config.yaml (system-wide), then restart |
The Integrations panel is a directory, not an editor. The work of issuing tokens, testing connections, and rotating credentials happens on each integration’s dedicated page.
Page Layout
Section titled “Page Layout”+-----------------------------------------------------------+| Integrations || External systems that talk to this appliance. Each || integration is admin-issued and revocable. Disabled || entries are gated by a backend flag in config.yaml. |+-----------------------------------------------------------+| +------------------+ +------------------+ || | Prometheus | | (future) | || | [Enabled] | | | || | Long-lived ... | | | || | Manage tokens > | | | || +------------------+ +------------------+ |+-----------------------------------------------------------+Cards lay out in a grid: one column on phones, two on a normal screen, three on a wide display. Each card is self-contained.
Anatomy of an Integration Card
Section titled “Anatomy of an Integration Card”Every card carries the same fields.
| Field | Description |
|---|---|
| Icon | A small lucide-style icon hinting at the integration type (a key for credential-driven services like Prometheus, a plug for general integrations). |
| Name | The display name of the integration. |
| Status badge | Top-right of the card. Enabled with a green check mark, or Disabled with a grey strike-through circle. |
| Description | One or two short sentences explaining what the integration does. |
| Disabled hint | When the integration is disabled, a small line below the description tells you what to flip to enable it (typically a config.yaml setting). Hidden when enabled. |
| Manage link | A bottom-of-card link that takes you to the integration’s own page. The link is dimmed and not clickable when the integration is disabled. |
The status badge is read directly from the appliance’s runtime integration status; if you toggle the integration in config.yaml and restart the appliance, the badge will update accordingly on the next page load.
Available Integrations
Section titled “Available Integrations”Prometheus
Section titled “Prometheus”Status today: available.
- Card icon — a key.
- What it does — Provides long-lived bearer tokens that authorize a Prometheus scraper to pull platform-health metrics from the appliance’s metrics endpoint.
- When enabled — The card status is
Enabled. Clicking Manage tokens opens the Prometheus Integration (chapter 40) page where you mint tokens, label them, name a scope, and revoke them. - When disabled — The card shows
Disabledand notes that the administrator should setprometheus.enabled: trueinconfig.yamland restart the appliance. The Manage tokens link is greyed out until then.
The card does not give you anything you cannot reach on the dedicated Prometheus page; it exists so that a new admin opening the GUI for the first time can discover the integration without prior knowledge.
For configuration, token format, scrape URL, sample Prometheus job, and security considerations, see Prometheus Integration (chapter 40).
How New Integrations Will Be Added
Section titled “How New Integrations Will Be Added”The page is designed so new integrations show up by adding a row, not by adding a new sidebar entry.
A future integration appears here as soon as the appliance ships with it. You will see a new card with the same anatomy: icon, name, description, enabled/disabled badge, manage link. The sidebar does not need a new entry — operators discover and manage every integration from this single panel.
Examples of integrations that are good candidates for this pattern (none are committed product roadmap items):
- A Slack/Mattermost outbound channel for alarms.
- An SNMP/NetFlow exporter.
- A SIEM ingestion connector.
- An LDAP user directory.
Each would have its own dedicated management page (for credentials, mapping, test connection). The Integrations panel would be the unified launchpad.
Note. Notification routing (where alarms go) is handled separately on the Notifications page. The Vector channel there is a delivery pipeline, not an integration card; it does not appear on the Integrations panel.
Enabling and Disabling an Integration
Section titled “Enabling and Disabling an Integration”Integrations are gated by config.yaml at the system level. The GUI does not let you flip them on or off at runtime.
The reason is operational safety. Most integrations open a credential surface (tokens, secrets, network listeners). Adding or removing them should be a deliberate config.yaml change followed by a restart, captured in the configuration management workflow rather than buried in a per-user GUI click.
To enable an integration that is shown as Disabled:
- Edit
config.yamlon the appliance. - Find the integration’s section (for Prometheus, this is
prometheus:). - Set
enabled: true. - Restart the appliance service.
- Reload the Integrations page in the browser — the badge will switch to
Enabledand the Manage link will become live.
To disable an integration:
- First, revoke any tokens or credentials issued under that integration (use its dedicated page; for Prometheus, that is chapter 40).
- Set
enabled: falseinconfig.yaml. - Restart the appliance.
The GUI does not delete saved configuration on the disabled side — re-enabling the integration in config.yaml brings the integration’s data back as it was.
Permissions
Section titled “Permissions”Viewing the Integrations panel is open to any signed-in user. Acting on individual integrations is gated by role.
| Role | What you can do on this page |
|---|---|
| Admin | Read the card. Click into the integration to issue, rotate, and revoke credentials. |
| Operator | Read the card. Permission to manage tokens depends on the integration’s own page — typically restricted to admin. |
| Viewer | Read the card only. |
For the broader role model, see User Management (chapter 27).
Troubleshooting
Section titled “Troubleshooting”Card shows “Enabled” but the Manage link does nothing. Refresh the page. If still broken, the integration’s dedicated page may have a separate error — for Prometheus, open Prometheus Integration (chapter 40) directly to see the underlying state.
Card stays “Disabled” after I set
enabled: trueinconfig.yaml. The integration status reads from the running appliance’s loaded configuration. Aconfig.yamlchange is only picked up on restart for theenabledflag. Restart the service and reload the page.
I cannot see this page at all. The page is open to all signed-in users in the default GUI. If it is missing from your sidebar, the appliance is running with the page route disabled — speak to whoever administers the appliance.
Related Pages
Section titled “Related Pages”- Prometheus Integration (chapter 40) — the dedicated page for the Prometheus integration card; covers tokens, scrape URL, sample scrape config, and security.
- User Management (chapter 27) — the role model that determines who can issue and revoke integration credentials.
- Notifications — alarm routing and the Vector delivery channel, which is separate from the Integrations panel.