Skip to content

Releases: OpenC3/cosmos

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

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

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

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

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

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

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

Thanks!

Full Changelog: Changelog

v5.0.10

17 Sep 17:25
Compare
Choose a tag to compare

OpenC3 5.0.10 is here with modular decom!

Modular decom brings support for JSON, CBOR, HTML, and XML based packets directly to OpenC3, and the ability to create your own custom Accessor classes that can read data from any data format directly, without a required conversion to binary first.

This will allow OpenC3 to interact with non-binary packets like web pages, JSON based API interfaces, and much more, with little to no custom coding required.

See openc3-accessor-test for a great example of defining packets in each of the new types.

Key Enhancements

  • Modular Decom
  • Updated open source dependencies
  • Added filename to get chosen filename from open_file_dialog()
  • Added PORT keyword to Microservices to support accessing them in cluster environments
  • Added Severity filtering to CmdTlmServer log messages and increased count of messages saved
  • Added refresh script button to ScriptRunner

Key Bug Fixes

  • Fixed positioning of events in Calendar near Midnight

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

Thanks!

Full Changelog: Changelog

v5.0.9

02 Sep 17:21
Compare
Choose a tag to compare

OpenC3 5.0.9 is here and with it a great new feature called Local Mode!

Local mode defines a standard structure for your project's OpenC3 configuration, primarily plugins, and keeps it in sync with what you do through the web interface. It also encourages running from our official released containers, and not checking out the whole openc3 repo and building from source.

Local mode is best implemented using the project template now available at https://github.com/openc3/openc3-project.

See getting started directions below.

Key Enhancements

  • Local Mode
  • Open source dependency versions updated
  • TlmViewer screen editor now has line numbers, syntax highlighting, and completion
  • Improved COSMOS compatibility
  • Browser tabs now show the tool name in the title
  • Improved javascript API support for tlm methods
  • map_target_to_interface implemented

Key Bug Fixes

  • Numerous fixes to CmdSender - Code now coverage at 94%
  • Fix TlmViewer screen upload
  • Fixed an issue with the Streaming api stopping too early

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

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

v5.0.8

14 Aug 04:00
Compare
Choose a tag to compare

I'm happy to announce the third release of OpenC3!

Key Enhancements

  • New SPARKLINE telemetry screen widget
  • Telemetry Screen Value Aging
  • Updated Ruby / NPM dependency versions
  • Added POSITION keyword for TOOLs to enforce position in Nav Bar
  • Improved operator log messages

Key Bug Fixes

  • Fixed an issue with the UNKNOWN packet not showing
  • Fixed an issue where the system didn't wait for a file to be fully available in S3
  • Fixed Cmd/Tlm Packet counts in CmdTlmServer
  • Fixed an issue where the Current Value Table would sometimes say packets don't exist

Pull Request Links

Upgrade Notes

This release requires reinstalling any plugins that include targets, because the Current Value Table moved between containers.

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

To Run:
Download one of the archives (.zip or .tar.gz from the Github release page) Download Release Here
Extract the archive somewhere on your host computer
Edit the .env file and change OPENC3_TAG to 5.0.8
Run Linux/Mac: ./openc3.sh run
Run Windows: openc3.bat run
Connect a web browser to http://localhost:2900/
Have fun running OpenC3!

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