Skip to main content

ADR 008: Select Dashboard Tool

Date: 2025-09-10

Status: Accepted

Decision Makers: @JulianSobott

Context

We need a tool to create dashboards and present them to the public and stakeholders. In civitas v1, Superset was used for this.

Checked Architecture Principles

  • [partial] Model-centric data flow – Superset supports configuration-as-code through its REST API and CLI tools, but dashboard definitions and data source configurations may require additional tooling to be fully model-driven.
  • [full] Distributed architecture with unified user experience – Operates as a decoupled service while providing a centralized web interface for dashboard access and can be embedded or themed to match platform UI.
  • [partial] Modular design – Serves the specific function of data visualization and dashboards, and can be replaced by other BI tools (Grafana, Metabase) without affecting platform core. Dashboard rebuilds and Superset-specific metadata make replacement non-trivial.
  • [full] Integration capability through defined interfaces – Provides REST API for programmatic access, supports OIDC, and supports multiple database connectors.
  • [full] Open source as the default – Apache Superset is fully open source with an active Apache Foundation community.
  • [full] Cloud-native architecture – Official Docker images available, designed for horizontal scaling, supports Redis for caching, and runs well on Kubernetes.
  • [full] Prefer standard solutions over custom development – Established Apache project with proven track record in enterprise environments.
  • [full] Self-contained deployment – Can run entirely within your Kubernetes cluster with its own metadata database and caching layer.
  • [full] Technological consistency to ensure maintainability
  • [none] Multi-tenancy – Supports row-level security and role-based access, but true multi-tenant isolation is not supported
  • [full] Security by design – Integrates with OAuth/OIDC providers like Keycloak and supports RBAC. By default, nothing is publicly visible, and access must be explicitly granted to users. Nevertheless, careful maintenance of roles and rights is required to prevent data leakage.

Decision

Superset should be used as a Dashboard tool. It worked very well in v1, is well maintained, and satisfies most of our required features.

Consequences

We must find a solution to support multi-tenancy.

Alternatives

  • Grafana: Better suited for devs and exploring data, than for presenting data to the public
  • Metabase: simpler to use, but less powerful
  • Helical Insight: Supports Multi-tenancy, but is not cloud native and looks very outdated

See also