Skip to content

v2026.02

Choose a tag to compare

@andy-cshub andy-cshub released this 06 Feb 13:29
· 18 commits to master since this release
762acf7

馃殌 What's Changed

Frontend

Click to expand changelog
  • Migration to Nx monorepo and deprecation of polyrepo repositories
  • Migration to Angular 20 and standalone components
  • Offline support
    • Removed dependencies pulled from remote sources
    • Frontend retails functionality even on an isolated LAN network
  • Stricter error logging
  • Optimized dependencies
  • Security updates
  • Added skeleton loading screen
  • Reworked and improved split view for training levels with a topology
  • Topology can now be collapsed for better experience with text-heavy levels
  • Fixed topology covering up the answer field
  • Reworked file upload dialogue
  • Improved home screen visuals
  • Added client-side caching for endpoints serving mostly static data
  • Improved visuals of training run stepper
  • New topology component
    • Improved looks
    • Physics based
    • Switches replaced with VLANs
    • Optimized for large networks
    • Embedded view for Guacamole connections
    • Zoomable and draggable
    • Improved context menu
    • Guacamole now indicates its connection status
    • Indicators for OS and SSH/GUI guacamoles capability
    • Quick open connection with double-click
    • Quick switch console tabs with CTRL+ALT+LEFT/RIGHT
  • Pools changes
    • In sandboxes table, relevant row action buttons are now clickable only when the sandbox is available
    • In pools table, the current lock state is now signalled with an indicator
    • Fixed the pool comment component edit button wrapping to next row
    • Improved resource usage visualization component
    • Fixed the ability to navigate to stage outputs of a sandbox when the sandbox is being cleaned up, preventing 404 error
  • Dashboard changes
    • Completely reworked progress visualization
      • New appearance
      • Smoother updates
      • Improved trainee lag visualization
      • Improved hover tooltip verbosity
      • Better responsivity
      • New filter and sort options
      • Better zoom and drag controls
      • Trainee pinning to the top of the list
      • Filtering by level and by lag
      • Level highlight on level hover in stepper
    • New trainee selection in dashboard
    • Fixes in score line and clustering charts
  • Improved sandbox allocation detail
    • Stages organized into a carousel layout and fully reworked request detail component
    • Fixed issue with logs scrolling to top on each refresh
    • Logs now auto-scroll with new records when scrolled to the bottom and upon completion, the next stage is focused
    • If no specific stage is selected for navigation, the last running/failed log is automatically focused
    • Improved component for log text visualization
    • Improved log update logic to prevent request flooding of the backend when backend hangs and to poll only when running
    • Logs now fetch incrementally (see the Python backend section)
    • Added options for
      • Fullscreen
      • Line wrap
      • Copy contents
      • Search
  • Buttons now stay disabled while a request is processing to avoid accidental duplicated requests
  • Improved time related displays across tables
    • Added countdown table cell component for live time updates of time left in a training instance
    • Added a reactive date table cell component which displays time on top of date when hovered
  • Improved microservice error readability
  • Fixed MITRE service error
  • Guacamole connections now authenticate with OIDC
  • Added height restriction for text areas
  • Replaced Ansible icon with square alternative
  • Added frontend YAML configuration validation with comprehensible error messages in browser console
  • Removed code duplications and improved code abstraction
  • Various internal improvements for contributor experience and code type safety
  • Fixed infinite loading in command analysis visualization
  • Minor unnoticeable fixes

Java backend

Click to expand changelog
  • Dockerfiles refactoring, security issues fixes
  • Code quality checks are enabled during build
  • New custom microservice for handling Guacamole connections, supporting Guacamole 1.6.0
  • Fixed clustering endpoint error when processing a run with zero events

Python back-end

Click to expand changelog
  • Updated to Python 3.12
  • UV package system was implemented
  • Dockerfiles refactoring, security issues fixes
  • Security improvements
  • Code quality checks are enabled during build
  • Refactored API with drf_spectacular
  • skip ssl_verify option
  • Added endpoint for fetching node-specific connection details for Guacamole
  • Reworked topology endpoint and improved readability of the returned DTO
  • Reworked Ansible and Terraform outputs
    • Removed pagination
    • Logs are returned as preprocessed strings
    • Added support for incremental fetching via optional query param from_row, which accepts the rows value from the previous response
    • Added GZIP compression, allowing for ~12x faster loading of large log outputs

Infra

Click to expand changelog
  • Custom Keystone CA support
  • Sandbox definition flavor mapping fix
  • Custom proxy jump ssh port support
  • Switching from postgresql helm chart to postgresql Kubernetes operator
  • Upgrade to postgresql 17

Docs

Click to expand changelog
  • Refactored for using official swagger plugin
  • Automated docs updates for swagger API

馃檶 Thanks to all contributors in this release: