Skip to main content

v2.2.0 — Observability, Data Quality & Developer Experience

· 3 min read

v2.2.0 adds Grafana sidecar integration, automated data quality reporting with Elementary, and a comprehensive frontend developer guide to the platform!

Release

v2.2.0

March 15, 2026

Observability, Data Quality & Developer Experience

← Back to Blog

New Features

Grafana Analytics Sidecar

Grafana (AGPL-3.0) runs as an optional sidecar — the platform ships provisioning config (datasources and dashboards) but does not bundle or redistribute the Grafana binary or Docker image. Operators pull the official Grafana image independently.

  • Pre-Configured Datasources — Provisioning YAML for Grafana datasources and dashboards shipped with the deployment config
  • Elementary Report Webserver — Data quality reports served alongside Grafana for unified observability

Data Quality with Elementary

Elementary (Apache-2.0) runs as a companion service for data observability. It is not packaged inside the platform distribution — operators install it independently via pip or Docker.

  • Daily Elementary Reports — dbt pipeline now always generates Elementary data quality reports, regardless of model changes
  • HIV Baseline Fix — Corrected result_of_cd4_count column mapping in the staging model

Frontend Developer Guide

  • Three-Page Architecture Guide — Parent page (UI standards, naming conventions, error handling) + two worked examples
  • UI Standards — Documented the standard page layout with ASCII wireframes: grid, sticky headers, pagination footer, slide-over forms, toast notifications
  • Naming Conventions — DocType → slug derivation rules with file naming map for every layer
  • Error Handling — Documented extractErrorMessage() pattern, KrakenD-wrapped Frappe errors, and error UI states

CI/CD Documentation

  • Build Pipelines — Documented all GitHub Actions workflows across repositories
  • Installer Bundle & Versioning — Bundle build, versioning scheme, and release process documentation

zynctl Operational Commands

  • post-snapshot — New command for post-VM-snapshot tasks (token refresh, Zynexa restart)
  • refresh-token — Dedicated command to regenerate the Frappe API token and restart dependent services
  • Consolidated Controller — Merged zynctl.v1.sh into single zynctl.sh (removed legacy script)

Enhancements

CTMS Platform

  • Practitioner creation: dynamic department dropdown loaded from Frappe + improved error handling
  • UI improvements: dashboard error states, patient name display, login/signup titles
  • Subject navigation reordering for better workflow

DevOps & Infrastructure

  • ODM container: DB_SSLMODE pass-through for SSL-enabled databases
  • Added data_analytics RBAC role for pipeline service accounts

Documentation

  • Deployment Verification recipe with copy-paste test commands
  • Frappe Token Refresh recipe with zynctl.sh refresh-token instructions
  • Post-snapshot recipe with accurate step table and cross-links
  • Platform runbook: GitHub Releases API section, administration sidebar reorder
  • Sidebar restructure: Developer Guide category replaces flat Architecture list

Bug Fixes

  • Fixed daily dbt pipeline to always generate Elementary companion reports
  • Fixed HIV baseline staging model (result_of_cd4_count column mapping)
  • Fixed ODM container DB_SSLMODE pass-through and data_analytics RBAC role
  • Fixed Grafana sidecar DuckDB datasource provisioning reference (removed non-existent plugin)
  • Fixed login/signup page titles and subject navigation ordering
  • Fixed practitioner creation error handling for missing departments

For complete release notes, visit our releases page.