github OpenC3/cosmos v7.0.0

8 days ago

OpenC3 COSMOS Core 7.0.0 - The Next Generation

Welcome to OpenC3 COSMOS Core 7.0.0!

We are thrilled to announce the official release of OpenC3 COSMOS 7! This milestone represents months of intensive development, building on the foundation of v6 to deliver a faster, more scalable, and more integrated platform for command and control.

⚠️ Critical Update Note

If you are updating from a 7.0.0 Release Candidate, a full TSDB cleanup is required as table names now include the SCOPE.

  • Action: Run openc3.sh cleanup (Note: This drops all logged data!!!).
  • Alternative: Manually delete the TSDB volume via docker volume rm xxx-tsdb-v.

🚀 Headline Feature: High-Performance TSDB (QuestDB)

The core of COSMOS 7 is a brand-new Time Series Database powered by QuestDB. This transition marks a significant leap forward:

  • Speed: Data retrieval is now an order of magnitude faster.
  • Simplicity: We have removed the reducer microservices and associated data overhead.
  • Accessibility: Explore your data directly with SQL via the new TSDB Admin tab or the QuestDB console.

⚖️ License Update

We have transitioned from the AGPL to the COSMOS Builder’s License.

  • Why? To ensure better compatibility with our upcoming App Store.
  • Note: This license maintains your existing development rights but explicitly prohibits providing COSMOS as a managed or hosted service.

🛑 Breaking Changes

  • S3 Backend Migration: Migrated from MINIO to versitygw.
  • Security: Support for plaintext passwords via the API has been removed.

🛠 New Behavior & Deprecations

  • All containers have read-only file systems. This improves security across our containers.
  • Unit Handling: The WITH_UNITS type has been removed. Existing with_units APIs (e.g., tlm_with_units) are now deprecated and will return the formatted value.
  • Target Files: get_target_file now returns None/nil if a file is not found.
  • Sparse Packets: Items outside buffer bounds in undersized packets now return nil/None instead of 0. This enables better support for sparsely populated packets.
  • New keywords CMD_DECOM_RETAIN_TIME and TLM_DECOM_RETAIN_TIME

🚧 Known Issues

  • INT and UINTs larger than 64 bits are currently unsupported. This will be fixed in the next release. A workaround (and probably better design) is to declare any values greater than 64 bits as BLOCK types.

Enhancements

  • Add docker containers now have read-only file systems
  • Add CONVERTED_DATA keyword for conversions
  • Add check_box Script Runner prmopt
  • Add open_bucket_dialog script API selecting bucket files
  • Enable LATEST in Data Extractor
  • Allow TlmViewer to clear transient errors
  • Detailed logs around Scope/Settings changes
  • Ability to hide Legend on Telemetry Grapher
  • Allow manually entered values for states on Command Sender
  • New OPENC3_ALLOW_HTTP env var to make it easier to allow http
  • Filter Limits Monitor items by state
  • UI theming support - check the Admin Settings to change COSMOS colors
  • New TEMPLATE_BASE64 keyword for binary templates in the config files
  • Queue interface packets by default with update at 0.1s
  • Add hover tooltip, context menu, and stale overlay to LIMITSCOLOR widget
  • App store API updates
  • Optimize command and telemetry decom performance in Ruby and Python
  • Add hint to admin console about setting k8s secrets
  • New API for scripts and screens to open a browser tab
  • Make Command Parameter list scrollable for Command Editor
  • Validate SCREEN params and make options dialogs consistent throughout
  • Bucket Explorer delete directory
  • Telemetry Grapher select graph button
  • Migrate Python package from Poetry to UV
  • Workflow to restart microservices for a plugin
  • Warn when packets are defined without ID_ITEMs
  • Add UUID to Script Runner temp files to prevent name collision
  • Update to Vite 7
  • Update to Rails 8
  • Switch from Redis to Valkey
  • Switch from Vuex to Pinia
  • Switch password hashing algorithm to argon2

Bug Fixes

  • Fix Python Interface Microservice accessing attributes
  • Fix Script Runner autocomplete when using LATEST
  • Fix Command Sender Mode -> Disable Parameter Conversion checkbox
  • Fix limits bar when displaying the value 0
  • Fix FORMATVALUE widget for 64-bit integer values
  • Fix Python Suite Runner to preserve add_script insertion order
  • Fix plugin downloads
  • Fix tools bucket routing in standalone EC2 deployment to S3 buckets
  • Fix Python TcpipSocketStream write look lockup
  • Fix interface disconnect loop when deleting packets from a plugin
  • Fix xtce_converter CLI crash
  • Fixes for STRUCTURE use
  • Fix TSDB with Python conversions
  • Fix Python custom microservices
  • Fix Python script syntax check and CheckError display
  • Fix screen overlay in Command Sender and clear transient screen errors in Telemetry Viewer
  • Fix secret unpacking in Python
  • Fix time picker to remove milliseconds
  • Fix Python JSON telemetry performance (10x increase in speed)
  • Fix Packet Viewer initial refresh
  • Fix Python http client to close the socket on disconnect
  • Fix recurring activities on Calendar (Enterprise)
  • Fix variable_bit_size command corruption. If a command has more than one VARIABLE_BIT_SIZE declaration it would not be created correctly.
  • Fix Script Runner mnemonic checker crashes and false positives
  • Fix Telemetry Viewer Textfield input bug in float mode
  • Fix Script Runner bug with no scrollbar in message dialogs
  • Fix Telemetry Grapher performance with large historical data
  • Fix zoom in Data Flow Diagrams
  • Fix wait_check blocking on user input when sleep_time is 0

What's Changed

Full Changelog: v6.10.4...v7.0.0

Don't miss a new cosmos release

NewReleases is sending notifications on new releases.