{"id":"697f90ef5da5cdf4cf093a42","title":"2026 02 01","path":"how-to/committee/release-notes/2026-02-01","contentMarkdown":"# 01-Feb-2026 — Environment-setup — further  features [#146](https://github.com/nbarrett/ngx-ramblers/issues/146)\n\n## [build 454](https://github.com/nbarrett/ngx-ramblers/actions/runs/21567194325) — [commit 8660a24](https://github.com/nbarrett/ngx-ramblers/commit/8660a2400d2d0a6ddc5cc6dbfcd5acdb532a7064)\n\n_____\n\n### Comprehensive environment management overhaul with API and MongoDB migration\n\nIntroduces new environment configuration API, MongoDB cluster-based config, and enhanced UI with vendor branding and dashboard links.\n\n#### New Environment Configuration API\n- RESTful endpoints for reading and writing environment configurations\n- `EnvironmentConfigService` for centralised config management\n- Separation of concerns: environment config extracted from backup/restore\n- Config initialisation from files with validation and error handling\n#### MongoDB Configuration Migration\n- Migrate from `uri` field to `cluster` field in MongoDB configuration\n- Cluster field stores cluster name without .mongodb.net suffix\n- Database migration script (20260201000000) converts existing records\n- Backward compatible: handles both legacy URI and new cluster formats\n- Improved regex parsing for cluster extraction from URIs\n#### Enhanced Environment Setup UI:\n- Vendor logos in all configuration section headings\n- Ramblers logo dynamically loaded from System Settings\n- AWS, MongoDB, and Fly.io static brand logos\n- External link buttons for quick dashboard access:\n- AWS S3 Console (global and per-environment bucket views)\n- MongoDB Atlas dashboard\n- Fly.io app-specific dashboard\n- Deployed application URL\n- Environment list alphabetically sorted by name\n- Improved visual spacing and button styling consistency\n\n#### Backend Architecture Improvements:\n- New `environments-config.ts` module for config operations\n- Enhanced `config-initializer` with cluster field population\n- Updated backup/restore service to use new config service\n- CLI tools migrated to cluster-based MongoDB configuration\n- Fly.toml path resolution fixed for compiled environments\n\n#### Technical Implementation\n- New `EnvironmentConfig` and `EnvironmentsConfig` models\n- Integration with SystemConfigService for dynamic Ramblers logo\n- Custom `.btn-outline-flyio` styling for brand consistency\n- Shared `sortBy()` utility for environment sorting\n- Type-safe API routes with proper error handling\n\n","contentHtml":"<h1>01-Feb-2026 — Environment-setup — further  features <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/146\">#146</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/21567194325\">build 454</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/8660a2400d2d0a6ddc5cc6dbfcd5acdb532a7064\">commit 8660a24</a></h2>\n<hr>\n<h3>Comprehensive environment management overhaul with API and MongoDB migration</h3>\n<p>Introduces new environment configuration API, MongoDB cluster-based config, and enhanced UI with vendor branding and dashboard links.</p>\n<h4>New Environment Configuration API</h4>\n<ul>\n<li>RESTful endpoints for reading and writing environment configurations</li>\n<li><code>EnvironmentConfigService</code> for centralised config management</li>\n<li>Separation of concerns: environment config extracted from backup/restore</li>\n<li>Config initialisation from files with validation and error handling</li>\n</ul>\n<h4>MongoDB Configuration Migration</h4>\n<ul>\n<li>Migrate from <code>uri</code> field to <code>cluster</code> field in MongoDB configuration</li>\n<li>Cluster field stores cluster name without .mongodb.net suffix</li>\n<li>Database migration script (20260201000000) converts existing records</li>\n<li>Backward compatible: handles both legacy URI and new cluster formats</li>\n<li>Improved regex parsing for cluster extraction from URIs</li>\n</ul>\n<h4>Enhanced Environment Setup UI:</h4>\n<ul>\n<li>Vendor logos in all configuration section headings</li>\n<li>Ramblers logo dynamically loaded from System Settings</li>\n<li>AWS, MongoDB, and Fly.io static brand logos</li>\n<li>External link buttons for quick dashboard access:</li>\n<li>AWS S3 Console (global and per-environment bucket views)</li>\n<li>MongoDB Atlas dashboard</li>\n<li>Fly.io app-specific dashboard</li>\n<li>Deployed application URL</li>\n<li>Environment list alphabetically sorted by name</li>\n<li>Improved visual spacing and button styling consistency</li>\n</ul>\n<h4>Backend Architecture Improvements:</h4>\n<ul>\n<li>New <code>environments-config.ts</code> module for config operations</li>\n<li>Enhanced <code>config-initializer</code> with cluster field population</li>\n<li>Updated backup/restore service to use new config service</li>\n<li>CLI tools migrated to cluster-based MongoDB configuration</li>\n<li>Fly.toml path resolution fixed for compiled environments</li>\n</ul>\n<h4>Technical Implementation</h4>\n<ul>\n<li>New <code>EnvironmentConfig</code> and <code>EnvironmentsConfig</code> models</li>\n<li>Integration with SystemConfigService for dynamic Ramblers logo</li>\n<li>Custom <code>.btn-outline-flyio</code> styling for brand consistency</li>\n<li>Shared <code>sortBy()</code> utility for environment sorting</li>\n<li>Type-safe API routes with proper error handling</li>\n</ul>\n"}