Skip to content

v5.19.0

Compare
Choose a tag to compare
@ryanmelt ryanmelt released this 02 Oct 20:21
· 877 commits to main since this release

OpenC3 COSMOS 5.19.0 - Command History and Validators (Enterprise)

Welcome to OpenC3 COSMOS 5.19.0!

This is an exciting release as we have a completely new tool for Enterprise Users - Command History! It provides a quick way to see what commands have been sent, by who, and if the commands were successful.

Associated is a new feature called Command Validators that is available for both Open Source and Enterprise Users. This feature allows us to know if the command was successful after its full lifecycle. Read more below.

Additionally we have grown to the point where security researchers are looking into COSMOS and creating CVEs. This release patches three CVEs that have been written against COSMOS. As always, we recommend updating to our latest version.

Affects Both Open Source and Enterprise Edition:

  • CVE-2024-46977 - Path traversal via screen controller ([GHSL-2024-127]) - Moderate

Only Affects Open Source Edition:

  • CVE-2024-43795 - Cross-site scripting in Login functionality (GHSL-2024-128) - High
  • CVE-2024-47529 - Clear text storage of password/token (GHSL-2024-129) - Moderate

Command History Tool (Enterprise)

A new tool for our Enterprise users provides a quick way to see what commands have been sent, by who, and if the commands were successful.

Command Validators

Commands validators are a new class that can be associated with individual commands. Inside the class are a pre_check and post_check method which can be used to reject commands before they are sent (pre_check), or verify if the command worked successfully (post_check).

Python Redis Cluster Support (Enterprise)

Python now supports infinite scaling with Redis Cluster in COSMOS Enterprise Edition.

New Runner Role (Enterprise)

We have a new default role called "runner" that allows a user to run scripts but not edit them. Great for production environments where users are only authorized to run prebuilt scripts.

New DataViewer Item Component

This provides an easy way to scale viewing an item (or multiple items) over time in DataViewer (rather than an entire packet).

Time Zone Setting

Our settings page now includes a time zone setting where you can choose whether you want every tool to use UTC time or the local time zone.

Potentially Breaking Changes

  • Our command line generators no longer default to ruby and now require --ruby or --python for each (or set the OPENC3_LANGUAGE environment variable)
  • Updated to use docker compose run instead of docker run for cli actions in openc3.sh/openc3.bat
  • The docker network is no longer hard coded in compose.yaml and is now auto set by Docker Compose
  • RECEIVED_COUNT now returns 0 instead of nil/None for packets that have never been received
  • Many more log messages are now JSON formatted
  • extra is now a required parameter for the Interface#write_interface and Protocol#write_data methods

Other Improvements

  • Added a ScriptRunner Line Delay Menu Option
  • More Consistent use of 401 and 403 errors
  • Python Stack Traces are now cleaner in ScriptRunner
  • Greatly improved File Open Performance with a large number of files
  • CmdTlmApi and ScriptRunner Rails logs are now JSON formatted
  • Added the ability to clear graph data in TlmGrapher
  • Bucket Explorer auto refreshes every minute

Other Bug Fixes

  • Fixed a python wait_check bug causing it to block forever
  • Improved escaping logic in TemplateAccessor
  • Lots of spelling errors fixed - our pipeline now checks for spelling errors! (Typically in comments)
  • Fixed a bug with the script open_file_dialog sometimes not working
  • Command Sender error messages could reference the wrong command
  • Fixed TlmViewer Spacer widget
  • Fixed a bug with mixing old variable sized items with new variable sized items
  • Fixed an issue with CmdTlmServer LogMessages not bringing up any history
  • Fixed python tcpip_server_interface

All Pull Requests in this Release

New Contributors

Prerequisites:
Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk
Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk
Also requires docker compose version 1.27+

To Run:

Please see our documentation at https://openc3.com

Try it out and let us know what you think! Please submit any issues as Github tickets, or any generic feedback to support@openc3.com.

Thanks!

Full Changelog: v5.18.0...v5.19.0