Skip to content

v5.5.0

Compare
Choose a tag to compare
@ryanmelt ryanmelt released this 23 Feb 23:51
· 2905 commits to main since this release

OpenC3 COSMOS 5.5.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.5.0!

Full Support for Bridges with Examples

Bridges are an easy method to give COSMOS access to hardware that doesn't natively speak Ethernet. This release adds full support for bridges and new bridge gems that make them even easier to use. See the docs here: Bridges Documentation

Dynamic Route Support In Traefik

Want to create a plugin that adds a new API to COSMOS and exposes it at a route in Traefik? Now you can. This is implemented using the new ROUTE_PREFIX modifier to MICROSERVICE in plugin.txt. See: ROUTE_PREFIX

Bucket Explorer Upload and Delete Files and Support for Custom Buckets

Bucket Explorer can now upload new files, and delete files from buckets. Also you can add additional buckets to manage by defining environment variables like OPENC3_NAME_BUCKET.

Ruby Websocket Client API

Add a Ruby based client code to access all of our Websocket interfaces. Most importantly the Streaming API can now be accessed directly from Ruby. See: web_socket_api.rb

Command Line Generators for More COSMOS Features

We've expanded our generator code to create scaffolds for more COSMOS features. We now have generators for plugins, targets, microservices, conversions, and limits_responses. See openc3cli generate

Improved TlmGrapher Performance and Support for Reduced Data

TlmGrapher is now much more performant with high rate data. You can also now easily graph reduced minute, hour, and day data!

New NEEDS_DEPENDENCIES keyword for plugin.txt

If your plugin needs access to custom installed gems, but you don't explicitly add them as dependencies in .gemspec (which you probably should...), you can now force access to the /gems volume mount by adding NEEDS_DEPENDENCIES to plugin.txt.

New WriteRejectError Support for Interfaces and Protocols

Want to add a custom protocol the rejects commands but doesn't cause the whole interface to disconnect and then reconnect? Now you can by raising a WriteRejectError exception from your custom Protocol or Interface.

Cleaned Up Environment Variable Support for Scripts

Script Environment variables were a little confusing before, but now we've clarified and improved how they work. You can set global environment variables that are available to all scripts, and you can set individual environment variables for individual script runs.

Environment Variable Support For Not Installing Default Tools

We also added some new environment variables to prevent the installation of the standard tools. You can use these if you have customized one of the tools or simply don't need one of our default tools.

Important Bug Fixes

  1. Fixed a bug causing poor performance as soon as you had more than 1000 files in Minio
  2. Fixed an issue where the first script run wouldn't show up in Completed Scripts
  3. Telemetry items are now case-insensitive in TlmViewer Screens
  4. Several bug fixes in DataExtractor for large queries
  5. Starting using Ruby resolv-replace to remove DNS errors in Alpine

All Pull Requests in this Release

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: Changelog