Skip to content

Releases: OpenC3/cosmos

v5.5.1

26 Feb 19:41
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.5.1!

Download Plugins from the Admin Tool

Now you can download installed plugins!

Traefik changed from Redis to HTTP Endpoint

Traefik Redis support doesn't work with Redis Cluster, so we added an HTTP endpoint to our API to give Traefik dynamic configuration.

Create Suites from Script Runner

New option to create a suite from the Script Runner menu.

Updates to the Secrets Framework to Support a secret_store Key

Some secrets systems have a "container" for a grouping of secrets. Added a new secret_store key to the Secrets framework to support this.

Important Bug Fixes

  1. Multiple TlmViewer Widgets improved and bugs fixed

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.5.0

23 Feb 23:51
Compare
Choose a tag to compare

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.4.2

04 Feb 15:51
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.4.2!

Important Upgrade Notes

We've made a lot of changes in this release to ensure that the user running in the containers is the same user the starts the containers on the host when using Docker Compose. This should solve all permissions issues with local mode. However, if you are upgrading from an earlier version, your existing permissions are now probably incorrect. The easiest fix is to do an openc3.sh cleanup, and then restart. However, if you need to keep existing log files, you should "docker exec --user root -it sh" into the operator container and then run "chmod -R 777 /src", "chmod -R 777 /plugins", and "chmod -R 777 /gems". After that everything should work again.

Patch Release 2

Scripts Now Can List Set Overrides and Warn if Running with Telemetry Overrides
Fixed Regression in Minio Console
Command Only Targets Are Now Supported
Added a force option to openc3.sh cleanup to bypass the are you sure prompt

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.4.1

03 Feb 14:41
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.4.1!

Patch Release

Add proper permission on linux to the openc3.sh cli command.
Fix for Suite Runner, internal suite detection

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.4.0

02 Feb 05:19
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.4.0!

Bucket Explorer

COSMOS now comes with a new tool called Bucket Explorer that allows browsing files in whatever bucket technology is being used. This provides a cross-cloud solution with a Minio Console-like interface.

Metrics

The CmdTlmServer Status tab now includes a curated list of metrics that can be useful to monitor the health of COSMOS. Includes various counters and latency measurements.

Navigation Categories

The Navigation bar can now be organized into Categories that can be collapsed and expanded.

Permissions Updates to Better Support Local Mode on Linux

Updates to openc3.sh and compose.yaml to better support permissions when running using local mode on linux. This supports running from user ids other than 1000, and makes sure that files written to the host filesystem have the same user id as the user who is running COSMOS.

Better Plugin Installation Errors

Plugin installation errors now include line numbers, and attempts to capture all installation errors, rather than just the first.

Trivy, ClamAV, and CodeQL Scans

Our CI/CD process now includes Trivy scans for finding CVE vulnerabilities and ClamAV scans to check for Malware.

Other Highlighted Improvements In This Release

  • DataExtractor updated to handle very large lists of items
  • CmdSender nows lists parameter ranges
  • Several tools now remember pagination settings
  • Always force an install of plugins if using the GUI
  • Enabled/Disable limits from Details dialog

Key Bug Fixes

  • Removed UNKNOWN from CmdSender target list

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.3.0

06 Jan 01:44
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.3.0!

New Secrets Framework

COSMOS now contains a modular framework for interfacing with different Secrets management frameworks. This first release stores secrets into Redis, and they can be retrieved as needed by Interfaces and other Microservices. Kubernetes secrets support coming soon in COSMOS Enterprise Edition.

MQTT Interface

Added a new interface to support the MQTT message bus. Packets can be associated with MQTT topics by adding META TOPIC topicname to packet definitions. This allows for easy integration with MQTT.

Interface and Protocol Commands

The Interface and Protocol base classes now support an interface_cmd and protocol_cmd method respectively. This provides a framework for defining interface and protocol level APIs without having to define TARGETS that are handled by the Interface internally. Usage examples coming soon. Possible use cases include things like reseting interfaces without a connect/disconnect cycle, commands to support key management, and changing internal protocol settings during runtime.

Other Highlighted Improvements In This Release

  • Overriding telemetry now works without needing the OverrideProtocol
  • BLOCK data can now be properly displayed in PacketViewer
  • Dependency updates

Key Bug Fixes

  • Fixed an issue when trying to identify and define packets when streaming raw packet through the StreamingApi

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.2.0

14 Dec 02:40
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.2.0!

RAM Utilization Reduced 2-3x

This release reduces total RAM utilization by 2-3x by combining the different microservices that support each target and each scope into a new single "multi" microservice. Each individual ruby interpreter uses 50-60Mb of RAM so this can save up to 300Mb of RAM per target, and up to 200Mb of RAM per scope over previous versions! Microservices can still be broken out with new keywords in plugin.txt if more performance is needed. Running COSMOS with our demo application now only uses about 1.3Gb of RAM.

Targets Can be Mapped to Multiple Interfaces

Another key feature of this release is that Targets can now be mapped to multiple interfaces. Typically this can be used to have a different interface for commands vs telemetry. Or it can be used to have multiple interfaces that can receive telemetry for a target. Sending commands to multiple interfaces is also supported, but generally not desirable.

New Stash API

Scripts now have support for a new Stash API that allows saving state that can be retrieved by later runs of the same script (or other scripts). Data is stored and retrieved as key/value pairs.

