At a glance
Why OpenFGA
Grafana needed an engine that did two things competitors did not bundle:- Authorization evaluation — like an OPA-style policy engine.
- A storage layer for permissions — a tuple store with a per-tenant schema.
Architecture and scale
OpenFGA runs in three Grafana environments:- Development and staging — already serving internal production workloads.
- External production — deployed to a single cluster in a pre-production capacity, shadowing real traffic to validate consistency and performance before broader rollout.
Upstream investment
- Grafana maintains the SQLite adapter, which was contributed back to OpenFGA so it can ship with embedded Grafana.
- Future areas of contribution include pluggable storage (so non-core storage adapters work without rebuilding OpenFGA) and observability improvements.
- KubeCon EU 2025 talk: From Chaos To Control: Migrating Access Control by Jo Guerreiro and Poovamraj Thanganadar Thiagarajan.
Outcomes
- One authorization platform spans Grafana Cloud (multi-tenant SaaS) and Grafana OSS (embedded), removing the need to maintain separate engines.
- Schema-driven iteration replaced engine-tuning work the team used to do manually.
- The team is targeting list-users to enable reverse permission search — showing all users who can access a given resource — a capability the legacy engine never had.
Source
This case study is based on the public CNCF TOC adopter interview with Joao Guerreiro, Senior Engineering Manager at Grafana Labs, available in thecncf/toc repository.