Skip to content

Releases: OpenC3/cosmos

v6.7.0

05 Aug 02:56
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.7.0 - App Store & Screen Playback

Welcome to OpenC3 COSMOS Core 6.7.0!

We've launched several big features including integration with our new App Store! The Admin Plugins tab now has the ability to browse plugins directly in the App Store. The App Store will be adding features and plugins over the next few months as we build out this exciting new capability.

Telemetry Viewer now has the ability to playback stored telemetry to screens. This is enabled by a new container called openc3-tsdb (Time Series Database) powered by QuestDB. For now you have to manually enable this in our compose.yaml and .env files as it will cause data duplication into the database. We're very excited about the possibilities provided by this database and it will be a key piece of the future COSMOS 7.0.0 architecture.

We added a new Context Tag to the top right of the navigation bar. This will be configurable like the classification bar or the sub-title.

The CLI now has options to run Test Runner suites, groups, or scripts. This will make it much easier to execute your Test Runner scripts in a CI/CD pipeline.

Telemetry Grapher now has the ability to set a different value for the x axis. PACKET_TIMESECONDS is still the default but you can select RECEIVED_TIMESECONDS or anything else numeric and the graph will adjust accordingly.

Configuration Changes

The fix for traefik routing for items with periods requires updating your traefik config files. Follow the new upgrade process to make applying these changes easy.

Enhancements

  • New documentation for interface options, generic conversions, command validation, critical commanding, command authority, protocols, troubleshooting, and upgrading
  • Updated documentation to differentiate Ruby vs Python examples
  • Allow hex strings for array sizes, states, bit offsets, and bit sizes
  • Differentiate RAW widget settings so multiple RAW settings can be used

Bug Fixes

  • Cleanly shutdown packet logs
  • Fix python fixed size calculation to avoid log errors
  • Fix file handling for cli load
  • Fix variable bit size array items
  • Fix Classification-Banner and Snackbar relationship
  • Fix traefik routing for items with periods in the name

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.6.0...v6.7.0

v6.6.0

08 Jul 19:16
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.6.0 - Command Obfuscation

Welcome to OpenC3 COSMOS Core 6.6.0!

We have added a new keyword OBFUSCATE that can be added to command items. When OBFUSCATE is applied the command item is zeroed in the raw log file. Text log files (CmdTlmServer, Script Runner) hide the value with *****. This is ideal for passwords, keys, and anything you want to prevent being stored in both the plain text as well as the raw logs.

Potentially Breaking Changes

The return from API calls to cmd has changed. This only affects those writing custom tools calling the API directly like this.api.cmd(targetName, commandName, paramList).

Configuration Changes

To fix an issue with broken documentation links (e.g. Telemetry Viewer right click on keyword) you need to update your traefik configuration file to add a $ to the end of the statictools-index-router rule. See diff.

Enhancements

  • Add autocomplete to Telemetry Viewer dropdowns
  • Include traceback in decom error messages

Bug Fixes

  • Fix script authorization for Command Authority
  • Fix static routes (documentation links)

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.5.1...v6.6.0

v6.5.1

30 Jun 23:20
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.5.1 - Bug fixes and enhancements

Welcome to OpenC3 COSMOS Core 6.5.1!

Enhancements

  • Allow range argument option to get_object calls

Bug Fixes

  • Add System Health Tool to list of default gems
  • Allow formatting via FORMATVALUE widget on PACKET_TIMEFORMATTED and RECEIVED_TIMEFORMATTED items
  • Fix chromeless and inline URL use

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.5.0...v6.5.1

v6.5.0

13 Jun 14:55
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.5.0 - Script Engines and System Health Tool

Welcome to OpenC3 COSMOS Core 6.5.0!

Script Engines

COSMOS has a new plugin type called Script Engines! These allow you to create plugins that allow Domain Specific Languages to run in COSMOS Script Runner. There is a very basic example included in the demo plugin for you to checkout. More documentation and better examples to come!

Potentially Breaking Changes

Files were moved during the implementation of Script Engines. Specifically running_script.rb, running_script.py and script_instrumentor.py. If you are requiring or importing these files or relying on their exact path you will need to update.

System Health Tool (Enterprise)

Enterprise has a new System Health Tool that can give you a quick glance of resource utilization and identify any CPU/Memory/Disk exceedances within COSMOS. It also has built in notifications so that users will be notified if things start getting close to the edge on resource utilization.

Improved Docs

Lots of improved docs including new docs on Processors, notes on the Traefik 3 upgrade in COSMOS 6.x, and improved documentation on the stash API.

