OpenC3 COSMOS 5.1.1 Released

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

OpenC3 COSMOS 5.1.0 Released

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

OpenC3 5.0.11 Released

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
  • 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/cosmos-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

OpenC3 5.0.10 Released

OpenC3 5.0.10 is here with modular decom!

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

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

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

Key Enhancements

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

Key Bug Fixes

  • Fixed positioning of events in Calendar near Midnight
  • Modular decom by @ryanmelt in #134
  • Fix ruby coverage path by @jmthomas in #131
  • Add flags to upload by @jmthomas in #132
  • Update unit tests by @jmthomas in #147
  • Add filename to Tempfile returned by open_file_dialog by @jmthomas in #148
  • Port param by @jmthomas in #146
  • Add severity level filter to log messages by @jmthomas in #149
  • Add refresh button for scripts by @jmthomas in #150
  • Bump dependencies including Minio by @jmthomas in #151

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 myproject
  • cd myproject
  • Edit the .env file and change OPENC3_TAG to 5.0.10
  • 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

OpenC3 5.0.9 Released

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

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

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

See getting started directions below.

Key Enhancements

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

Key Bug Fixes

  • Numerous fixes to CmdSender - Code now coverage at 94%
  • Fix TlmViewer screen upload
  • Fixed an issue with the Streaming api stopping too early
  • Add util pull and push to ghcr on release by @jmthomas in #69
  • Add api highlighting by @jmthomas in #70
  • Implement additional xtce keywords by @jmthomas in #51
  • Bump alpine to 3.16.2 by @jmthomas in #81
  • Add playwright as submodule by @jmthomas in #82
  • Remove playwright submodule by @jmthomas in #83
  • Upgrade to latest minio by @jmthomas in #85
  • Add symlink to cosmos folder to increase compatibility by @ryanmelt in #92
  • Set tab title to tool name by @jmthomas in #94
  • Full tlm api support by @jmthomas in #90
  • Implement map_target_to_interface by @ryanmelt in #96
  • Suite detection by @jmthomas in #98
  • Screen autocomplete by @jmthomas in #97
  • Add summary to autocomplete and update summaries by @jmthomas in #100
  • CmdSender state in history and hazardous indicator by @jmthomas in #102
  • Command Sender fix quotes by @jmthomas in #104
  • Fix tlm viewer screen upload by @jmthomas in #114
  • Change scope localstorage by @ryanmelt in #115
  • Implement header based interceptor control by @jmthomas in #123
  • Add coverage upload by @jmthomas in #119
  • Update dependencies by @jmthomas in #126
  • Upgrade to rails 7 by @jmthomas in #127
  • Local mode by @ryanmelt in #103
  • Fix streaming api early stop by @ryanmelt in #128

Prerequisites: Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk

To Run:

  • git clone https://github.com/OpenC3/cosmos-project.git myproject
  • cd myproject
  • Edit the .env file and change OPENC3_TAG to 5.0.9
  • 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

OpenC3 5.0.8 Released

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

Key Enhancements

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

Key Bug Fixes

  • Fixed an issue with the UNKNOWN packet not showing
  • Fixed an issue where the system didn’t wait for a file to be fully available in S3
  • Fixed Cmd/Tlm Packet counts in CmdTlmServer
  • Fixed an issue where the Current Value Table would sometimes say packets don’t exist
  • Create UNKNOWN target in scope_model by @jmthomas in #54
  • Fix linegraph widget and add sparkline by @jmthomas in #52
  • Fix permission names by @ryanmelt in #53
  • ValueWidget telemetry aging by @jmthomas in #58
  • Add put_object_and_check for S3 by @jmthomas in #61
  • Display correct CMD/TLM counts when sorting by @jmthomas in #62
  • Bump pysch, rdoc, dead_end by @jmthomas in #64
  • Add POSITION keyword for tools by @jmthomas in #65
  • Scope updates by @ryanmelt in #63
  • Print operator cmd in log by @jmthomas in #66
  • Update NPM dependencies by @jmthomas in #67
  • Move CvtModel back to Persistent Redis Store by @ryanmelt in #68

Upgrade Notes

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

Prerequisites: Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk

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

Please see our documentation at https://openc3.com

Try it out and let us know what you think! Please submit any issues as Github tickets, or any generic feedback to support@openc3.com.

Thanks!

Full Changelog: Changelog

OpenC3 5.0.7 Released

I’m happy to announce the second release of OpenC3!

Key Enhancements

  • The Admin Plugins Tab now gives feedback on plugin changes and allows downloading any changes made to plugins since they have been installed

Key Bug Fixes

  • Fixed an issue running the ./openc3.sh cli command
  • Docker compose files updated to fix running in rootless Podman (and any SELinux environment)
  • fix typoes and references by @ryanmelt in #40
  • Show modified targets and D/L modifications by @jmthomas in #39
  • Support Selinux by @ryanmelt in #41
  • Check for plugin mods on upgrade and delete by @jmthomas in #42
  • Fixes and openc3cli changes to support enterprise by @ryanmelt in #45
  • Fix deleting plugins with mods by @jmthomas in #46

Prerequisites: Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk

To Run: Download one of the archives (.zip or .tar.gz from the Github release page) Download Release Here Extract the archive somewhere on your host computer 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

OpenC3 5.0.6 Released

I’m happy to announce the first release of OpenC3 and the birth of our new company fully devoted to this technology!

After 16 years of developing Ball Aerospace COSMOS, its creators, Ryan Melton and Jason Thomas, have created a new company called OpenC3 so that we can fully serve this technology and its users.

This release continues where we left off with COSMOS 5.0.5 and is appropriately versioned OpenC3 5.0.6.

This release rebrands the product to OpenC3, has important bug fixes, improves overall performance, and has some great new features including the ability to create telemetry screens directly from the GUI without uploading a new plugin.

Key Enhancements

  • In TlmViewer you can now create screens directly from the user interface
  • Cursors are now more visible
  • All API methods now support different scopes
  • The command line interface now supports running as root for environments where that is needed
  • Better error messages for many errors
  • Conversions now serialize their output data types and sizes

Key Bug Fixes

  • Sending binary blobs in commands now works
  • The Script API now properly enforces authentication
  • Limits Monitor now handles plugins being deleted from under it

All Pull Requests

  • Properly handle JSON for binary data by @ryanmelt in #4
  • Script Authentication Enforced. Added Script Runner Ruby Client. by @ryanmelt in #17
  • Better cleanup and handle limits by @jmthomas in #14
  • Add COSMOS compatibility code by @ryanmelt in #19
  • Identify test reports vs script reports by @jmthomas in #21
  • Optimize Simulated Target for INST by @ryanmelt in #24
  • Switch from openc3 to openc3inc docker namespace by @ryanmelt in #32
  • New screen by @jmthomas in #30
  • script support scope for all methods by @ryanmelt in #33
  • Make cursor white and fix script debug up arrow by @jmthomas in #35
  • Allow –user=root to openc3cli by @jmthomas in #34
  • Better check message and help with NameError by @jmthomas in #36
  • Add converted_ state to as_json by @ryanmelt in #38

Prerequisites:

Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk

Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk

To Run:

  • Download one of the archives (.zip or .tar.gz from the Github release page) Download Release Here
  • Extract the archive somewhere on your host computer
  • 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: https://github.com/OpenC3/cosmos/compare/v5.0.5…v5.0.6