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!
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_countcolumn 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.shinto singlezynctl.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_SSLMODEpass-through for SSL-enabled databases - Added
data_analyticsRBAC role for pipeline service accounts
Documentation
- Deployment Verification recipe with copy-paste test commands
- Frappe Token Refresh recipe with
zynctl.sh refresh-tokeninstructions - 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_countcolumn mapping) - Fixed ODM container
DB_SSLMODEpass-through anddata_analyticsRBAC 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.
