v1.9.0 — Runtime Configuration & Self-Hosted Stacks
· 2 min read
We're thrilled to announce v1.9.0, featuring runtime environment configuration for Docker deployments, self-hosted Supabase stack, and comprehensive whitelabel support!
New Features
Runtime Configuration
- Docker Runtime Environment — RUNTIME_* env override system for containerized deployments
- Client-Server URL Separation — Separate API URLs for browser and server-side calls
- Build-Time Branding — Logo and branding build args in Dockerfile for whitelabel support
Self-Hosted Infrastructure
- Self-Hosted Supabase Stack — Complete on-premise Supabase deployment with docker-compose
- Frappe Instance Provisioning — 5-stage automated provisioning pipeline
- CTMS Init Service — Dedicated Docker init containers for Frappe setup
Data Pipeline
- Docker Build Workflows — CI/CD for MCP Server and ODM API images
- DBT Lakehouse Pipeline — Draft workflow for automated data transformations
Tooling
- CTMS Staffing Planner — Web app with optimistic/pessimistic scenario planning
- Settings Tab — Currency toggle and rate adjustments for cost analysis
- Role Editing GUI — Visual interface for staffing role management
Enhancements
CTMS Platform
- Refactored Signup and User Management flows
- Generic entity count API endpoint (ADR-003 compliant)
- Supabase client using 100% runtime environment variables
- Script tag config injection for client-side services
DevOps
- Makefile targets for seed data management
- Master data seed script with 83 records
- 34 custom DocTypes with dependency-ordered creation
- Frappe role seed script with API gateway support
Documentation
- ADR-002: Client-server API URL separation
- Runtime configuration documentation
- Docker Compose profiles guide
- AWS EC2 deployment guide
Staffing Planner
- Enterprise Architect, UX/UI Designer, and Marketing roles
- Rate multipliers and exchange rate support
- Cost Breakdown by Department section
Bug Fixes
CTMS Platform
- Fixed Supabase URL priority (runtime over build-time)
- Fixed runtime config exposure for client-side calls
- Fixed apiClientUrl for browser-side API calls
Infrastructure
- Fixed cubestore causing Cube 'Continue wait' hang
- Fixed Cube/MCP/ODM URL overrides for EC2 production
- Fixed duplicate CORS headers in Caddy configuration
Documentation
- Fixed heading formatting across documentation
- Scrubbed all secrets from deployment guides
For complete documentation, visit our docs site.
