Release Notes - Version 2.1.0
Release Date: July 9, 2026
🎉 Highlights
Version 2.1.0 introduces workload-fit intelligence — a new capability that lets users and the platform preview how a prospective job maps to available queues before submission, including per-queue eligibility, resource availability, and cost estimates. Administrators gain a redesigned unified dashboard for tracking job activity across all clusters. The API backend is upgraded to Python 3.12 and the frontend receives an Angular security patch. An extensive type-safety refactoring effort covers most write paths in the UI, reducing the risk of payload mismatches. GPU metrics documentation and updated application guides complete the release.
🚀 New features
🔍 Workload-fit queue selector
Users submitting workloads can now see how their job maps to each available queue before committing to a submission. The new workload-fit API returns per-queue eligibility, free resource counts, cost estimates, and a consolidated status value. The UI consumes this endpoint in the queue selection step, displaying a wait-column indicator so users can choose the best queue at a glance. Limit enforcement was also tightened: reducing a queue's or cluster's limits now correctly re-evaluates and trims any team allocations that would exceed the new cap.
📊 Redesigned admin dashboard
The admin dashboard has been redesigned to present job charts from all clusters in a single unified view with consistent loading states across all panels. A new unified jobs dashboard API endpoint powers these charts, aggregating job data across clusters in a single call.
🔧 Improvements
- Python 3.12 upgrade — The API backend was upgraded from Python 3.10 to 3.12, aligning it with the latest supported runtime for improved performance and long-term security support.
- OpenAPI typed write DTOs — Write paths for applications, datasets, coupons, billing accounts, ACL teams, file uploads, user registration, and queue estimations were migrated to strongly typed OpenAPI-generated DTOs, reducing runtime errors and improving type safety throughout the UI.
- FormHelperService modernization — The form helper service was systematically refactored to remove reflective model mutations, extract reusable validation utilities, and add characterization tests, making form handling more predictable and maintainable.
- Exact team name filtering — Team name search now supports an exact-match mode alongside the contains filter, giving administrators finer control when looking up teams.
- Invitation refresh on Okta sign-up — Expired invitations are automatically refreshed when a user completes sign-up through Okta, removing a common onboarding blocker.
- Ansible-core 2.21.1 upgrade — Infrastructure automation dependencies were updated to fix Python 3.12 compatibility warnings and deprecation errors, and missing Ansible collections were added to
requirements.yml. - File download billing removed — The file download billing flow was removed after the corresponding API pricing endpoint was retired, simplifying the file management experience.
- Global stylesheet extraction — Material table-list styles were moved from the root stylesheet into dedicated SCSS partials, improving maintainability and reducing unintended style overrides.
🐛 Bug fixes
- Fixed application enabled toggle displaying the wrong state after a failed API update — the toggle now always reflects the server's confirmed state
- Fixed sending an empty categories array when clearing application categories on edit
- Fixed end-to-end provider team scenario not filling the maximum execution time field on the resources step, which masked submission regressions
- Fixed Kubernetes workloads being accepted with a storage size of zero or less — a validation rule now rejects such configurations
- Fixed team description and user email columns being too narrow to hold values from the Carbonara data source
🔒 Security
- Angular 20.3.25 — Frontend framework bumped to address CVE-2026-54267
- SonarQube blockers resolved — Prometheus group validator and CodeceptJS typing issues flagged as blockers were fixed
- SonarQube CI on develop — A SonarQube workflow now runs on every merge to the develop branch, generating coverage reports, JUnit output, and downloadable scan artifacts
Documentation updates
- GPU metrics guide — New documentation covering GPU metrics available in queue and cluster views
- Docker interactive app guide updated — The Docker interactive application example was updated to reflect automatic SSH installation, removing manual setup steps
- JupyterLab guide updated — Manual SSH setup instructions were removed from the JupyterLab application guide, aligning it with the current platform behaviour
← Back to What's New | Previous Release (v2.0.0) → | Next Release (v2.2.0) →