OpenC3 COSMOS 5.8.1 Released

OpenC3 COSMOS 5.8.1 - Modern, Production Ready, Command and Control

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 OPENC3nameVOLUME 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

  1. The raw dialog is now placed higher to allow for seeing more beneath it
  2. Handbook creator now displays ID values
  3. Screen Errors during plugin installs are now warnings and not fatal
  4. get_limits API now supports LATEST packet name
  5. BufferedPacketLogWriter updated to dump allow contents to files when a new file is created.
  6. New build_command API (only available from Javascript so far).

Bug Fixes

  1. Fix TlmViewer MATRIXBYCOLUMNS layout
  2. Fix Plugin install diffs for changes at beginning and end of file
  3. 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
  • 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 support@openc3.com.

Thanks!

Full Changelog: Changelog

OpenC3 COSMOS 5.7.2 Released

OpenC3 COSMOS 5.7.2 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.7.2!

This is just a minor release primarily to sync Base and Enterprise versions before the upcoming 5.8.0 release. It includes one update to support styling of buttons in COSMOS tool dialogs.

All Pull Requests in this Release

  • dialog ok button styles by @jmthomas in #661

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.7.0 Released

OpenC3 COSMOS 5.7.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.7.0!

DataViewer Components

DataViewer is now customizable with custom components. Add your own DataViewer widgets to display textual data for your targets! See the demo plugin for examples.

SLIP and COBS Protocols

New packet delineation protocols that have historically been used with serial interfaces.

New download_file script method

Allows for easily downloading files from the browser in ScriptRunner.

Metadata Improvements

Viewing, Editing, and Creating Metadata is now greatly improved

Interface Modifiers

Interfaces (and Routers) can now take most of the same configuration options as microservices to allow for customizations such as setting specific environment variables for an interface.

Other Interesting Changes

  1. Graphs now pause when you zoom in
  2. TableManager can now handle files with names different than the definition names
  3. ValueWidgets in Telemetry Screens are now better justified

Important Bug Fixes

  1. ScriptRunner could write over original script with a subscript due to an autosave bug while running
  2. TlmViewer width subsettings fixed

All Pull Requests in this Release

  • Slip protocol by @ryanmelt in #634
  • Do not set width if subsetting given by @jmthomas in #629
  • Show completed scripts when running script not found by @jmthomas in #630
  • COBS Protocol by @ryanmelt in #636
  • Improve COSMOS 4 migration by @jmthomas in #632
  • Pause graph when clicking by @jmthomas in #631
  • Table lookup matching definitions and then ask user by @jmthomas in #633
  • Justify telemetry viewer widgets by @jmthomas in #635
  • Limits monitor layout issues by @jmthomas in #640
  • Add operator shutdown hook by @ryanmelt in #643
  • Disable saving while running and fix filename dropdown by @jmthomas in #651
  • Add download_file API by @jmthomas in #648
  • Dataviewer components by @jmthomas in #642
  • Metadata by @jmthomas in #655
  • Interface modifiers and other fixes by @ryanmelt in #656
  • Update javascript dependencies by @jmthomas in #658

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.6.1 Released

OpenC3 COSMOS 5.6.1 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.6.1!

This is a quick bug fix release to handle an issue users had upgrading from 5.5.x to 5.6.0. Please skip 5.6.0 and upgrade directly to this release. See the 5.6.0 release notes for the major new features in 5.6.x.

Important Migration Note from 5.5.x

TlmViewer widgets had to be updated to support opening screens from ScriptRunner which caused a breaking change for any plugins containing a custom widget. Plugins with a custom widget will need to update their package.json file to use @openc3/tool-common version 5.6.0 (or later), and be rebuilt/reinstalled.

Important Bug Fixes

  1. The migration script from 5.5.x to 5.6.0 was failing
  2. The block widget now works correctly

All Pull Requests in this Release

  • Fix BlockWidget and update screen by @jmthomas in #618
  • Combine log migrations by @jmthomas in #626

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.6.0 Released

OpenC3 COSMOS 5.6.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.6.0!

This release brings some great new features, and also includes some important bug fixes. Everyone is encouraged to upgrade.

Important Migration Note

TlmViewer widgets had to be updated to support opening screens from ScriptRunner which caused a breaking change for any plugins containing a custom widget. Plugins with a custom widget will need to update their package.json file to use @openc3/tool-common version 5.6.0 (or later), and be rebuilt/reinstalled.

Open Telemetry Screens in Script Runner

You can now open telemetry screens in ScriptRunner! Either existing screens or using the local_screen feature you can define a unique screen right from your script.

display_screen("INST", "ADCS")
wait(3)
clear_screen("INST", "ADCS")
wait(3)
display_screen("INST", "IMAGE")
wait(3)
clear_all_screens()
wait(3)
definition = '
SCREEN AUTO AUTO 1.0

VERTICALBOX "Test Screen"
  LABELVALUE INST HEALTH_STATUS TEMP1
  LABELVALUE INST HEALTH_STATUS RECEIVED_TIMEFORMATTED WITH_UNITS 30
END
'
local_screen("TEST", definition)

Widget Generator

Our plugin generators now support custom widgets. Run with: openc3.sh cli generate widget MyWidget

Diff plugin.txt on Plugin Upgrades

Now if you upgrade a plugin and the plugin.txt file was changed, you will be presented with a diff interface that shows the changes and allows you to pick which lines you want to keep.

Install Plugins and Gems from the command line

The openc3cli command has been updated to support loading plugins and gems from your host machine. You can use like follows:

