v2.1.0 — Deployment Automation & Patient Workflows
· 3 min read
v2.1.0 delivers a single-command deployment controller, patient appointment workflows, and structured API logging across the platform!
New Features
zynctl Bundle Controller
- Single-Command Deploy —
zynctl.shorchestrates the entire deployment lifecycle: pull, configure, start, provision, verify - GitHub Actions CI — Automated bundle build workflow packages
zynctl.sh, compose files, seed scripts, and config into a versioned tarball - seed-users Command — Provision 5 demo users via Supabase signup REST API
- Docker Hub Login — Automatic Docker Hub authentication to avoid pull rate limits
Patient Appointment Workflows
- Reschedule — Change date/time with reason tracking
- Cancel — Cancel with confirmation dialog and status update
- Appointment Module UI — Polished grid, filters, and action buttons
Structured API Logging
- Middleware-level JSON logging for all
/api/v1/*requests - Captures method, path, status, and response time
- KrakenD router access logging enabled for gateway-level observability
Demo Data & Branding
- seed-demo-data.sh — Self-contained script with patient seed containers for one-command demo setup
- Custom Branding — Volume-mount
/brandassets for whitelabel deployments without image rebuilds - Healthcare Settings — Step 7c initialises default Healthcare Settings during provisioning
Enhancements
CTMS Platform
- Renamed "Subjects" to "Patients" across all navigation and UI labels
- Calendar date picker: allow past dates for Sites (
expected_start_date,irb_approval_date) - Date formatting standardised to
YYYY-MM-DDfor Frappe API compatibility - Toast message corrections for user status changes
DevOps
zynctl.sh: env validation warns on default DB password, bundle includes frappe-setup scripts- Readiness loop (Step 6) waits for Frappe API before token extraction
- External
ctms-networkfor inter-service communication - Bundle includes
seed-demo-data.shand README
Documentation
- Recipes section: SSH keys, Hetzner VM setup, shell commands
- Seed-and-init guide with stage-by-stage breakdown
- Custom branding recipe
- Demo user seeding guide
- Bundle deployment guide with
zynctl.shcommand reference - Developer Guide sidebar (renamed from Architecture)
Bug Fixes
CTMS Platform
- Fixed Patient Encounter creation in user/subject signup flows
- Fixed
LaboratorySelectvariable declaration order (ReferenceError) - Fixed Docker-internal API URL leaking to browser-side code
- Fixed doctype API route ignoring
limit_page_lengthquery param - Fixed duplicate subject-study enrollment and null encounter on subject add
- Fixed
encounter-serviceto handle both API response shapes
Data Pipeline
- Removed DLT ghost columns from patient, drug_prescription, and patient_encounter staging models
- Fixed SSL verification for self-signed certs in data pipeline ingester
- Fixed
clinical_trialfield type (Select → Check) on Drug Prescription DocType
For complete release notes, visit our releases page.
