Releases: OpenC3/cosmos
v5.13.0
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
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
- The cmd() log_message parameter now works again
- Fixed commanding with binary data from Python
- Fixed the XTCE converter and added XTCE support for ContainerRefEntry
- Python suite analysis now handles load_utility calls
All Pull Requests in this Release
- Bump axios to latest by @jmthomas in #930
- Bump actions/github-script from 6 to 7 by @dependabot in #932
- Graph array by @ryanmelt in #933
- Remove Logger from script files. Fix cmd log_message param by @jmthomas in #931
- Change severity to level by @jmthomas in #936
- Prepend astro status to valuewidget by @jmthomas in #938
- Bump got, @docusaurus/core, @docusaurus/plugin-client-redirects, @docusaurus/preset-classic and docusaurus-lunr-search in /docs.openc3.com by @dependabot in #945
- Updates for docusaurus 3 by @ryanmelt in #947
- Fix python encoding of binary by @jmthomas in #946
- Protocol api docs by @jmthomas in #949
- Add Open Recent to ScriptRunner, fix file icons by @jmthomas in #951
- Bump @adobe/css-tools from 4.3.1 to 4.3.2 in /openc3/templates/tool_react by @dependabot in #962
- Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 by @dependabot in #963
- Default config by @jmthomas in #960
- Mqtt Stream and Stream Interface. Plus fixes and faraday multipart by @ryanmelt in #955
- Astro by @jmthomas in #943
- Add Key Concepts page by @jmthomas in #950
- Bump actions/setup-python from 4 to 5 by @dependabot in #969
- Add OPENC3_IMAGE_SUFFIX to the cli and cliroot Calls by @stephen-ritter in #957
- Cleanup cmd apis by @jmthomas in #967
- Cleanup tlm apis by @jmthomas in #970
- XTCE - Add ContainerRefEntry support - Ignore Ancillary by @ryanmelt in #972
- Dependencies by @jmthomas in #971
- Fix Details Dialog when limits are 0 by @jmthomas in #973
- Create python streaming api by @jmthomas in #974
- Move Calendar and Autonomic to Enterprise by @jmthomas in #976
- Further astro refinements by @jmthomas in #980
- run all containers as non-root by @ryanmelt in #979
- Docusaurus fixes by @ryanmelt in #983
- Add python generators by @jmthomas in #982
- python suite analysis handle load_utility require_utility by @ryanmelt in #984
- Packet Viewer remember last packet by @ryanmelt in #985
- Add checks to plugin undeploy by @ryanmelt in #986
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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
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
- Bump stefanzweifel/git-auto-commit-action from 4 to 5 by @dependabot in #862
- Remove unused APIs by @jmthomas in #855
- Python suites and packages by @ryanmelt in #859
- Python interface microservice by @jmthomas in #843
- Fix Python Logger and Pool by @ryanmelt in #868
- Bump @babel/traverse from 7.20.1 to 7.23.2 in /playwright by @dependabot in #872
- Bump @babel/traverse from 7.21.5 to 7.23.2 in /openc3-cosmos-init/plugins by @dependabot in #871
- Bump @babel/traverse from 7.22.5 to 7.23.2 in /openc3/templates/tool_react by @dependabot in #870
- Bump @babel/traverse from 7.20.1 to 7.23.2 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #869
- Python testing by @jmthomas in #866
- Hash as_json handle unlimited items by @jmthomas in #876
- New docusaurus based docs website by @ryanmelt in #887
- Bump @babel/traverse from 7.23.0 to 7.23.2 in /docs.openc3.com by @dependabot in #888
- Additional Python APIs by @jmthomas in #877
- Add search to docs by @ryanmelt in #890
- Import target files in Python by @jmthomas in #886
- Bump @babel/traverse from 7.23.0 to 7.23.2 in /docs.openc3.com by @dependabot in #891
- Config api by @jmthomas in #892
- Allow using converted telemetry for UnixTimeConversion by @tsjordan-eng in #895
- Bump actions/setup-node from 3 to 4 by @dependabot in #894
- create docs tools. Implement IFRAME tool support by @ryanmelt in #901
- Python tcpip server by @jmthomas in #900
- Setting APIs docs and updates by @jmthomas in #893
- Calendar API by @jmthomas in #902
- Python timezone is utc by @jmthomas in #912
- Ubi8 by @ryanmelt in #904
- doc updates and minor fixes by @ryanmelt in #913
- Bump dependencies by @jmthomas in #914
- Navigate files by url by @jmthomas in #916
- Dependencies by @jmthomas in [#918[(https://github.com//pull/918)
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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
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
- Bump postcss from 8.4.24 to 8.4.31 in /openc3/templates/tool_react by @dependabot in #854
- fix toasts by @ryanmelt in #861
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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
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
- Bump docker/setup-buildx-action from 2 to 3 by @dependabot in #837
- Bump docker/setup-qemu-action from 2 to 3 by @dependabot in #836
- Bump docker/login-action from 2 to 3 by @dependabot in #835
- Handle API metrics with multiple workers by @ryanmelt in #841
- cleanup credentials by @ryanmelt in #846
- Reducer improvements by @ryanmelt in #849
- Vue config for prettier 3 by @jmthomas in #848
- Expand allowed methods in disconnect mode by @jmthomas in #847
- address sonarqube bugs by @ryanmelt in #850
- fix value widget num parameters check by @ryanmelt in #853
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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
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
- Fixed an issue causing a never ending loop of the init container caused by changing in Minio
- Force folder_name to be unique to prevent conflicting tool installs
- Fixed an issue with Websockets failing authentication if passwords contained special characters
- Fixed plugin installation diff views
- ERB on full commented out lines is no longer executed. Note: will still execute in trailing comments
- Better support for UTF-8 characters in config files
- Fixed unit test performance in mock_redis xread
- Updated Sleeper class to properly close pipe handles
- Fixed the creation of an anonymous Docker volume for the redis-ephemeral container
All Pull Requests in this Release
- Post release workflows by @ryanmelt in #784
- Python parsers by @jmthomas in #786
- Bump actions/github-script from 4 to 6 by @dependabot in #788
- Force unique folder_name for tools by @ryanmelt in #793
- Small Patches to Help with the Local Workflow by @stephen-ritter in #789
- Python logs & interface by @jmthomas in #795
- Reducer improvements by @jmthomas in #791
- Bump apollo-server-core from 3.12.0 to 3.12.1 in /openc3-cosmos-init/plugins by @dependabot in #803
- Accessor updates by @ryanmelt in #802
- Add Python streams and interfaces by @jmthomas in #797
- Bump actions/checkout from 3 to 4 by @dependabot in #806
- Show ENV usage in screen by @jmthomas in #819
- encodeURI for action cable consumers by @jmthomas in #818
- Fix ace-diff alignment issues by @jmthomas in #822
- Python microservices by @jmthomas in #817
- Display raw UINT/INT values as hex by @jmthomas in #821
- Comment out ERB by @jmthomas in #820
- REDUCER_DISABLE option for targets by @jmthomas in #826
- Handle UTF-8 in config files by @jmthomas in #828
- Dependencies by @jmthomas in #825
- Bump semver from 6.3.0 to 6.3.1 in /openc3/templates/tool_react by @dependabot in #829
- Technical debt cleanup by @ryanmelt in #815
- Http Interfaces by @ryanmelt in #805
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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.10.1
OpenC3 COSMOS 5.10.1 - Modern, Production Ready, Command and Control
Welcome to OpenC3 COSMOS 5.10.1!
Continued Python Development
Python development continues. We have added a lot of the packet processing code now to Python.
See the 5.10.0 Release notes for an overview of current Python support.
Note: Python support is still Beta. In particular there is a known issue in this release where running python scripts in ScriptRunner leaves zombie processes in the openc3-cosmos-script-runner-api container. This is fixed in the next release.
New option to not set bucket policy
A new environment variable named OPENC3_NO_BUCKET_POLICY is now available that prevents the default behavior of setting the tools bucket to public read at startup. (Note: The tools bucket still needs to be public read, but this allows for the bucket being setup manually and COSMOS not having permission to change bucket policy).
Added information for upgrading to Enterprise Edition
Several locations now have information on how to upgrade to Enterprise. Thank you for supporting OpenC3 by being an Enterprise customer! Additionally, Calendar is now limited to 1 Timeline, and Autonomic is limited to 10 triggers in open source edition.
All Pull Requests in this Release
- Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.8.8 by @dependabot in #772
- Bump actions/setup-python from 3 to 4 by @dependabot in #771
- Bump certifi from 2023.5.7 to 2023.7.22 in /openc3/python by @dependabot in #768
- Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot in #780
- Python packets by @jmthomas in #770
- Add enterprise upgrade dialog by @jmthomas in #779
- Support not setting bucket policy by @ryanmelt in #781
- Dependencies by @jmthomas in #782
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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.10.0
OpenC3 COSMOS 5.10.0 - Modern, Production Ready, Command and Control
Welcome to OpenC3 COSMOS 5.10.0!
Python in Script Runner!
This is our first release that includes Python support! You can now run Python (or Ruby) scripts from ScriptRunner and use most of our scripting APIs from Python.
Whats Ready to Try Out With Python:
- openc3 python package published to PyPi
- Cmd/Tlm Apis
- Wait/Check Apis
- Stash Api
- Metadata Api
- Screens Api
- Line by line highlighting in ScriptRunner
- Exception catching in ScriptRunner
What's Not Done Yet for Python:
- Suite Runner Support
- Redis Cluster Support (Enterprise Only Feature)
- GCP Bucket Support (Enterprise Only Feature)
- Some other APIs like plugins
- Python Based Interfaces
- Python Based Microservices
- Python Based Targets
We consider the current release to be at a Beta level - Full Python support is scheduled to be completed by the end of September. Try it out and let us know what you think!
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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.9.1
OpenC3 COSMOS 5.9.1 - Modern, Production Ready, Command and Control
Welcome to OpenC3 COSMOS 5.9.1!
This is a performance focused patch release that improves our API performance, particularly for get_tlm_values which is the primary API used by telemetry screens, and any queries that involve the LATEST packet.
Bug Fixes
- Opening a script from a telemetry screen will now properly display suiterunner controls (or not)
All Pull Requests in this Release
- Bump semver from 6.3.0 to 6.3.1 in /playwright by @dependabot in #742
- Change get_target_list to get_target_names by @jmthomas in #739
- Improve screen api performance by @ryanmelt in #748
- Prevent loading previous script on script run by @ryanmelt in #749
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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.9.0
OpenC3 COSMOS 5.9.0 - Modern, Production Ready, Command and Control
Welcome to OpenC3 COSMOS 5.9.0!
Autonomic is out of Beta!
Autonomic, our built-in automation tool, is out of beta! Autonomic provides an easy user driven mechanism for defining triggers and reactions. You can easily design a lights out system to handle different events and automatically send a command or run a script in response. For example, whenever a specific telemetry point gets above a certain value, run a script.
Tool Generators - Vue, Angular, React, and Svelte
Our openc3cli generator now supports generating tools across four different frontend frameworks. We have tool templates available for Vue, Angular, React, and Svelte.
Playwright tests are now bundled in the main cosmos repo
This change couples the playwright tests to specific versions and makes going back and testing a version much easier.
New build_command API
A new build_command API has been added that provides a mechanism to have COSMOS build the binary version of a command for you from a script. You can then use this binary data to build command tables or for other purposes.
Enabled Redis IO Threading
We have enabled Redis IO threading in the Redis configuration files. This should provide up to a 2x performance boost for Redis (and COSMOS).
Other Improvements
- Added a NotFound component to show on unknown tool routes
- Updated load/save configurations between tools to be consistent
- Limits Monitor tabs removed and now everything is on a single page
- Show spinner while file open dialog is loading
- Log messages severity levels mapped to AstroUI levels
- Various UI improvements
Bug Fixes
- Fixed code not being instrumented properly in scripts with multiple function definitions and multiline strings
- Fix TlmGrapher graphs after changing the end_time
- Fix limits_bar widget when yellow limit equaled red limit
- ScriptRunner buttons are now disabled until the script is fully started
- Tlm Screens now better handle errors and show if a screen is broken
All Pull Requests in this Release
- Add build_command to script/commands by [#691](@jmthomas in #691)
- Configure frontend during script start by @jmthomas in #690
- Add not found component by @jmthomas in #695
- Autonomic improvements by @jmthomas in #696
- Make load/save config consistent by @jmthomas in #700
- Better handle bucket require load failures by @jmthomas in #711
- Move playwright into main repo by @jmthomas in #712
- Bump json5 from 2.2.1 to 2.2.3 in /playwright by @dependabot in #714
- detect scope for bucket load by @ryanmelt in #693
- Add tool generators by @ryanmelt in #708
- enable redis threading by @ryanmelt in #725
- Remove tabs in LimitsMonitor by @jmthomas in #723
- Limitsbar show no yellow if yellow == red by @jmthomas in #718
- Better handle screen tlm request timeouts by @jmthomas in #720
- Fix TlmGrapher end time by @jmthomas in #722
- Add spinner overlay to file load save dialog by @jmthomas in #724
- Consolidate config and add reset by @jmthomas in #713
- Map errors to Astro notification levels by @jmthomas in #726
- Use Ace for cmd sender history by @jmthomas in #728
- Collapsible TlmGrapher controls by @jmthomas in #727
- Put Script Runner controls in a card by @jmthomas in #729
- Move PacketViewer chooser into v-card by @jmthomas in #730
- Make TlmViewer controls collapsible by @jmthomas in #731
- Data Extractor and Data Viewer UI by @jmthomas in #732
- Unify utilities UI by @jmthomas in #733
- Dependencies by @jmthomas in #734
- Fix Ruby lex indent logic by @ryanmelt in #737
- Remove playwright enterprise by @jmthomas in #735
- Fix race condition in Autonomic by @jmthomas in #738
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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.8.1
OpenC3 COSMOS 5.8.1 - Modern, Production Ready, Command and Control
Welcome to OpenC3 COSMOS 5.8.1!
Alpine 3.18.0 with Ruby 3.2 and Python 3.11.3
This releases updates the Alpine linux version to 3.18.0. With this comes an upgrade from Ruby 3.1 to Ruby 3.2. Not much changes with Ruby 3.2, but one important detail is that the deprecated Dir.exists?
and File.exists?
methods have been removed (use Dir.exist?
and File.exist?
instead). Note also this is our first release that bundles the Python interpreter... more to come soon! Also, ruby's httpclient library was replaced with Faraday, because httpclient is not being maintained.
Greatly improved script instrumentation performance (100x)
Starting scripts including using require_utility and load_utility are now 100x faster than in COSMOS 5.6.0 where we improved the number of cases handled by instrumentation, but introduced a performance regression.
Added the ability to browse volumes in BucketExplorer
Just add an environment variables like OPENC3__name__VOLUME set to the path of the volume. They can then be browsed and modified from BucketExplorer just like buckets!
New new bucket_load library
Allow for custom microservices to require target libraries just like ScriptRunner scripts. This modifies the Ruby require code to look in buckets for files if they aren't found locally.
require 'openc3/utilities/bucket_require'
$openc3_scope = 'DEFAULT' # Required until 5.8.2 release
require 'INST/procedures/utilities/collect.rb'
Other Improvements
- The raw dialog is now placed higher to allow for seeing more beneath it
- Handbook creator now displays ID values
- Screen Errors during plugin installs are now warnings and not fatal
- get_limits API now supports LATEST packet name
- BufferedPacketLogWriter updated to dump allow contents to files when a new file is created.
- New build_command API (only available from Javascript so far).
Bug Fixes
- Fix TlmViewer MATRIXBYCOLUMNS layout
- Fix Plugin install diffs for changes at beginning and end of file
- Changed microservices were formerly killed but not restarted properly
All Pull Requests in this Release
- Alpine 3.18.0 and test ruby 3.2 by [#659](@jmthomas in #659)
- Warn on screen ERB error by @jmthomas in #677
- Force raw dialog to top of window by @jmthomas in #675
- Add ID Value to handbook output by @jmthomas in #674
- Fix matrix layout, default 0px margin by @jmthomas in #673
- Ace diff by @jmthomas in #672
- Update BufferedPacketLogWriter to empty buffer when closing file by @ryanmelt in #670
- Bucket load by @ryanmelt in #680
- Implement build_command by @jmthomas in #676
- Browse volumes by @jmthomas in #678
- Instrumentation performance by @ryanmelt in #684
- Bump dependencies by @jmthomas in #685
- faraday has no reset_all, use close by @ryanmelt in #686
- Allow LATEST in get_limits by @jmthomas in #683
- Properly restart changed microservices by @ryanmelt in #687
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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