Skip to content

Releases: OpenC3/cosmos

v5.15.1

15 Mar 22:20
Compare
Choose a tag to compare

OpenC3 COSMOS 5.15.1 - target file API fixes and disabled commands

Welcome to OpenC3 COSMOS 5.15.1!

This release fixes the download_file, get_target_file, and put_target_file APIs. It implements the DISABLED keyword and adds API methods to enable_cmd and disable_cmd (admins only).

Breaking Changes and Upgrade Notes since 5.14.2 - Please Read

  • The internal Traefik port was changed to 2900 to match our standard external port and to better support unprivileged runtime environments
  • The change requires updating .env, compose.yaml and the traefik configuration files.
  • Stop the previous release, update the files, and restart

Bug Fixes

  • Implement the DISABLED keyword
  • Fix redis cluster in COSMOS Enterprise
  • Fix download_file, get_target_file, put_target_file in Ruby and Python

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: v5.15.0...v5.15.1

v5.15.0

11 Mar 03:33
Compare
Choose a tag to compare

OpenC3 COSMOS 5.15.0 - Interface Throughput Improvements

Welcome to OpenC3 COSMOS 5.15.0!

This release brings major improvements to interface throughput with a new strategy of batching writes to Redis and an additional option to interfaces to even further improvement throughput at the cost of slightly higher processing latency. If you have interfaces receiving data at greater than 10Hz, try adding OPTION OPTIMIZE_THROUGHPUT 0.1 to your interfaces.

Breaking Changes and Upgrade Notes - Please Read

  • The internal Traefik port was changed to 2900 to match our standard external port and to better support unprivileged runtime environments
  • The change requires updating .env, compose.yaml and the traefik configuration files.
  • Stop the previous release, update the files, and restart

Greatly Improved TlmViewer Code Completion in Screen Editor

The screen editor is now fully aware of the telemetry database, making it even easier to quickly build out telemetry screens!

Other Improvements

  • Item background colors now alternate in Admin lists
  • ScriptRunner Suite report filenames now indicate what was run
  • Grapher nows goes to using scientific notation for labels with very large and very small numbers
  • Grapher can now add user configured horizontal lines
  • Bucket Explorer can now create files in new folders

Bug Fixes

  • Fixed python target file loading APIs
  • The HIDDEN command keyword is now supported
  • Generating presigned urls now checks targets_modified as well as the targets folder
  • Fixed importing pandas in Python scripts
  • Renewed support for item names that include square brackets
  • Fixed cycle time support for low data rate targets
  • Fixed upgrading plugins when multiple of the same plugin are installed

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: v5.14.2...v5.15.0

v5.14.2

11 Feb 15:52
Compare
Choose a tag to compare

OpenC3 COSMOS 5.14.2 - Python Bug Fix Release

Welcome to OpenC3 COSMOS 5.14.2!

This release mainly fixes issues with our new Python support. Thanks to everyone who is trying it out and submitting tickets!

Python Bug Fixes

  • Custom Conversions, Limits Responses, etc our now imported successfully
  • Generators now support --python fully
  • UBI pip3 is now symlinked to pip
  • Pip will now retry with --no-index if the attempt at an online install fails
  • Handle String edge case that was breaking INST2 ASCIICMD

Other Improvements

  • openc3.sh cli rake will now fail with a warning if no Rakefile is found
  • The Raw dialogs in CmdTlmServer are now non-modal, allowing multiple to open and be moved around
  • CmdTlmServer now has a Clear Counters option

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.14.1

27 Jan 15:46
Compare
Choose a tag to compare

OpenC3 COSMOS 5.14.1 - Bug Fix Release

Welcome to OpenC3 COSMOS 5.14.1!

Important Bug Fixes Release for ScriptRunner

We squashed a couple bugs that could cause ScriptRunner to write over the contents of the running script with the contents of another file. Pressing Ctrl-S while running in a different file than original started or some cases where after stopping a different file was still shown could cause the original file to be overwritten. These have all been corrected and all users are encouraged to upgrade.

Further Enhancements to Dynamic Packet Creation

Dynamic packet creation in Ruby now works fully including logging and decom picking up the new packets.

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.14.0

19 Jan 20:46
Compare
Choose a tag to compare

OpenC3 COSMOS 5.14.0 - Related Telemetry, Cmd/Response Framework, Dynamic Packet Definition, and More

Welcome to OpenC3 COSMOS 5.14.0!

Related Telemetry Items and Screens for Commands

Commands have a new keyword for associating related telemetry items to the command: RELATED_ITEM. This automatically builds a telemetry screen that is shown alongside the command in CmdSender. If you want to get fancy, you can also associate a full custom built telemetry screen with the SCREEN keyword.

Generic Command / Response Protocol

The command response architecture is a command pattern for a lot of different devices, so we took the legacy TEMPLATED protocol and extracted the command response pattern from it into its own CmdResponseProtocol class. Adding this protocol to your Interface will put it into a command/response mode for any commands that have an associated RESPONSE keyword defined.

Dynamic Packet Definition