Ace Diff Moved to Open Source Version

We forked and fixed some issues in the ace-diff npm package, but now OpenC3 is the official maintainer! So instead of including that code in our repos, our changes have now be included into the main ace-diff repo.

Packet Counters Cleared on Undeploy

Whenever you uninstall or upgrade a target plugin, cmd/tlm packet counters are now cleared back to 0.

Bug Fixes

  • Fixed parameters to the SpacerWidget
  • Fixed several issues in the script CLI commands
  • wait lines no longer highlight in Script Runner if instrumentation is disabled

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.4.2...v6.5.0

v6.4.2

30 May 22:47
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.4.2 - Code Coverage, Doc Updates, and Bug Fixes

Welcome to OpenC3 COSMOS Core 6.4.2!

Enterprise - Added new Ruby and Python SDKs for Autonomic

We now have SDKs in both Ruby and Python for controlling Autonomic. This can allow for programatic creation of Triggers and Reactions from scripts or your own code.

New Event Message Data Viewer Component

There is a new Event Message Component in DataViewer that can be used to display a set of text strings in a scrolling list. Perfect for FSW events, or any other set of string messages you would like to display over time.

Improved Unit Test Coverage

Thanks to @clayandgen our unit test coverage keeps improving. We are now at approximately ~79% coverage and are continuing to improve.

Improved Docs

Lots of new docs in this release! Our docs now have more diagrams and discussions of the different ways to deploy COSMOS, there is a new docs page on conversions, and a new upgrade guide was added that discusses the necessary versions to hop through when upgrading if you have fallen far behind on versions.

Bug Fixes

  • Fixed several issues with Redis Cluster caused by use of pipeline for Redis
  • Fixed an issue that prevented screen errors from clearing the triangle icon after the errors were fixed
  • Enterprise - Fixed a redirect issue when using Firefox

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.4.1...v6.4.2

v6.4.1

14 May 18:32
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.4.1 - Bug fixes

Welcome to OpenC3 COSMOS Core 6.4.1!

Bug Fixes

  • Support for 64 bit ints in COSMOS 6.2.0 broke the handling of floating point values which could potentially lose precision. For more information about which floating point values were affected see description of isSafeNumber
  • Fix issue with next line delay after pausing a script
  • Scripts in COSMOS 6.4.0 that completed quickly (single line scripts) were not appropriately marked as completed

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.4.0...v6.4.1

v6.4.0

07 May 22:18
Compare
Choose a tag to compare

OpenC3 COSMOS Core 6.4.0 - Script Runner improvements including Goto!

Welcome to OpenC3 COSMOS Core 6.4.0!

Script Runner Improvements

Script Runner gained a bunch of new features. It can now Goto an arbitrary line using the right click menu as well as using goto X in scripts. It can execute a selection of script while paused to help debugging. We added a bunch of additional states to script status:

  • spawning - Not running yet
  • init - Initializing
  • running - Running
  • paused - Paused
  • waiting - Waiting (either for a wait or a prompt)
  • error - Paused with an error
  • breakpoint - Paused with a breakpoing
  • crashed - Complete after crashing with an exception
  • stopped - Prematurely stopped
  • completed - Completed successfully
  • completed_errors - Completed but errors occurred while running
  • killed - Forcefully killed

You can get this new information from the get_script(<ID>) API method. This will also be coming to the CLI soon! Finally we changed the environment button and better indicate when env vars are set.

Potentially Breaking Changes

  • The internal methods reduce_to_single_packet and identify_and_finish_packet within Python protocols no longer take an extra argument and instead use an extra instance variable to match the Ruby code.

Other Improvements

  • UBI containers updated to UBI9
  • Updated tooltips to add delay and remove unnecessary tooltips
  • Allow PreidentifiedProtocol to process old COSMOS 4 bin files
  • Added FileInterface documentation
  • Updated NASA cFS documentation
  • Updated SSL/TLS documentation
  • Added cmd-tlm-api and script-api controller tests

Bug Fixes

  • Fix root redirect to avoid 404 errors
  • Python UDP sockets handle disconnect / reconnect
  • Fix TlmGrapher graph widths to allow display side by side
  • Allow TlmViewer widget settings to override global settings
  • Fix TlmViewer's FormatValue widget size and alignment

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.3.0...v6.4.0

v6.3.0

05 Apr 04:33
Compare
Choose a tag to compare

OpenC3 COSMOS 6.3.0 - Lots of Improvements!