gem install openc3
openc3cli load /path/to/myplugin.gem
openc3cli unload myplugin.gem__12345667
openc3cli geminstall my.gem
openc3cli gemuninstall my.gem

log_message parameter added to cmd() apis

cmd() can now take an optional keyword argument called log_message that allows you to optionally not have a command be printed into the log messages. This is useful if you are frequently sending a command or at a high rate, and don’t want to spam the log messages. Note: All commands are always logged to our packet logs.

TlmGrapher Show Limits Updated

TlmGrapher Show Limits has been updated to color in the background for each section of limits. This makes the limits ranges much easier to see.

CRC8 Code

We now ship code to perform CRC8 calculations, on top of our existing CRC16, CRC32, and CRC64 functionality.

Important Bug Fixes

  1. get_cmd_value and get_cmd_time now work correctly
  2. The details dialog now works correctly with DERIVED items
  3. Script instrumentation now handles more complicated cases with lots of newlines
  4. Fixed run_script and the other script apis from Ruby
  5. TableManager now properly formats binary fields
  6. connect_interface now works correctly when given parameters
  7. inject_tlm now handles packets with a PACKET_TIME
  8. Fix target_index in packet log files

All Pull Requests in this Release

  • float screens by @ryanmelt in #550
  • Fix get_cmd_value and get_cmd_time by @ryanmelt in #551
  • local screens and screen values by @ryanmelt in #552
  • LOG_STREAM instead of LOG_RAW by @jmthomas in #540
  • crc8 by @ryanmelt in #563
  • Add docker network to scripts by @ryanmelt in #562
  • Generate widgets by @jmthomas in #557
  • Derived details by @jmthomas in #575
  • Improve instrumentation by @ryanmelt in #568
  • Validate built gem by @jmthomas in #577
  • CmdSender history monospace, Script Report, doc updates by @jmthomas in #574
  • Fix run_script by @jmthomas in #591
  • Add target folder to load path by @ryanmelt in #610
  • Color the limits zones in TlmGrapher by @jmthomas in #599
  • Use VWidget to format TableItem by @jmthomas in #601
  • Fix connect_interface with params by @jmthomas in #604
  • Move limits set to LimitsMonitor and fix limitsbar by @jmthomas in #606
  • Remove DONT_LOG and log from interface_model by @jmthomas in #605
  • Cleanup logger as debug rather than info by @jmthomas in #611
  • Force write_timeout to value and update docs by @jmthomas in #603
  • Don’t compress txt files by @jmthomas in #602
  • Add log_message parameter to cmd() by @jmthomas in #612
  • Diff plugin.txt on upgrade by @jmthomas in #607
  • Ace edit json dialog and redis by @jmthomas in #608
  • Dependencies by @jmthomas in #613
  • inject_tlm performed by microservices by @ryanmelt in #614
  • Command line plugin and gem install/uninstall outside cluster by @ryanmelt in #615
  • fix target_index in packet log writer by @ryanmelt in #617

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.5.2 Released

OpenC3 COSMOS 5.5.2 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.5.2!

Enhanced Local Mode

Local mode now captures tools configurations and global settings. These values are loaded into the system during init. Note that these files are written to the local volume as they are changed, but are only synced back to the server on a run of the init container.

Docker Compose V2

We’ve updated our scripts to use “docker compose” instead of “docker-compose” by default. On linux it will fall back to “docker-compose” if “docker compose” is not available.

TlmGrapher Show Limits

TlmGrapher can now include horizontal lines indicating the values of limits for a specific item on graphs.

Multiselect Combobox for Scripts

The combo_box() script method can now support multiselect returning an array of selections.

answer = combo_box("This is a multi-select combo box", 'one', 'two', 'three', multiple: true)

Improved Screen Editing Autocomplete

Fixed some issues with autocomplete in the built-in screen editor.

All Pull Requests in this Release

  • Render errors on plugin install by @jmthomas in #527
  • Allow multiselect by @jmthomas in #526
  • Change include_head to metadata by @jmthomas in #535
  • Save and load local tool config by @jmthomas in #530
  • Bump @sideway/formula from 3.0.0 to 3.0.1 in /openc3-cosmos-init/plugins by @dependabot in #541
  • Changes to support external keycloak for enterprise by @ryanmelt in #543
  • Bump webpack from 5.75.0 to 5.76.0 in /openc3-cosmos-init/plugins by @dependabot in #544
  • Bump webpack from 5.75.0 to 5.76.0 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #548
  • Change docker-compose to docker compose by @jmthomas in #537
  • Fix screen keywords, add choice selections, add SETTING by @jmthomas in #545
  • Fix HTTPClient SSL and realm reference by @ryanmelt in #549
  • Allow user to graph limits by @jmthomas in #542

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.5.1 Released

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

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

OpenC3 COSMOS 5.5.0 Released

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

  1. Fixed a bug causing poor performance as soon as you had more than 1000 files in Minio
  2. Fixed an issue where the first script run wouldn’t show up in Completed Scripts
  3. Telemetry items are now case-insensitive in TlmViewer Screens
  4. Several bug fixes in DataExtractor for large queries
  5. 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

OpenC3 COSMOS 5.4.2 Released

OpenC3 COSMOS 5.4.2 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.4.2!

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

OpenC3 COSMOS 5.4.1 Released

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

  • set user for cli by @ryanmelt in #447
  • Fix build_suites and add spec by @jmthomas in #446

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.4.0 Released

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.

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

OpenC3 COSMOS 5.3.0 Released

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

OpenC3 COSMOS 5.2.0 Released

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

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