We've added the ability to dynamically define packets within the COSMOS framework at runtime. This will typically be done by an Accessor or a Processor after receipt of a packet to define its contents for access by our fronted tools.

BucketExplorer Folder Size

BucketExplorer now calculates and displays the size of all files in the currently displayed folder.

New ping endpoints for our API containers

We added a couple new ping endpoints to our API containers that can be used for health/aliveness checks.

PROCESSORs now only run in the Decom microservice

Previous processors were being run both in the interface and in decom (twice total). Processors can now be used reliably run once on each packet reception, so they can safely perform side effects if needed. This is a potentially breaking change if the multiple execution was expected in previous versions.

ScriptRunner Performance Greatly Enhanced

ScriptRunner was updated to process script events in batches, rather than one at a time. This greatly improved ScriptRunner performance and should keep it from ever falling behind when flying through lots of lines that would have to be highlighted one by one.

Important Bug Fixes

  1. Accessors now enforce data type on read/write
  2. wait() fixed in Python scripts
  3. Continue even if there are errors in local_init in the init container. This removes many use cases where the init container can get stuck looping, and will allow for manual recovery by users.
  4. Fixed diff logic on plugin upgrade
  5. Fixed Python Tcp/IP Client Interface
  6. Made tlm item cache default to no caching, unless you specifically want it
  7. Fixed a bug where Interface#disconnect would not be called if an exception was raised during Interface#connect
  8. Fixed BucketExplorer routes with special characters
  9. Fixed writing Python strings without first converting them to bytes type
  10. Fixed loading TlmGrapher configurations with more than one graph specified
  11. Support upload/download from TableManager in Python
  12. Fixed a bug with the rux-status component handling of fatal
  13. Updated DataExtractor to handle receiving null values

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.13.0

20 Dec 03:23
Compare
Choose a tag to compare

OpenC3 COSMOS 5.13.0 - Non-Root Containers and AstroUx Styling

Welcome to OpenC3 COSMOS 5.13.0!

IMPORTANT: Breaking change to Non-Root Containers and Renamed Minio Volume

Previously all of our non-COSMOS unique containers ran as received from Docker Hub (so Traefik and Minio ran as root). Going forward all of our containers are configured to run as non-root users (except with rootless podman - which isn't really running as root).

This is a breaking change as earlier versions have volume mounted data that is owned by other user ids. Additionally we renamed the openc3-minio-v volume to openc3-bucket-v to ease upgrading to Enterprise Edition. Note that significant changes were made to compose.yaml and all traefik config files.

To migrate from COSMOS 5.12.0 to 5.13.0 please run the following scripts from your COSMOS project folder.

MacOS/Linux: https://github.com/OpenC3/cosmos-project/blob/05c95a24627ac0694fd4af605533de1eb13683f4/migrate_5_12_to_5_13.sh

Windows: https://github.com/OpenC3/cosmos-project/blob/05c95a24627ac0694fd4af605533de1eb13683f4/migrate_5_12_to_5_13.bat

Note: you should always review shell scripts before running them on your computer.

AstroUx 7 Styling

We've gone through a review with Rocket Communications and all of our tools have a fresh new update to AstroUx version 7! You'll notice more consistent styling and layout throughout and a fresh new look. Also, all value widgets for items with limits now show an icon to indicate limits state improving color blind support.

TlmGrapher Array Items

You can now graph individual items from arrays in TlmGrapher!

ScriptRunner Open Recent

ScriptRunner now keeps track of recently opened files in the File menu

More Persistent config when leaving tools and coming back

Whenever you leave a COSMOS tool and then return, it will generally now continue with the same settings as when you left, rather than refreshing.

New MqttStreamInterface

New interface that supports using two Mqtt topics as byte streams for sending and receiving data.

Python Streaming API

Added python code to support all of our Websocket Apis including the StreamingApi.

Calendar and Autonomic Now Enterprise Only

These tools have been moved to COSMOS Enterprise Edition going forward. Thanks to all of our Enterprise customers for supporting us!

Python code generators now available

Our code generators now support either Ruby or Python. Just add --python to the end for Python support.

Important Bug Fixes

  1. The cmd() log_message parameter now works again
  2. Fixed commanding with binary data from Python
  3. Fixed the XTCE converter and added XTCE support for ContainerRefEntry
  4. Python suite analysis now handles load_utility 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.12.0

11 Nov 04:57
Compare
Choose a tag to compare

OpenC3 COSMOS 5.12.0 - Full Python Support

Welcome to OpenC3 COSMOS 5.12.0!

Full Python Support

After a full summer of development, I'm happy to announce COSMOS now has full support for both the Python and Ruby programming languages! That means you can now craft custom Interfaces, Routers, Protocols, Microservices, and Scripts with which ever language you prefer! This was a huge effort with over 40,000 lines of Ruby ported to Python.

With this update all the best libraries for each language are available for your use within COSMOS. Need to do some serious math? Install NumPy and you are good to go. Have a favorite API that has a Python driver? Build a new interface that uses it directly. The sky is the limit!

New Docs Tool and IFrames

Our documentation website has been converted from Jekyll to Docusaurus... and is also now built-in as a COSMOS tool. You can now have access to all our documentation, even in offline environments. Sweet! With this change we also added the ability to run links from the Navbar as IFrames. So you can embed any other tool into COSMOS easily.

Ruby and Python Calendar API SDK

You can now easily schedule new calendar activities using the API implementation directly from Ruby or Python.

UBI8 Configuration

For our defense friends, we now have the ability to build all our containers based on UBI8 from Ironbank. Just use ./openc3.sh start-ubi, instead of ./openc3.sh start (Linux and Mac support only).

Important Bug Fixes

  • Manually adding tools in the Admin Tools Tab would only allow a single tool
  • Adding over 100,000 items to a single packet would cause a Stack Too Deep error
  • Bucket File Retries was broken if a first attempt at a file retrieval failed
  • Tool Window Modes including IFRAME were not implemented before
  • Leaving COSMOS to another website, and then using the Browser back button would yield a Time out of Sync message

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.11.3

10 Oct 00:34
Compare
Choose a tag to compare

OpenC3 COSMOS 5.11.3 - Bringing Everything Together

Welcome to OpenC3 COSMOS 5.11.3!

This is our second patch release for the 5.11 series (5.11.1 is skipped, due to a regression)

Fixed Notification Toasts

Toasts - the little popups when a notification occurs, broke with the 5.11.0 release. This release fixes them!

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.11.2

03 Oct 14:39
Compare
Choose a tag to compare

OpenC3 COSMOS 5.11.2 - Bringing Everything Together

Welcome to OpenC3 COSMOS 5.11.2!

This is our first patch release for the 5.11 series (5.11.1 is skipped, due to a regression)

Consolidated API Metrics

Our API metrics endpoints previously responded with data from a random worker thread. Metrics data is now consolidated across workers. (/openc3-api/metrics, /script-api/metrics)

Reducer Bug Fixes

We fixed a couple bugs with data reduction. One caused an EOFError when two threads were trying to process the same file at the same time. Another involved invalid out of order warnings. Note: You will still see out of order warnings if TLM_BUFFER_DEPTH is set too low, or if the system is overloaded.

Fixed yarn serve for debugging frontend tool code

Running yarn serve to develop and test tools was broken by the upgrade to prettier 3.0. This has be corrected.

More methods work in disconnect mode

More methods that read actual data now work in ScriptRunner disconnect mode such as stash and metadata related get methods.

Cleared all code flagged as Bug in Sonarqube

Sonarqube now reports our code free from bugs. :)

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.11.0