Welcome to OpenC3 COSMOS 6.3.0!

Potentially Breaking Changes

  • Alpine upgraded to version 3.21
  • Ruby upgraded to version 3.3
  • Python upgraded to version 3.12

Ruby Script Instrumentation Now Uses Prism

Ruby 3.3 dropped support for the Ripper library so we rebuilt our Ruby script instrumentation using the modern and supported Prism library. Look for a talk at the Space Software Summit from our own Jason Thomas on this update!

UBI based images are now published

We now will be publishing our standard Alpine based images, as well as a set of images based on the IronBank UBI base image. This is the first release with these published. We will improve their ease of use and add security scans in an upcoming release. Note UBI is not fully functional. Expect a fully functional version in the next release.

Graph LATEST packet

You can now graph the LATEST packet in TlmGrapher (and in Grafana in our Enterprise Editon). This allows for graphing items with the same name across multiple different packets.

Python Dynamic Packet Support

Python now has support for dynamically defining packets at runtime. New docs are available for this feature here: Dynamic Packets

Greatly Improved File Open Performance

The Vuetify Tree Widget was causing performance issues for several of our customers so we replaced it with a much more performant implementation. Let us know if this greatly improves selecting files in ScriptRunner!

Limits Monitor Updates

Limits Monitor has been rewritten to use a Vuetify Data Table. This provides sorting, searching, and a much nicer presentation.

ScriptRunner Vim Mode

All you Vim lovers out there can now put ScriptRunner into vim mode to edit your scripts!

Playwright test performance improvements

Our Playwright tests have been refactored to support running several of the tests in parallel. This improves our total time to run our end to end test suite saving us CI/CD time every commit.

Python Table Code

Python now has the code necessary to create, build, and edit tables.

Offline Access Token Generation

For our enterprise customers, we have added api methods to generate offline access tokens without having to access the GUI. This allows for much easier CI/CD test support on enterprise. Just run initialize_offline_access() before calling script_run().

Other Improvements

  • Lots of dependency updates
  • Details dialog added to LedWidget
  • Renamed hash variables in Python to avoid overloading keyword

Bug Fixes

  • DISABLE_DISCONNECT keyword now works
  • Packet Receive Counts now works for packets that can be received across multiple interfaces
  • Graph without overview graph fixes
  • Fixed a websocket issue with multiple subscriptions on the same cable

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.2.1...v6.3.0

v6.2.1

07 Mar 04:05
Compare
Choose a tag to compare

OpenC3 COSMOS 6.2.1 - Bug fixes

Welcome to OpenC3 COSMOS 6.2.1!

This release is primarily bug fixes and an enhancement to Packet Viewer to allow search on packets that have never been received.

Bug Fixes

  • Add yarn built dist folder to release
  • Force anycable to use 127.0.0.1
  • Fix python try except instrumentation

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.2.0...v6.2.1

v6.2.0

01 Mar 23:46
Compare
Choose a tag to compare

OpenC3 COSMOS 6.2.0 - Microservice Control, CONNECT_CMD

Welcome to OpenC3 COSMOS 6.2.0!

Microservice Control

In the Admin Microservices tab you can now restart, stop, and start microservices. This can be useful for debugging and simulating failures. (Note: stopping microservices will break things!)

CONNECT_CMD OPTION for Interfaces

This new option allows for sending commands on initial connection of an interface.
Read more here

Other Improvements

  • Limits responses now run in a thread to prevent blocking decom while they are running
  • Improve TableManager file lookup
  • Scopes now have configurable retain times for script logs and other logs

Bug Fixes

  • Fixed 64-bit integer support on the frontend in CmdSender / PacketViewer / TlmViewer
  • Handle news not being available in offline environments
  • Fix title widget centering
  • Fix time case sensitivity in frontend
  • Fix multiline generic conversions in Python
  • Fix exception in Python TcpipServerInterface due to DNS lookup failure
  • Fix ScriptRunner leaving zombie processes
  • Fix python ScriptRunner output thread
  • Correct numerous Sonarqube findings
  • Improve some playwright test flakiness (more to be done)
  • Fix LIMITSCOLUMN and LIMITSCOLOR examples
  • Now using consistent colors for limits everywhere
  • Fixed missing dist folders in javascript libraries
  • Fix parsing hex and binary ID items
  • Fix displaying hazardous description in popup dialog
  • Fix python identify_packet

All Pull Requests

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 [email protected].

Thanks!

Full Changelog: v6.1.0...v6.2.0