Releases: OpenC3/cosmos
v5.5.1
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
- Multiple TlmViewer Widgets improved and bugs fixed
All Pull Requests in this Release
- Download plugin by @jmthomas in #513
- Switch Traefik to HTTP endpoint for dynamic config by @ryanmelt in #515
- Add new test suite option by @jmthomas in #514
- Document all widgets, fix layout and setting issues by @jmthomas in #512
- Secrets update by @ryanmelt in #516
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.5.0
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
- Fixed a bug causing poor performance as soon as you had more than 1000 files in Minio
- Fixed an issue where the first script run wouldn't show up in Completed Scripts
- Telemetry items are now case-insensitive in TlmViewer Screens
- Several bug fixes in DataExtractor for large queries
- Starting using Ruby resolv-replace to remove DNS errors in Alpine
All Pull Requests in this Release
- Add additional buckets to .env file by @jmthomas in #459
- Fix various regex issues by @jmthomas in #462
- add resolv-replace to help with alpine dns by @ryanmelt in #463
- Implement upload and delete file by @jmthomas in #466
- Improve Script running/completed scripts by @jmthomas in #469
- Add IRB to cli options by @jmthomas in #470
- Upgrade public js/css automatically by @jmthomas in #472
- Add env vars to toggle default tool installation by @wiatrp in #473
- Support dynamic routes in Traefik for microservices by @ryanmelt in #471
- Data extractor updates by @ryanmelt in #476
- Graph reduced by @jmthomas in #480
- Apply global and then script env vars by @jmthomas in #482
- Calendar creation of timelines and events by @jmthomas in #483
- Default various SETTINGS to px by @jmthomas in #484
- Plugin install check existing name by @jmthomas in #487
- Fix data extractor column logic by @ryanmelt in #488
- Websocket interface by @ryanmelt in #486
- Support rejecting commands from interface / protocols without disconnecting interface by @ryanmelt in #490
- Bump alpine, traefik and break up package_audit by @jmthomas in #492
- Fix TlmGrapher route url parsing by @jmthomas in #498
- Fix warnings and code scan by @jmthomas in #499
- Add optional flag to return object metadata by @wiatrp in #505
- Bridge updates for bridgegem system by @ryanmelt in #504
- Enforce upper case in cmd/tlm api by @jmthomas in #503
- Add NEEDS_DEPENDENCIES keyword for plugins by @jmthomas in #495
- TlmGrapher improvements by @ryanmelt in #508
- Implement generators by @jmthomas in #502
- Target file improvements by @jmthomas in #509
- Init all defined buckets on startup by @wiatrp in #511
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.4.2
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
- Script overrides by @jmthomas in #450
- Minio console working by @jmthomas in #453
- Handle command only target by @ryanmelt in #455
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.4.1
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:
- 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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.4.0
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
- Remove UNKNOWN from target chooser by @jmthomas in #373
- CmdSender display range, set default state value by @jmthomas in #377
- Save graph start/stop times in config by @jmthomas in #378
- Hide ignored, derived last, and * derived by @jmthomas in #374
- Fix unknown in demo by @jmthomas in #380
- Fix github release if checks by @ryanmelt in #381
- Default PV rows to 20, max 1000, store choice to localStorage by @jmthomas in #379
- Support categories in AppNav by @jmthomas in #384
- Data Extractor DataTable instead of list by @jmthomas in #387
- Initial metrics framework by @ryanmelt in #389
- Bucket Explorer by @jmthomas in #388
- Various fixes found during tool documentation updates by @jmthomas in #397
- Check for bad value_type on packet read_item by @jmthomas in #395
- Minor bucket updates by @jmthomas in #407
- Updates for podman permissions by @ryanmelt in #408
- Remove initialize from Suite and Group by @jmthomas in #399
- Add line no & usage info to plugin error by @jmthomas in #401
- Describe changed plugin.txt on install by @jmthomas in #423
- Add first last page options by @jmthomas in #418
- Test trivy scan by @jmthomas in #410
- Always save when starting script, clear breakpoints by @jmthomas in #416
- Only enable Step while running, add step_mode, run_mode, show_backtrace by @jmthomas in #421
- Clamav Scans by @ryanmelt in #427
- Trivy scan local container builds by @jmthomas in #429
- Force install from Plugins tab, add MIT license to plugin template by @jmthomas in #426
- Prompt for cleanup by @jmthomas in #422
- Add :z and OPENC3_REGISTRY to cli by @jmthomas in #417
- Bump json5 from 1.0.1 to 1.0.2 in /openc3-cosmos-init/plugins by @dependabot in #433
- Bump decode-uri-component from 0.2.0 to 0.2.2 in /openc3-cosmos-init/plugins by @dependabot in #432
- Bump json5 from 1.0.1 to 1.0.2 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #431
- Update dependencies by @jmthomas in #434
- Enable limits from DetailsDialog by @jmthomas in #430
- Support non-1000 user ids on linux with local mode by @ryanmelt in #437
- Add inject_tlm to javascript api by @ryanmelt in #438
- break out reducer microservice by default by @ryanmelt in #439
- Easier to click nav by @ryanmelt in #441
- Update demo microservices to inherit Microservice by @jmthomas in #440
- Simplify DEMO further with PORT by @jmthomas in #442
- Make sure other tools have offline access by @ryanmelt in #443
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.3.0
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
- override_tlm sets all by default, works across processes by @jmthomas in #343
- Fix CVT override with full coverage by @jmthomas in #345
- Display binary encoded strings and BLOCK data by @jmthomas in #346
- Secrets, MQTT interface, interface & protocol cmds by @ryanmelt in #347
- Bump ace and fix VWidget by @jmthomas in #348
- Dont identify_and_define for StreamingApi by @ryanmelt in #349
- Enforce require only once by @ryanmelt in #350
- Add get_target_interfaces by @jmthomas in #352
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.2.0
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
- Disallow target_name & microservice_name as VARIABLE names by @jmthomas in #278
- Support newlines in script dialogs by @jmthomas in #279
- Only display targets with screens by @jmthomas in #283
- Tlm viewer env to scripts by @jmthomas in #284
- Add script filename to script runner log message filename by @jmthomas in #289
- Support variable cmd timeouts by @jmthomas in #291
- Change hazardous error code by @jmthomas in #292
- Switch from cli using base to operator by @jmthomas in #298
- Stash api by @jmthomas in #300
- Redis tab improvements by @jmthomas in #306
- Map targets to multiple interfaces and Migrations by @ryanmelt in #308
- Improve cache flags. Proper id on auth errors by @ryanmelt in #309
- Multi microservice by @ryanmelt in #311
- Add dialog validate by @jmthomas in #312
- Validate screen names and gem install local by @jmthomas in #313
- Update SETTING documentation by @jmthomas in #316
- Apply global subsettings along with global settings by @jmthomas in #318
- Disable message log for command states by @jmthomas in #319
- Support string concat in config files by @jmthomas in #315
- Set OPENC3_CLOUD default as local by @jmthomas in #320
- Fix packet time vs received time and remove dead code by @jmthomas in #321
- Bump dependencies by @jmthomas in #322
- offline access token, logger per microservice, no-store by @ryanmelt in #324
- Fix removed TIMEFORMATTED and ace build by @jmthomas in #325
- Configurable buffer depth. Out of order error instead of new file by @ryanmelt in #327
- Reducer nil checks by @ryanmelt in #329
- Limit total in list_files_before_time by @jmthomas in #326
- No to_json in as_json by @ryanmelt in #331
- Change default command buffer depth to 5 by @ryanmelt in #332
- Don't filter scripts to lib and procedures by @jmthomas in #335
- Better Checking for good offline_access token and clearing if bad by @ryanmelt in #336
- Add Reducer check for file retrieve by @ryanmelt in #337
- Fix reducer unit test by @jmthomas in #338
- Add variable File Suffix to files_between_time by @ryanmelt in #339
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.1.1
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:
- 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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.1.0
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
- Add newlines to script runner logs by @jmthomas in #190
- Add params to connect_interface by @jmthomas in #192
- Set screen min height and width by @jmthomas in #193
- Stale indicator by @jmthomas in #195
- Reduce process output by @jmthomas in #199
- Implement OpenTelemetry tracing by @ryanmelt in #194
- Set received count in interface_microservice and inject_tlm by @jmthomas in #197
- Create new screen based on existing packet by @jmthomas in #204
- Allow user editing graph colors by @jmthomas in #202
- Improve package_audit and bump deps by @jmthomas in #208
- Use redis 5 gem by @jmthomas in #211
- Add QUIET command to demo by @jmthomas in #210
- Extract S3 code to Bucket by @jmthomas in #217
- Fix xtce_converter by @jmthomas in #219
- Fix bucket ENV, io_multiplexer, deploy script by @jmthomas in #223
- Bump deps by @jmthomas in #232
- Only publish 8000 chars to ScriptRunner log by @jmthomas in #236
- Remove admin Download button by @jmthomas in #237
- Indicate max notifications reached by @jmthomas in #238
- Remove procedures from gemspec by @jmthomas in #239
- Fix for packets not received by @jmthomas in #240
- Update scripts by @jmthomas in #233
- Target logging, Streaming API cleanup, Improved Log Message Component by @ryanmelt in #227
- Remove GEMS bucket. GemModel directly uses /gems volume instead by @ryanmelt in #241
- Fix reduction and logging extra nulls by @ryanmelt in #242
- Support for https and cloud storage by @jmthomas in #243
- Rebranding and license by @ryanmelt in #244
- Fix edit screen and 0 values by @jmthomas in #250
- Add open and close methods for screen by @jmthomas in #251
- Fix packet decom of array data by @jmthomas in #247
- Fix width height issues in widgets by @jmthomas in #255
- Fully functioning limits api distributed to decom microservice by @ryanmelt in #254
- Ensure graph color on initial items by @jmthomas in #256
- Bump loader-utils from 1.4.0 to 1.4.2 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #258
- Bump terser from 5.12.1 to 5.15.1 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #261
- Move get_packets blocking to client by @ryanmelt in #257
- Add OPENC3_DEPENDENCY_REGISTRY for non openc3 containers by @jmthomas in #262
- Fix screens, add closeAll, fix scroll widget by @jmthomas in #264
- Fix router/interface build with new params by @jmthomas in #265
- Use buffered packet log writer for log microservice by @ryanmelt in #263
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 support@openc3.com.
Thanks!
Full Changelog: Changelog
v5.0.11
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
- Add all targets to target packet item chooser by @ryanmelt in #156
- require tempfile core ext by @ryanmelt in #166
- Refresh tokens 60 seconds before expire by @ryanmelt in #165
- Remove astro-badge by @jmthomas in #167
- Display and allow deleting script temp files by @jmthomas in #152
- Break screens into own controller by @jmthomas in #163
- map_target_to_interface updates by @ryanmelt in #170
- Make Aws autoload only apply to S3 by @ryanmelt in #169
- read client count from function rather than variable by @ryanmelt in #168
- Bump deps, minio, traefik and add scripts_controller_spec by @jmthomas in #175
- Fix put_target_file with IO and local mode by @ryanmelt in #176
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/openc3-project.git myproject
- cd myproject
- Edit the .env file and change OPENC3_TAG to 5.0.11
- 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 support@openc3.com.
Thanks!
Full Changelog: Changelog