18 Sep 04:10
Compare
Choose a tag to compare

OpenC3 COSMOS 5.11.0 - Bringing Everything Together

Welcome to OpenC3 COSMOS 5.11.0!

Significant Data Reduction CPU Utilization Improvements

The Reducer tasks periodically run and can use a lot of CPU. This change throttles data reduction to using at most 30% of a CPU per target by default, and this setting is adjustable. There is also a new configuration setting to completely disable data reduction if it is not needed.

HttpClientInterface and HttpServerInterface

Initial versions of an HttpClientInterface and HttpServerInterface are included in this release. An example of use can be found Here. Note that this code is still pending unit testing and may be buggy.

Hex in Item Detail Dialog

The item detail dialog now also shows the Raw value in hex for integer items.

Improvements to Accessors and Protocols

Accessors are now instantiated with each packet which allows them to take constructor arguments. This allows for the creation of more advanced accessors for packets, and supports the new HttpAccessor and FormAccessor classes. Protocols now support passing an extra hash of data in read_data and write_data. This allows for eloquent protocols that don't have to save data in variables to pass between the raw data phase and the packet phase.

Logger Improvements

Logger now supports three types of log entries: log, notification, and alert. Additionally, WARN and above severity levels can be optionally written out to STDERR instead of STDOUT if the OPENC3_USE_STDERR environment variable is set. The Log MessagesChannel API has also been updated to support querying historical log messages, and the log file format is now proper JSON entries that are newline separated. Finally, logs that aren't associated with any scope are now logged into a NOSCOPE path in the logs bucket.

Possible migration required. This change removed NotificationModel, and all use of that class should be replaced by use of Logger with type: Logger::NOTIFICATION.

Continued Python Development

Python development continues. Some Interfaces and Protocols are now included. Also, much better testing and unit tests. More to come. We are still targeting the ability to create Python based Interfaces and Target code by the end of the month.
Note: Python support is still Beta in this release.

Monthly Dependency Updates

We've updated all our dependencies driving down the number of CVEs in all of our containers.

Notable Bug Fixes

  1. Fixed an issue causing a never ending loop of the init container caused by changing in Minio
  2. Force folder_name to be unique to prevent conflicting tool installs
  3. Fixed an issue with Websockets failing authentication if passwords contained special characters
  4. Fixed plugin installation diff views
  5. ERB on full commented out lines is no longer executed. Note: will still execute in trailing comments
  6. Better support for UTF-8 characters in config files
  7. Fixed unit test performance in mock_redis xread
  8. Updated Sleeper class to properly close pipe handles
  9. Fixed the creation of an anonymous Docker volume for the redis-ephemeral container

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