Platform

Platform overviewArchitectureWorkflow orchestrationGitOps configurationGovernance and AAAAI and MCPKnowledge and contextRuntime and executionEvidence and monitoring

Use cases

All use casesProduction incidentRelease preparationHotfix to productionSecurity scan triage
Why NopsAIIntegrationsSecurity

Resources

All resourcesAI agent governanceMCP governanceMCP securitySelf-hosted platforms
PricingGitHub

Company

How a run worksAboutContactBook a demo

Team dashboards

Team-owned dashboards fed by pipeline dashboard outputs, with publication history and scheduled refresh.

How-toOperatorAutomation authorAdministrator

Key points

  • A dashboard has sections; pipeline output items publish entries into a named section.
  • Publication modes are replace (default), append, snapshot, and series.
  • entry_key is what lets replace and series find the same entry across runs; it defaults to the output item name.
  • Source bindings connect a dashboard to the pipelines that feed it, which is what makes refresh possible.
  • Refreshes can be scheduled, run on demand, canceled, and retried for only the failed parts.
  • Creating a dashboard from the UI requires selecting at least one matching dashboard-output pipeline.

Before you start

Access
Dashboard write access in the owning team
A source of data
A pipeline that publishes a type: dashboard final output, or an existing dashboard to read

Steps

  1. 01

    Create the dashboard

    A dashboard is a named container with sections. Pipelines publish entries into those sections.

    Create a dashboardbash
    curl -sX POST "$NOPSAI_URL/v1/dashboards" \
      -H "Authorization: Bearer $NOPSAI_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"name":"service-health","team_path":"platform","sections":[{"key":"releases","title":"Releases"}]}'
    Replace before running
    • team_path decides ownership and who can see the dashboard.
    Verify
    • The dashboard is listed by GET /v1/dashboards.
  2. 02

    Publish into it from a pipeline

    The publication contract lives in the pipeline, not in the dashboard: a final output item of type: dashboard names the dashboard, section, and entry key.

    Dashboard final outputyaml
    output:
      items:
        - name: Release health
          type: dashboard
          when: success
          prompt: Publish the release health entry for this service.
          dashboard:
            ref: platform/service-health
            section: releases
            entry_key: payments
            mode: series
    Expected result
    • series accumulates one entry per run under the entry key; replace keeps only the latest.
  3. 03

    Check the publication history

    Publication history is where a missing tile is diagnosed: it records what was published, when, and by which run.

    Verify
    • The most recent run appears in the dashboard publication history.

How it works

GitOps applies dependency roots before dependents, so team-owned dashboards and notification routes resolve their team paths before pipeline dashboard outputs attach to dashboards created in the same sync.

Final-output rows for dashboard items can link directly to the configured dashboard and section when dashboard_target metadata is available.

ttl marks an entry stale after a duration, which is how a dashboard shows "this number is old" rather than quietly presenting outdated state as current.

Implementation evidence

  • doc/dashboards.md

    Dashboard model, publication, history, source bindings, and scheduled refresh.

  • services/nopsai/dashboard_schema.go

    Dashboard, section, and publication schema.