Powerpacks

Embed
Preview of the card
<a href="https://watchtowerops.net/docs/powerpacks"><img src="https://watchtowerops.net/docs/_api/public/orgs/aa5959cb-1a0b-4a9a-bc9a-913e7ac31cd9/spaces/b7aac181-9916-4805-b253-becc5fd2ca62/pages/30d7b54f-5efb-499a-80c9-fe607ab16ce0/social-card.svg?v=3e7ae33eec8b" alt="Powerpacks" width="600" height="315"></a>

A powerpack is a reusable group of dashboard panels with template variables, saved per organization. Insert it into any dashboard of any project of the organization.

Variables

A powerpack declares up to 20 variables (name, optional label and default). Its panels (up to 50) use them as $name or ${name} anywhere in their strings: queries, titles, links. On insert, each variable gets a value; a value can itself be a dashboard variable ($service), so the inserted panels follow the dashboard's own controls.

Linked or detached

  • Linked (default): every inserted panel keeps a powerpack reference (id, instance, panel, values, optional version). When the powerpack is saved again, the dashboard shows the new panels: changed panels update, removed ones disappear, new ones appear below the group. Pin a version to stop following updates. Layout (grid position) stays the dashboard's.

  • Detached: the panels are copied with the values filled in and no reference.

Linked panels are resolved when the dashboard is viewed, printed or shared publicly (public dashboards resolve only pinned versions). GET /powerpacks/{id}/connections lists the dashboards of the project that use a powerpack and counts those in the whole organization. A powerpack that dashboards still link to cannot be deleted (409); detach or remove those panels first.

Shipped powerpacks

Read-only packs with ids builtin:<name>: service, postgres, redis, kafka, nginx, jvm, nodejs, go, kubernetes, host, aws. Each has a service (or similar) variable. Copy one to make an editable pack.

API

Route

Access

GET/POST /v1/projects/{prj}/powerpacks (q, tag, cursor)

read / edit dashboards

GET /powerpacks/shipped

read

GET/PUT/DELETE /powerpacks/{id} (?version=; PUT takes expected_version, 409 on a newer save)

read / edit

GET /powerpacks/{id}/versions, GET /powerpacks/{id}/connections

read

POST /v1/projects/{prj}/dashboards/{dash}/powerpacks (If-Match)

edit dashboards

The insert body is {powerpack_id, version?, values, linked, pin, y?, section?}; it saves a new dashboard version.

Updated