Other Highlighted Improvements In This Release

  • Support variable command timeouts for long duration commands
  • Improved Redis Debug Tab in Admin
  • Added support for global subsettings
  • Support DISABLE_MESSAGES for command states
  • Support multiline strings in config files
  • Made log buffer depths configurable
  • Added support for offline_access_token api to support Enterprise edition
  • Added a new migration system to support upgrades between versions
  • Improved cleanup microservice efficiency
  • Allow running scripts outside of lib and procedure folders
  • Added new plugin.txt keywords to breakout individual target microservices to support high load packets
  • Updated dependency versions

Key Bug Fixes

  • Received time was being lost in the current value table for packets with a defined packet_time
  • Fixed several potential errors that could occur in reducer
  • Enforce that TlmViewer screen names must be lowercase
  • Fixed a bug where out of time order packets could cause the creation of a huge number of log files

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.1.1

19 Nov 16:00
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.1.1!

This release is quick patch release to address the following:

Highlighted Improvements In This Release

  • ScriptRunner scripts can now handle unicode characters
  • Updated TextLogMicroservice to ensure a clean shutdown

Key Bug Fixes

  • Updated openc3.bat and openc3_util.bat to fix some issues on Windows with cli, cliroot, and util scripts

All Pull Requests in this Release

  • Windows cli use .env file by @ryanmelt in #272
  • Clean shutdown for TextLogMicroservice. Don't enforce time ordering for text logs by @ryanmelt in #274
  • Handle UTF8 strings better when JSON encoding by @ryanmelt in #276

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

v5.1.0

18 Nov 04:55
Compare
Choose a tag to compare

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

Welcome to OpenC3 COSMOS 5.1.0!

The COSMOS name is back! We have completed an agreement to formally take over development of COSMOS and are now offering commercial licensing to customers who want the additional scaling and security functionality in our COSMOS Enterprise Edition, or for our COSMOS Base Edition if the AGPLv3 license doesn't work well for them.

5.1.0 is a major release with key new features and performance enhancements. It also marks the end of the developmental 5.0.x series, and indicates that OpenC3 COSMOS 5 is now fully production ready! Going forward all releases will follow a versioning convention where the second digit 5.X will change when breaking changes are introduced, and the third digit 5.X.Y will change for minor or non-breaking changes that should be backwards compatible.

This release is highlighted by the following major Improvements to logging, data reduction, and the streaming API:

  • 4x less disk utilization.
    • With up to 5x less disk space required to store decommutated data, and an almost 2x reduction in the storage of raw data.
  • Added a new Bucket class to allow direct bucket integrations with cloud providers without requiring Minio.
    • AWS will be supported in our Base Edition, and other clouds in our Enterprise Edition.
  • Data reduction updated to log samples for all non-numeric items
    • This allows quick queries of every telemetry item in the COSMOS database
  • Logging changed from "file per packet" to "file per target"
    • Greatly reduces the number of files generated and the number of files required to be accessed to playback all data
  • Log files are now written in a buffered fashion that stores packets in guaranteed time order
  • Log file format changes are not backwards compatible.
    • Older log files will need to be migrated to the new format to be accessed by the Streaming API. Please contact support@openc3.com if you would like help migrating existing log files

Other Highlighted Improvements In This Release

  • Telemetry value displays now turn purple to indicate stale values
  • Added pause button to log messages in CmdTlmServer
  • Removed the gems bucket in favor of the /gems shared folder
  • Added support for OpenTelemetry and Jaeger to help debug mission specific performance issues
  • Added the ability to create screens automatically for any packet with the New Screen button
  • The API methods connect_interface and connect_router now support reinitializing with new parameters. This can allow changing IP addresses at runtime.
  • Added the ability to open and close TlmViewer screens, from screens
  • Packet received counts now survive restarts and continue where they left off
  • User selectable colors for TlmGrapher items
  • Added a QUIET command to the demo INST targets to allow running the demo without constant limits violations
  • Numerous dependency updates

Key Bug Fixes

  • The Limits API is now fully functional. Previously enable/disable limits and set_limits were not taking effect.
  • Setting TlmViewer widget widths now work correctly
  • Removed an issue where ScriptRunner scripts could output too much to STDOUT causing crashes
  • Fixed XTCE converter
  • Removed partially implemented Admin plugin download button
  • Fixed issues editing TlmViewer screens
  • Fixed certain cases of decom of array items
  • Moved blocking in get_packets to client side code to prevent long API calls

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 support@openc3.com.

Thanks!

Full Changelog: Changelog

v5.0.11

03 Oct 23:32
Compare
Choose a tag to compare

OpenC3 5.0.11 is here!

This is primarily a maintenance and bug fix release.

Key Enhancements

  • Allow selecting and deleting script temp files
  • Add map_target_to_interface to Javascript API
  • Update map_target_to_interface to support an array of target_names
  • Update use of AWS SDK to better support using other SDKs besides just S3
  • Updated dependencies

Key Bug Fixes

  • Fixed a bug where the core extension to tempfile wasn't being required
  • Ensured when using Keycloak Auth that tokens are refreshed 60 seconds before expiration
  • Fixed the client count status in CmdTlmServer
  • Fixed put_target_file given an IO object with Local Mode enabled

Pull Request Links

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