openc3 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Guardfile +0 -0
- data/LICENSE.md +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/bin/openc3cli +138 -0
- data/bin/pipuninstall +0 -0
- data/bin/uvinstall +10 -3
- data/data/config/_array_params.yaml +0 -0
- data/data/config/_canvas_values.yaml +0 -0
- data/data/config/_graph_params.yaml +0 -0
- data/data/config/_id_items.yaml +0 -0
- data/data/config/_id_params.yaml +0 -0
- data/data/config/_interfaces.yaml +0 -0
- data/data/config/_items.yaml +0 -0
- data/data/config/_params.yaml +0 -0
- data/data/config/command.yaml +0 -0
- data/data/config/command_modifiers.yaml +2 -0
- data/data/config/command_telemetry.yaml +0 -0
- data/data/config/conversions.yaml +0 -0
- data/data/config/graph_settings.yaml +0 -0
- data/data/config/interface_modifiers.yaml +103 -1
- data/data/config/item_modifiers.yaml +0 -0
- data/data/config/microservice.yaml +5 -2
- data/data/config/param_item_modifiers.yaml +0 -0
- data/data/config/parameter_modifiers.yaml +0 -0
- data/data/config/plugins.yaml +0 -0
- data/data/config/processors.yaml +0 -0
- data/data/config/protocols.yaml +0 -0
- data/data/config/screen.yaml +0 -0
- data/data/config/settings.yaml +0 -0
- data/data/config/table_manager.yaml +0 -0
- data/data/config/table_parameter_modifiers.yaml +0 -0
- data/data/config/target.yaml +0 -0
- data/data/config/target_config.yaml +0 -0
- data/data/config/telemetry.yaml +0 -0
- data/data/config/telemetry_modifiers.yaml +2 -0
- data/data/config/tool.yaml +0 -0
- data/data/config/unknown.yaml +0 -0
- data/data/config/widgets.yaml +6 -0
- data/data/xtce_schemas/SpaceSystem_20180204.xsd +0 -0
- data/data/xtce_schemas/xml.xsd +0 -0
- data/ext/openc3/ext/array/array.c +0 -0
- data/ext/openc3/ext/array/extconf.rb +0 -0
- data/ext/openc3/ext/buffered_file/buffered_file.c +0 -0
- data/ext/openc3/ext/buffered_file/extconf.rb +0 -0
- data/ext/openc3/ext/burst_protocol/burst_protocol.c +6 -0
- data/ext/openc3/ext/burst_protocol/extconf.rb +0 -0
- data/ext/openc3/ext/config_parser/config_parser.c +0 -0
- data/ext/openc3/ext/config_parser/extconf.rb +0 -0
- data/ext/openc3/ext/crc/crc.c +0 -0
- data/ext/openc3/ext/crc/extconf.rb +0 -0
- data/ext/openc3/ext/openc3_io/extconf.rb +0 -0
- data/ext/openc3/ext/openc3_io/openc3_io.c +0 -0
- data/ext/openc3/ext/packet/extconf.rb +0 -0
- data/ext/openc3/ext/packet/packet.c +0 -0
- data/ext/openc3/ext/platform/extconf.rb +0 -0
- data/ext/openc3/ext/platform/platform.c +4 -1
- data/ext/openc3/ext/polynomial_conversion/extconf.rb +0 -0
- data/ext/openc3/ext/polynomial_conversion/polynomial_conversion.c +0 -0
- data/ext/openc3/ext/string/extconf.rb +0 -0
- data/ext/openc3/ext/string/string.c +0 -0
- data/ext/openc3/ext/structure/structure.c +49 -17
- data/ext/openc3/ext/tabbed_plots_config/extconf.rb +0 -0
- data/ext/openc3/ext/tabbed_plots_config/tabbed_plots_config.c +0 -0
- data/ext/openc3/ext/telemetry/extconf.rb +0 -0
- data/ext/openc3/ext/telemetry/telemetry.c +0 -0
- data/lib/cosmos.rb +0 -0
- data/lib/cosmosc2.rb +0 -0
- data/lib/openc3/accessors/accessor.rb +0 -0
- data/lib/openc3/accessors/binary_accessor.rb +63 -9
- data/lib/openc3/accessors/cbor_accessor.rb +0 -0
- data/lib/openc3/accessors/form_accessor.rb +0 -0
- data/lib/openc3/accessors/html_accessor.rb +0 -0
- data/lib/openc3/accessors/http_accessor.rb +0 -0
- data/lib/openc3/accessors/json_accessor.rb +0 -0
- data/lib/openc3/accessors/template_accessor.rb +0 -0
- data/lib/openc3/accessors/xml_accessor.rb +0 -0
- data/lib/openc3/accessors.rb +0 -0
- data/lib/openc3/api/README.md +0 -0
- data/lib/openc3/api/api.rb +0 -0
- data/lib/openc3/api/authorized_api.rb +0 -0
- data/lib/openc3/api/calendar_api.rb +0 -0
- data/lib/openc3/api/cmd_api.rb +1 -1
- data/lib/openc3/api/config_api.rb +0 -0
- data/lib/openc3/api/interface_api.rb +0 -0
- data/lib/openc3/api/limits_api.rb +0 -0
- data/lib/openc3/api/metrics_api.rb +1 -1
- data/lib/openc3/api/offline_access_api.rb +1 -1
- data/lib/openc3/api/router_api.rb +0 -0
- data/lib/openc3/api/settings_api.rb +22 -18
- data/lib/openc3/api/stash_api.rb +1 -1
- data/lib/openc3/api/target_api.rb +0 -0
- data/lib/openc3/api/tlm_api.rb +4 -3
- data/lib/openc3/bridge/bridge.rb +0 -0
- data/lib/openc3/bridge/bridge_config.rb +0 -0
- data/lib/openc3/bridge/bridge_interface_thread.rb +0 -0
- data/lib/openc3/bridge/bridge_router_thread.rb +0 -0
- data/lib/openc3/ccsds/ccsds_packet.rb +0 -0
- data/lib/openc3/ccsds/ccsds_parser.rb +0 -0
- data/lib/openc3/config/config_parser.rb +78 -17
- data/lib/openc3/config/meta_config_parser.rb +0 -0
- data/lib/openc3/conversions/bit_reverse_conversion.rb +0 -0
- data/lib/openc3/conversions/conversion.rb +0 -0
- data/lib/openc3/conversions/generic_conversion.rb +0 -0
- data/lib/openc3/conversions/ip_read_conversion.rb +0 -0
- data/lib/openc3/conversions/ip_write_conversion.rb +0 -0
- data/lib/openc3/conversions/object_read_conversion.rb +0 -0
- data/lib/openc3/conversions/object_write_conversion.rb +0 -0
- data/lib/openc3/conversions/packet_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/packet_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions/polynomial_conversion.rb +0 -0
- data/lib/openc3/conversions/processor_conversion.rb +0 -0
- data/lib/openc3/conversions/received_count_conversion.rb +0 -0
- data/lib/openc3/conversions/received_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/received_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions/segmented_polynomial_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions.rb +0 -0
- data/lib/openc3/core_ext/array.rb +0 -0
- data/lib/openc3/core_ext/binding.rb +0 -0
- data/lib/openc3/core_ext/class.rb +0 -0
- data/lib/openc3/core_ext/exception.rb +0 -0
- data/lib/openc3/core_ext/faraday.rb +0 -0
- data/lib/openc3/core_ext/file.rb +0 -0
- data/lib/openc3/core_ext/io.rb +0 -0
- data/lib/openc3/core_ext/kernel.rb +0 -0
- data/lib/openc3/core_ext/math.rb +0 -0
- data/lib/openc3/core_ext/matrix.rb +0 -0
- data/lib/openc3/core_ext/objectspace.rb +0 -0
- data/lib/openc3/core_ext/openc3_io.rb +0 -0
- data/lib/openc3/core_ext/range.rb +0 -0
- data/lib/openc3/core_ext/socket.rb +0 -0
- data/lib/openc3/core_ext/string.rb +0 -0
- data/lib/openc3/core_ext/stringio.rb +0 -0
- data/lib/openc3/core_ext/tempfile.rb +0 -0
- data/lib/openc3/core_ext/time.rb +0 -0
- data/lib/openc3/core_ext.rb +0 -0
- data/lib/openc3/ext/.keep +0 -0
- data/lib/openc3/interfaces/file_interface.rb +0 -0
- data/lib/openc3/interfaces/http_client_interface.rb +0 -0
- data/lib/openc3/interfaces/http_server_interface.rb +0 -0
- data/lib/openc3/interfaces/interface.rb +5 -4
- data/lib/openc3/interfaces/mqtt_interface.rb +0 -0
- data/lib/openc3/interfaces/mqtt_stream_interface.rb +2 -0
- data/lib/openc3/interfaces/protocols/burst_protocol.rb +27 -0
- data/lib/openc3/interfaces/protocols/cmd_response_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/cobs_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/crc_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/fixed_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/ignore_packet_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/length_protocol.rb +7 -0
- data/lib/openc3/interfaces/protocols/preidentified_protocol.rb +7 -0
- data/lib/openc3/interfaces/protocols/protocol.rb +4 -4
- data/lib/openc3/interfaces/protocols/slip_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/template_protocol.rb +2 -2
- data/lib/openc3/interfaces/protocols/terminated_protocol.rb +0 -0
- data/lib/openc3/interfaces/serial_interface.rb +2 -0
- data/lib/openc3/interfaces/simulated_target_interface.rb +0 -0
- data/lib/openc3/interfaces/stream_interface.rb +0 -0
- data/lib/openc3/interfaces/tcpip_client_interface.rb +2 -0
- data/lib/openc3/interfaces/tcpip_server_interface.rb +0 -0
- data/lib/openc3/interfaces/udp_interface.rb +16 -5
- data/lib/openc3/interfaces.rb +0 -0
- data/lib/openc3/io/buffered_file.rb +0 -0
- data/lib/openc3/io/io_multiplexer.rb +0 -0
- data/lib/openc3/io/json_api.rb +3 -2
- data/lib/openc3/io/json_api_object.rb +0 -0
- data/lib/openc3/io/json_drb.rb +20 -4
- data/lib/openc3/io/json_drb_object.rb +0 -0
- data/lib/openc3/io/json_drb_rack.rb +0 -0
- data/lib/openc3/io/json_rpc.rb +0 -0
- data/lib/openc3/io/posix_serial_driver.rb +0 -0
- data/lib/openc3/io/serial_driver.rb +0 -0
- data/lib/openc3/io/stderr.rb +0 -0
- data/lib/openc3/io/stdout.rb +0 -0
- data/lib/openc3/io/udp_sockets.rb +38 -8
- data/lib/openc3/io/win32_serial_driver.rb +1 -0
- data/lib/openc3/logs/buffered_packet_log_reader.rb +0 -0
- data/lib/openc3/logs/buffered_packet_log_writer.rb +0 -0
- data/lib/openc3/logs/log_writer.rb +0 -0
- data/lib/openc3/logs/packet_log_constants.rb +0 -0
- data/lib/openc3/logs/packet_log_reader.rb +23 -2
- data/lib/openc3/logs/packet_log_writer.rb +5 -0
- data/lib/openc3/logs/stream_log.rb +1 -1
- data/lib/openc3/logs/stream_log_pair.rb +0 -0
- data/lib/openc3/logs/text_log_writer.rb +0 -0
- data/lib/openc3/logs.rb +0 -0
- data/lib/openc3/microservices/cleanup_microservice.rb +0 -0
- data/lib/openc3/microservices/decom_common.rb +0 -0
- data/lib/openc3/microservices/decom_microservice.rb +0 -0
- data/lib/openc3/microservices/interface_decom_common.rb +2 -1
- data/lib/openc3/microservices/interface_microservice.rb +72 -25
- data/lib/openc3/microservices/log_microservice.rb +0 -0
- data/lib/openc3/microservices/microservice.rb +3 -3
- data/lib/openc3/microservices/multi_microservice.rb +1 -1
- data/lib/openc3/microservices/periodic_microservice.rb +2 -2
- data/lib/openc3/microservices/plugin_microservice.rb +0 -0
- data/lib/openc3/microservices/queue_microservice.rb +0 -0
- data/lib/openc3/microservices/router_microservice.rb +0 -0
- data/lib/openc3/microservices/scope_cleanup_microservice.rb +0 -0
- data/lib/openc3/microservices/text_log_microservice.rb +0 -0
- data/lib/openc3/migrations/20220420190000_log_stuff.rb +0 -0
- data/lib/openc3/migrations/20221202214600_add_target_names.rb +0 -0
- data/lib/openc3/migrations/20221210174900_convert_to_multi.rb +0 -0
- data/lib/openc3/migrations/20230915000002_no_scope_log_messages.rb +0 -0
- data/lib/openc3/migrations/20231022000000_tlm_viewer_config.rb +0 -0
- data/lib/openc3/migrations/20241208080000_no_critical_cmd.rb +0 -0
- data/lib/openc3/migrations/20241208080001_no_trigger_group.rb +0 -0
- data/lib/openc3/migrations/20250108060000_news_feed.rb +0 -0
- data/lib/openc3/migrations/20250402000000_periodic_only_default.rb +0 -0
- data/lib/openc3/migrations/20260203000000_remove_store_id.rb +0 -0
- data/lib/openc3/migrations/20260204000000_remove_decom_reducer.rb +0 -0
- data/lib/openc3/migrations/20260701000000_updated_at_to_int.rb +0 -0
- data/lib/openc3/migrations/20260704000000_default_bridge.rb +38 -0
- data/lib/openc3/migrations/20260731000000_system_health_json.rb +11 -0
- data/lib/openc3/models/activity_model.rb +0 -0
- data/lib/openc3/models/auth_model.rb +35 -7
- data/lib/openc3/models/bridge_model.rb +133 -0
- data/lib/openc3/models/config_keyword_model.rb +63 -0
- data/lib/openc3/models/cvt_model.rb +0 -0
- data/lib/openc3/models/db_sharded_model.rb +0 -0
- data/lib/openc3/models/environment_model.rb +0 -0
- data/lib/openc3/models/gem_model.rb +12 -9
- data/lib/openc3/models/host_interface_microservice_model.rb +114 -0
- data/lib/openc3/models/info_model.rb +0 -0
- data/lib/openc3/models/interface_model.rb +178 -19
- data/lib/openc3/models/interface_status_model.rb +0 -0
- data/lib/openc3/models/metadata_model.rb +0 -0
- data/lib/openc3/models/metric_model.rb +0 -0
- data/lib/openc3/models/microservice_model.rb +9 -22
- data/lib/openc3/models/microservice_status_model.rb +0 -0
- data/lib/openc3/models/migration_model.rb +0 -0
- data/lib/openc3/models/model.rb +0 -0
- data/lib/openc3/models/news_model.rb +0 -0
- data/lib/openc3/models/note_model.rb +0 -0
- data/lib/openc3/models/offline_access_model.rb +0 -0
- data/lib/openc3/models/ping_model.rb +0 -0
- data/lib/openc3/models/plugin_model.rb +9 -2
- data/lib/openc3/models/plugin_store_model.rb +0 -0
- data/lib/openc3/models/process_status_model.rb +0 -0
- data/lib/openc3/models/python_package_model.rb +4 -4
- data/lib/openc3/models/queue_model.rb +0 -0
- data/lib/openc3/models/reaction_model.rb +0 -0
- data/lib/openc3/models/reingest_job_model.rb +0 -0
- data/lib/openc3/models/router_model.rb +0 -0
- data/lib/openc3/models/router_status_model.rb +0 -0
- data/lib/openc3/models/scope_model.rb +51 -26
- data/lib/openc3/models/script_engine_model.rb +0 -0
- data/lib/openc3/models/script_status_model.rb +0 -0
- data/lib/openc3/models/secret_model.rb +0 -0
- data/lib/openc3/models/setting_model.rb +546 -3
- data/lib/openc3/models/sorted_model.rb +0 -0
- data/lib/openc3/models/stash_model.rb +0 -0
- data/lib/openc3/models/target_model.rb +30 -25
- data/lib/openc3/models/timeline_model.rb +0 -0
- data/lib/openc3/models/tool_config_model.rb +0 -0
- data/lib/openc3/models/tool_model.rb +1 -0
- data/lib/openc3/models/trigger_group_model.rb +0 -0
- data/lib/openc3/models/trigger_model.rb +20 -0
- data/lib/openc3/models/widget_model.rb +0 -0
- data/lib/openc3/operators/microservice_operator.rb +64 -22
- data/lib/openc3/operators/operator.rb +4 -4
- data/lib/openc3/packets/binary_accessor.rb +0 -0
- data/lib/openc3/packets/command_validator.rb +0 -0
- data/lib/openc3/packets/commands.rb +0 -0
- data/lib/openc3/packets/json_packet.rb +0 -0
- data/lib/openc3/packets/limits.rb +0 -0
- data/lib/openc3/packets/limits_response.rb +0 -0
- data/lib/openc3/packets/packet.rb +4 -0
- data/lib/openc3/packets/packet_config.rb +0 -0
- data/lib/openc3/packets/packet_item.rb +0 -0
- data/lib/openc3/packets/packet_item_limits.rb +0 -0
- data/lib/openc3/packets/parsers/format_string_parser.rb +0 -0
- data/lib/openc3/packets/parsers/limits_parser.rb +0 -0
- data/lib/openc3/packets/parsers/limits_response_parser.rb +0 -0
- data/lib/openc3/packets/parsers/packet_item_parser.rb +0 -0
- data/lib/openc3/packets/parsers/packet_parser.rb +0 -0
- data/lib/openc3/packets/parsers/processor_parser.rb +0 -0
- data/lib/openc3/packets/parsers/state_parser.rb +0 -0
- data/lib/openc3/packets/parsers/xtce_converter.rb +0 -0
- data/lib/openc3/packets/parsers/xtce_parser.rb +0 -0
- data/lib/openc3/packets/structure.rb +7 -1
- data/lib/openc3/packets/structure_item.rb +0 -0
- data/lib/openc3/packets/telemetry.rb +0 -0
- data/lib/openc3/processors/processor.rb +2 -0
- data/lib/openc3/processors/statistics_processor.rb +0 -0
- data/lib/openc3/processors/watermark_processor.rb +0 -0
- data/lib/openc3/processors.rb +0 -0
- data/lib/openc3/script/api_shared.rb +0 -0
- data/lib/openc3/script/autonomic.rb +12 -12
- data/lib/openc3/script/calendar.rb +0 -0
- data/lib/openc3/script/commands.rb +0 -0
- data/lib/openc3/script/critical_cmd.rb +0 -0
- data/lib/openc3/script/exceptions.rb +0 -0
- data/lib/openc3/script/extract.rb +0 -0
- data/lib/openc3/script/limits.rb +0 -0
- data/lib/openc3/script/metadata.rb +0 -0
- data/lib/openc3/script/packages.rb +0 -0
- data/lib/openc3/script/plugins.rb +0 -0
- data/lib/openc3/script/queue.rb +0 -0
- data/lib/openc3/script/screen.rb +0 -0
- data/lib/openc3/script/script.rb +2 -2
- data/lib/openc3/script/script_runner.rb +0 -0
- data/lib/openc3/script/storage.rb +4 -4
- data/lib/openc3/script/suite.rb +0 -0
- data/lib/openc3/script/suite_results.rb +0 -0
- data/lib/openc3/script/suite_runner.rb +26 -0
- data/lib/openc3/script/tables.rb +0 -0
- data/lib/openc3/script/telemetry.rb +9 -3
- data/lib/openc3/script/web_socket_api.rb +218 -145
- data/lib/openc3/script.rb +0 -0
- data/lib/openc3/script_engines/script_engine.rb +0 -0
- data/lib/openc3/streams/mqtt_stream.rb +0 -0
- data/lib/openc3/streams/serial_stream.rb +0 -0
- data/lib/openc3/streams/stream.rb +0 -0
- data/lib/openc3/streams/tcpip_client_stream.rb +0 -0
- data/lib/openc3/streams/tcpip_socket_stream.rb +0 -0
- data/lib/openc3/streams/web_socket_client_stream.rb +0 -0
- data/lib/openc3/subpacketizers/subpacketizer.rb +0 -0
- data/lib/openc3/system/system.rb +0 -0
- data/lib/openc3/system/target.rb +0 -0
- data/lib/openc3/system.rb +0 -0
- data/lib/openc3/tools/cmd_tlm_server/api.rb +0 -0
- data/lib/openc3/tools/cmd_tlm_server/interface_thread.rb +7 -0
- data/lib/openc3/tools/table_manager/table.rb +0 -0
- data/lib/openc3/tools/table_manager/table_config.rb +0 -0
- data/lib/openc3/tools/table_manager/table_item.rb +0 -0
- data/lib/openc3/tools/table_manager/table_item_parser.rb +0 -0
- data/lib/openc3/tools/table_manager/table_manager_core.rb +0 -0
- data/lib/openc3/tools/table_manager/table_parser.rb +0 -0
- data/lib/openc3/tools/test_runner/test.rb +0 -0
- data/lib/openc3/top_level.rb +1 -1
- data/lib/openc3/topics/autonomic_topic.rb +0 -0
- data/lib/openc3/topics/calendar_topic.rb +0 -0
- data/lib/openc3/topics/command_decom_topic.rb +0 -0
- data/lib/openc3/topics/command_topic.rb +0 -0
- data/lib/openc3/topics/config_topic.rb +0 -0
- data/lib/openc3/topics/decom_interface_topic.rb +2 -1
- data/lib/openc3/topics/interface_topic.rb +8 -2
- data/lib/openc3/topics/limits_event_topic.rb +0 -0
- data/lib/openc3/topics/notebook_topic.rb +0 -0
- data/lib/openc3/topics/queue_topic.rb +0 -0
- data/lib/openc3/topics/router_topic.rb +6 -1
- data/lib/openc3/topics/system_events_topic.rb +0 -0
- data/lib/openc3/topics/telemetry_decom_topic.rb +0 -0
- data/lib/openc3/topics/telemetry_topic.rb +0 -0
- data/lib/openc3/topics/timeline_topic.rb +0 -0
- data/lib/openc3/topics/topic.rb +0 -0
- data/lib/openc3/utilities/authentication.rb +4 -4
- data/lib/openc3/utilities/authorization.rb +0 -0
- data/lib/openc3/utilities/aws_bucket.rb +2 -2
- data/lib/openc3/utilities/bucket.rb +1 -1
- data/lib/openc3/utilities/bucket_file_cache.rb +55 -22
- data/lib/openc3/utilities/bucket_require.rb +0 -0
- data/lib/openc3/utilities/bucket_utilities.rb +3 -4
- data/lib/openc3/utilities/cli_generator.rb +0 -0
- data/lib/openc3/utilities/cmd_log.rb +0 -0
- data/lib/openc3/utilities/config_overlay.rb +75 -0
- data/lib/openc3/utilities/cosmos_rails_formatter.rb +0 -0
- data/lib/openc3/utilities/crc.rb +59 -32
- data/lib/openc3/utilities/csv.rb +0 -0
- data/lib/openc3/utilities/ctrf.rb +0 -0
- data/lib/openc3/utilities/env_helper.rb +0 -0
- data/lib/openc3/utilities/local_bucket.rb +0 -0
- data/lib/openc3/utilities/local_mode.rb +32 -6
- data/lib/openc3/utilities/logger.rb +30 -8
- data/lib/openc3/utilities/message_log.rb +0 -0
- data/lib/openc3/utilities/metric.rb +0 -0
- data/lib/openc3/utilities/migration.rb +0 -0
- data/lib/openc3/utilities/open_telemetry.rb +0 -0
- data/lib/openc3/utilities/process_manager.rb +0 -0
- data/lib/openc3/utilities/pypi_url.rb +0 -0
- data/lib/openc3/utilities/python_proxy.rb +0 -0
- data/lib/openc3/utilities/python_venv.rb +135 -0
- data/lib/openc3/utilities/quaternion.rb +0 -0
- data/lib/openc3/utilities/questdb_client.rb +0 -0
- data/lib/openc3/utilities/redis_secrets.rb +0 -0
- data/lib/openc3/utilities/reingest_job.rb +0 -0
- data/lib/openc3/utilities/ruby_lex_utils.rb +0 -0
- data/lib/openc3/utilities/rubygems_url.rb +39 -0
- data/lib/openc3/utilities/running_script.rb +24 -55
- data/lib/openc3/utilities/s3_autoload.rb +5 -5
- data/lib/openc3/utilities/script.rb +12 -8
- data/lib/openc3/utilities/secrets.rb +48 -3
- data/lib/openc3/utilities/simulated_target.rb +0 -0
- data/lib/openc3/utilities/sleeper.rb +0 -0
- data/lib/openc3/utilities/store.rb +0 -0
- data/lib/openc3/utilities/store_autoload.rb +2 -2
- data/lib/openc3/utilities/store_queued.rb +0 -0
- data/lib/openc3/utilities/target_file.rb +18 -1
- data/lib/openc3/utilities/thread_manager.rb +0 -0
- data/lib/openc3/utilities/throttle.rb +0 -0
- data/lib/openc3/utilities/zip.rb +0 -0
- data/lib/openc3/utilities.rb +0 -0
- data/lib/openc3/version.rb +5 -5
- data/lib/openc3/win32/excel.rb +0 -0
- data/lib/openc3/win32/win32.rb +0 -0
- data/lib/openc3/win32/win32_main.rb +0 -0
- data/lib/openc3.rb +2 -2
- data/tasks/gemfile_stats.rake +0 -0
- data/tasks/spec.rake +0 -0
- data/templates/command_validator/command_validator.py +0 -0
- data/templates/command_validator/command_validator.rb +0 -0
- data/templates/conversion/conversion.py +0 -0
- data/templates/conversion/conversion.rb +0 -0
- data/templates/limits_response/response.py +0 -0
- data/templates/limits_response/response.rb +0 -0
- data/templates/microservice/microservices/TEMPLATE/microservice.py +0 -0
- data/templates/microservice/microservices/TEMPLATE/microservice.rb +0 -0
- data/templates/plugin/.gitignore +0 -0
- data/templates/plugin/LICENSE.md +0 -0
- data/templates/plugin/README.md +0 -0
- data/templates/plugin/Rakefile +0 -0
- data/templates/plugin/plugin.gemspec +0 -0
- data/templates/plugin/plugin.txt +0 -0
- data/templates/processor/processor.py +1 -1
- data/templates/processor/processor.rb +0 -0
- data/templates/target/targets/TARGET/cmd_tlm/cmd.txt +0 -0
- data/templates/target/targets/TARGET/cmd_tlm/tlm.txt +0 -0
- data/templates/target/targets/TARGET/lib/target.py +0 -0
- data/templates/target/targets/TARGET/lib/target.rb +0 -0
- data/templates/target/targets/TARGET/procedures/procedure.py +0 -0
- data/templates/target/targets/TARGET/procedures/procedure.rb +0 -0
- data/templates/target/targets/TARGET/public/README.txt +0 -0
- data/templates/target/targets/TARGET/screens/status.txt +0 -0
- data/templates/target/targets/TARGET/target.txt +0 -0
- data/templates/tool_angular/.editorconfig +0 -0
- data/templates/tool_angular/.gitignore +0 -0
- data/templates/tool_angular/.vscode/extensions.json +0 -0
- data/templates/tool_angular/.vscode/launch.json +0 -0
- data/templates/tool_angular/.vscode/tasks.json +0 -0
- data/templates/tool_angular/angular.json +0 -0
- data/templates/tool_angular/extra-webpack.config.js +0 -0
- data/templates/tool_angular/package.json +2 -2
- data/templates/tool_angular/src/app/app-routing.module.ts +0 -0
- data/templates/tool_angular/src/app/app.component.html +0 -0
- data/templates/tool_angular/src/app/app.component.scss +0 -0
- data/templates/tool_angular/src/app/app.component.spec.ts +0 -0
- data/templates/tool_angular/src/app/app.component.ts +0 -0
- data/templates/tool_angular/src/app/app.module.ts +0 -0
- data/templates/tool_angular/src/app/custom-overlay-container.ts +0 -0
- data/templates/tool_angular/src/app/empty-route/empty-route.component.ts +0 -0
- data/templates/tool_angular/src/app/openc3-api.d.ts +0 -0
- data/templates/tool_angular/src/assets/.gitkeep +0 -0
- data/templates/tool_angular/src/environments/environment.prod.ts +0 -0
- data/templates/tool_angular/src/environments/environment.ts +0 -0
- data/templates/tool_angular/src/favicon.ico +0 -0
- data/templates/tool_angular/src/index.html +0 -0
- data/templates/tool_angular/src/main.single-spa.ts +0 -0
- data/templates/tool_angular/src/single-spa/asset-url.ts +0 -0
- data/templates/tool_angular/src/single-spa/single-spa-props.ts +0 -0
- data/templates/tool_angular/src/styles.scss +0 -0
- data/templates/tool_angular/tsconfig.app.json +0 -0
- data/templates/tool_angular/tsconfig.json +0 -0
- data/templates/tool_angular/tsconfig.spec.json +0 -0
- data/templates/tool_react/.eslintrc +0 -0
- data/templates/tool_react/.gitignore +0 -0
- data/templates/tool_react/.prettierignore +0 -0
- data/templates/tool_react/babel.config.json +0 -0
- data/templates/tool_react/jest.config.js +0 -0
- data/templates/tool_react/package.json +1 -1
- data/templates/tool_react/src/openc3-tool_name.js +0 -0
- data/templates/tool_react/src/root.component.js +0 -0
- data/templates/tool_react/src/root.component.test.js +0 -0
- data/templates/tool_react/webpack.config.js +0 -0
- data/templates/tool_svelte/.gitignore +0 -0
- data/templates/tool_svelte/.prettierignore +0 -0
- data/templates/tool_svelte/.prettierrc.js +0 -0
- data/templates/tool_svelte/babel.config.js +0 -0
- data/templates/tool_svelte/build/smui.css +0 -0
- data/templates/tool_svelte/jest.config.js +0 -0
- data/templates/tool_svelte/package.json +1 -1
- data/templates/tool_svelte/rollup.config.js +0 -0
- data/templates/tool_svelte/src/App.svelte +0 -0
- data/templates/tool_svelte/src/App.test.js +0 -0
- data/templates/tool_svelte/src/theme/_smui-theme.scss +0 -0
- data/templates/tool_svelte/src/tool_name.js +0 -0
- data/templates/tool_vue/.env.standalone +0 -0
- data/templates/tool_vue/.gitignore +0 -0
- data/templates/tool_vue/.prettierrc.cjs +0 -0
- data/templates/tool_vue/eslint.config.mjs +0 -0
- data/templates/tool_vue/jsconfig.json +0 -0
- data/templates/tool_vue/package.json +3 -3
- data/templates/tool_vue/src/App.vue +0 -0
- data/templates/tool_vue/src/main.js +0 -0
- data/templates/tool_vue/src/router.js +0 -0
- data/templates/tool_vue/src/tools/tool_name/tool_name.vue +0 -0
- data/templates/tool_vue/vite.config.js +1 -1
- data/templates/widget/.prettierrc.cjs +0 -0
- data/templates/widget/LICENSE.md +0 -0
- data/templates/widget/Rakefile +0 -0
- data/templates/widget/package.json +2 -2
- data/templates/widget/src/Widget.vue +0 -0
- data/templates/widget/vite.config.js +0 -0
- metadata +36 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3d94ef0547084256ba519d150e9e7637fe2623ad68703fb56ff43579ceb1119b
|
|
4
|
+
data.tar.gz: bb907222d40154d622e73fb8732ff2715186183f5ce097f58832839ea3621fb3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d59f2a554a6fd751533736e12088e85958e9fe8569ccc2ffde017e68c00626b39ddd7f08334e9e9f83fa47a599b8c0a803c0da248b945a7dff3f8e41a41085cc
|
|
7
|
+
data.tar.gz: 54c6fc8f881f6ccfef18dd8e37ebbe99b078e199f95738b9f6da5d24183d279252a9ee563c2be338d4f4e2cf32bb0299b4761727b40ffb5f771e354ba3877538
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
|
File without changes
|
data/LICENSE.md
CHANGED
|
File without changes
|
data/README.md
CHANGED
|
File without changes
|
data/Rakefile
CHANGED
|
File without changes
|
data/bin/openc3cli
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
require 'openc3'
|
|
22
22
|
require 'openc3/bridge/bridge'
|
|
23
|
+
require 'openc3/models/bridge_model'
|
|
23
24
|
require 'openc3/models/gem_model'
|
|
24
25
|
require 'openc3/models/migration_model'
|
|
25
26
|
require 'openc3/models/plugin_model'
|
|
@@ -78,6 +79,7 @@ def print_usage
|
|
|
78
79
|
puts " cli xtce_converter # Convert to and from the XTCE format. Run with --help for more info."
|
|
79
80
|
puts " cli cstol_converter # Converts CSTOL files (.prc) to COSMOS. Run with --help for more info."
|
|
80
81
|
puts " cli setpassword # Set the initial password from OPENC3_API_PASSWORD env var"
|
|
82
|
+
puts " cli initsettings # Seed settings from OPENC3_SETTING_* env vars"
|
|
81
83
|
puts " cli migratetouv PLUGIN_NAME SCOPE # Migrate plugin to per-plugin UV virtual environment"
|
|
82
84
|
puts ""
|
|
83
85
|
end
|
|
@@ -1269,6 +1271,42 @@ if not ARGV[0].nil? # argument(s) given
|
|
|
1269
1271
|
params = [] unless params
|
|
1270
1272
|
run_bridge(filename, params)
|
|
1271
1273
|
|
|
1274
|
+
when 'bridgeenroll'
|
|
1275
|
+
if ARGV[1].nil? || ARGV[1] == '--help' || ARGV[1] == '-h'
|
|
1276
|
+
puts "Usage: cli bridgeenroll BRIDGE_NAME APP_PUBLIC_KEY [SCOPE]"
|
|
1277
|
+
puts ""
|
|
1278
|
+
puts "Authorize an openc3-app control identity for a bridge (Iroh hub) and"
|
|
1279
|
+
puts "print that bridge's current connection ticket. Used by openc3-app to"
|
|
1280
|
+
puts "auto-enroll over the local Docker control plane: the bridge then only"
|
|
1281
|
+
puts "accepts api/* control connections from the given app identity."
|
|
1282
|
+
puts ""
|
|
1283
|
+
puts "Arguments:"
|
|
1284
|
+
puts " BRIDGE_NAME Name of the bridge (hub)"
|
|
1285
|
+
puts " APP_PUBLIC_KEY openc3-app's Iroh public key (EndpointId, hex)"
|
|
1286
|
+
puts " SCOPE Scope (optional, default: OPENC3_SCOPE or DEFAULT)"
|
|
1287
|
+
puts ""
|
|
1288
|
+
puts "On success the bridge ticket is printed alone on stdout."
|
|
1289
|
+
exit 0
|
|
1290
|
+
end
|
|
1291
|
+
bridge_name = ARGV[1].to_s.upcase
|
|
1292
|
+
app_public_key = ARGV[2]
|
|
1293
|
+
abort("APP_PUBLIC_KEY is required (see --help)") if app_public_key.nil? || app_public_key.empty?
|
|
1294
|
+
unless app_public_key.match?(/\A[0-9a-f]{64}\z/i)
|
|
1295
|
+
abort("APP_PUBLIC_KEY must be exactly 64 hexadecimal characters")
|
|
1296
|
+
end
|
|
1297
|
+
app_public_key = app_public_key.downcase
|
|
1298
|
+
scope = ARGV[3] || ENV['OPENC3_SCOPE'] || 'DEFAULT'
|
|
1299
|
+
model = OpenC3::BridgeModel.get_model(name: bridge_name, scope: scope)
|
|
1300
|
+
abort("Bridge '#{bridge_name}' not found in scope #{scope}. Is its bridge_microservice running?") unless model
|
|
1301
|
+
if model.ticket.nil? || model.ticket.empty?
|
|
1302
|
+
abort("Bridge '#{bridge_name}' has no ticket yet. Is its bridge_microservice running?")
|
|
1303
|
+
end
|
|
1304
|
+
old_app_public_key = model.app_public_key
|
|
1305
|
+
model.app_public_key = app_public_key
|
|
1306
|
+
model.update
|
|
1307
|
+
# Print ONLY the ticket so openc3-app can capture it from stdout.
|
|
1308
|
+
puts model.ticket
|
|
1309
|
+
|
|
1272
1310
|
when 'bridgegem'
|
|
1273
1311
|
if ARGV[1].nil? || ARGV[1] == '--help' || ARGV[1] == '-h'
|
|
1274
1312
|
puts "Usage: cli bridgegem GEM_NAME [PARAMS...]"
|
|
@@ -1492,6 +1530,106 @@ if not ARGV[0].nil? # argument(s) given
|
|
|
1492
1530
|
# Always ensure the scriptrunner policy is in place since it is required for script execution
|
|
1493
1531
|
client.ensure_scriptrunner_policy(ENV['OPENC3_CONFIG_BUCKET'], ENV['OPENC3_LOGS_BUCKET'])
|
|
1494
1532
|
|
|
1533
|
+
when 'initsettings'
|
|
1534
|
+
if ARGV[1] == '--help' || ARGV[1] == '-h'
|
|
1535
|
+
puts "Usage: cli initsettings [--dry-run | --export]"
|
|
1536
|
+
puts ""
|
|
1537
|
+
puts "Seed COSMOS settings from the environment. A setting changed in the Admin"
|
|
1538
|
+
puts "Console is left alone, so those edits survive a restart."
|
|
1539
|
+
puts ""
|
|
1540
|
+
puts "Environment:"
|
|
1541
|
+
puts " OPENC3_SETTING_<NAME> One variable per setting, e.g."
|
|
1542
|
+
puts " OPENC3_SETTING_TIME_ZONE=UTC sets 'time_zone'"
|
|
1543
|
+
puts " OPENC3_SETTINGS_OVERWRITE true to overwrite existing settings on every"
|
|
1544
|
+
puts " run. false/unset leaves them alone"
|
|
1545
|
+
puts " OPENC3_SETTINGS_ALLOW_UNKNOWN true to allow setting names COSMOS doesn't"
|
|
1546
|
+
puts " recognize. Without it an unknown name is"
|
|
1547
|
+
puts " reported and skipped, so a typo can't"
|
|
1548
|
+
puts " silently do nothing"
|
|
1549
|
+
puts " OPENC3_SETTINGS_STRICT true to exit non-zero when a setting is"
|
|
1550
|
+
puts " rejected. Off by default"
|
|
1551
|
+
puts ""
|
|
1552
|
+
puts "These three accept true/false (1/0 also work)."
|
|
1553
|
+
puts ""
|
|
1554
|
+
puts "A setting that already exists is left alone because an operator may have"
|
|
1555
|
+
puts "edited it in the Admin Console. Settings written by a release before this"
|
|
1556
|
+
puts "command existed carry no record of having been seeded, so they all count as"
|
|
1557
|
+
puts "edited: on such an upgrade run one init with OPENC3_SETTINGS_OVERWRITE=true"
|
|
1558
|
+
puts "to adopt the environment values, then turn it back off."
|
|
1559
|
+
puts ""
|
|
1560
|
+
puts "An unrecognized name, an invalid value, or a malformed one of the variables"
|
|
1561
|
+
puts "above is reported on stdout and that one setting is skipped; init continues"
|
|
1562
|
+
puts "and COSMOS uses the default. Nothing here fails init unless"
|
|
1563
|
+
puts "OPENC3_SETTINGS_STRICT is set. Use --dry-run to check the same things before"
|
|
1564
|
+
puts "starting COSMOS, where a non-zero exit is what you want."
|
|
1565
|
+
puts ""
|
|
1566
|
+
puts "Settings that can be seeded:"
|
|
1567
|
+
OpenC3::SettingModel.describe_settings.each { |line| puts " #{line}" }
|
|
1568
|
+
puts ""
|
|
1569
|
+
puts "Boolean settings accept true/false (1/0 also work) and are stored as real"
|
|
1570
|
+
puts "booleans."
|
|
1571
|
+
puts "Every other setting is stored as the text given, including the settings"
|
|
1572
|
+
puts "whose text is JSON (astro, classification_banner, context_tag)."
|
|
1573
|
+
puts ""
|
|
1574
|
+
puts "JSON settings - shape of each blob:"
|
|
1575
|
+
OpenC3::SettingModel.describe_json_settings.each do |name, example|
|
|
1576
|
+
puts " #{name}"
|
|
1577
|
+
puts " #{example}"
|
|
1578
|
+
end
|
|
1579
|
+
puts ""
|
|
1580
|
+
puts "Rather than hand-writing one of those, configure it in Admin -> Settings"
|
|
1581
|
+
puts "and run 'cli initsettings --export' to print the current values as lines"
|
|
1582
|
+
puts "you can paste straight into compose.override.yaml."
|
|
1583
|
+
puts ""
|
|
1584
|
+
puts "Options:"
|
|
1585
|
+
puts " --dry-run Report what would be seeded and exit without writing."
|
|
1586
|
+
puts " Lists every problem rather than stopping at the first,"
|
|
1587
|
+
puts " and works before Redis is up so it can be run ahead of"
|
|
1588
|
+
puts " starting COSMOS. Exits non-zero if anything would fail,"
|
|
1589
|
+
puts " regardless of OPENC3_SETTINGS_STRICT"
|
|
1590
|
+
puts " --export Print the settings currently stored as compose"
|
|
1591
|
+
puts " 'environment:' lines, quoted so the JSON ones parse."
|
|
1592
|
+
puts " Configure in Admin -> Settings, then export and paste."
|
|
1593
|
+
puts " Reads Redis, so COSMOS must be running - unlike"
|
|
1594
|
+
puts " --dry-run, which works while it is down"
|
|
1595
|
+
puts " -h, --help Show this help message"
|
|
1596
|
+
exit 0
|
|
1597
|
+
end
|
|
1598
|
+
dry_run = ARGV[1] == '--dry-run'
|
|
1599
|
+
export = ARGV[1] == '--export'
|
|
1600
|
+
if ARGV[1] and !dry_run and !export
|
|
1601
|
+
abort "Unknown option #{ARGV[1]}. See 'cli initsettings --help'"
|
|
1602
|
+
end
|
|
1603
|
+
if export
|
|
1604
|
+
# --export reads the stored values, so it needs a reachable Redis. Say so
|
|
1605
|
+
# plainly - the raw connection error is something like
|
|
1606
|
+
# "Bad file descriptor (redis://openc3-redis:6379)", which doesn't hint
|
|
1607
|
+
# that the answer is to start COSMOS.
|
|
1608
|
+
unless OpenC3::SettingModel.redis_available?
|
|
1609
|
+
abort "Cannot reach Redis at #{ENV['OPENC3_REDIS_HOSTNAME']}:#{ENV['OPENC3_REDIS_PORT']}.\n" \
|
|
1610
|
+
"--export reads the settings currently stored, so COSMOS has to be running.\n" \
|
|
1611
|
+
"Start it with './openc3.sh run', or use --dry-run, which works while COSMOS is down."
|
|
1612
|
+
end
|
|
1613
|
+
begin
|
|
1614
|
+
lines = OpenC3::SettingModel.export_lines
|
|
1615
|
+
rescue => e
|
|
1616
|
+
abort "Error reading settings: #{e.message}"
|
|
1617
|
+
end
|
|
1618
|
+
if lines.empty?
|
|
1619
|
+
puts "# No settings are stored yet - configure them in Admin -> Settings first"
|
|
1620
|
+
else
|
|
1621
|
+
puts "# Paste under the openc3-cosmos-init service's \"environment:\" key in"
|
|
1622
|
+
puts "# compose.override.yaml, keeping this indentation."
|
|
1623
|
+
lines.each { |line| puts " #{line}" }
|
|
1624
|
+
end
|
|
1625
|
+
else
|
|
1626
|
+
begin
|
|
1627
|
+
OpenC3::SettingModel.apply_defaults(dry_run: dry_run)
|
|
1628
|
+
rescue => e
|
|
1629
|
+
abort "Error applying default settings: #{e.message}"
|
|
1630
|
+
end
|
|
1631
|
+
end
|
|
1632
|
+
|
|
1495
1633
|
when 'runmigrations'
|
|
1496
1634
|
if ARGV[1] == '--help' || ARGV[1] == '-h'
|
|
1497
1635
|
puts "Usage: cli runmigrations"
|
data/bin/pipuninstall
CHANGED
|
File without changes
|
data/bin/uvinstall
CHANGED
|
@@ -75,8 +75,12 @@ if [ -f "${GEM_PATH}/uv.lock" ] && [ -f "${GEM_PATH}/pyproject.toml" ]; then
|
|
|
75
75
|
cd "${VENV_BASE}"
|
|
76
76
|
uv venv "${VENV_DIR}" --allow-existing
|
|
77
77
|
|
|
78
|
-
# Offline sync first, online only on a cache miss (bounded by UV_HTTP_*)
|
|
79
|
-
|
|
78
|
+
# Offline sync first, online only on a cache miss (bounded by UV_HTTP_*).
|
|
79
|
+
# --inexact keeps sync additive: without it sync makes the venv match the
|
|
80
|
+
# lock exactly and uninstalls anything else, including packages an admin
|
|
81
|
+
# uploaded into this plugin venv via PythonPackageModel.install (which uses
|
|
82
|
+
# the additive `pipinstall`).
|
|
83
|
+
uv_offline_then_online sync --frozen --inexact --no-dev --no-install-project ${UV_ARGS}
|
|
80
84
|
RESULT=$?
|
|
81
85
|
|
|
82
86
|
if [ $RESULT -eq 0 ]; then
|
|
@@ -99,7 +103,10 @@ if [ -f "${GEM_PATH}/requirements.txt" ]; then
|
|
|
99
103
|
RESULT=$?
|
|
100
104
|
elif [ -f "${GEM_PATH}/pyproject.toml" ]; then
|
|
101
105
|
echo "Installing from pyproject.toml via uv pip install"
|
|
102
|
-
|
|
106
|
+
# --python: The Python interpreter into which packages should be installed.
|
|
107
|
+
# --project: Discover a project (i.e. pyproject.toml) in the given directory.
|
|
108
|
+
# -r: Install the packages listed in the given files.
|
|
109
|
+
uv_offline_then_online pip install --python "${VENV_DIR}" --project "${GEM_PATH}" ${UV_ARGS} -r "${GEM_PATH}/pyproject.toml"
|
|
103
110
|
RESULT=$?
|
|
104
111
|
|
|
105
112
|
# `uv pip install <path>` builds the plugin as a package before installing
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/data/config/_id_items.yaml
CHANGED
|
File without changes
|
data/data/config/_id_params.yaml
CHANGED
|
File without changes
|
|
File without changes
|
data/data/config/_items.yaml
CHANGED
|
File without changes
|
data/data/config/_params.yaml
CHANGED
|
File without changes
|
data/data/config/command.yaml
CHANGED
|
File without changes
|
|
@@ -284,6 +284,8 @@ TEMPLATE_FILE:
|
|
|
284
284
|
- name: Template File Path
|
|
285
285
|
required: true
|
|
286
286
|
description: The relative path to the template file. Filename should generally start with an underscore.
|
|
287
|
+
Absolute paths and paths containing '..' are not allowed. The file must be inside the directory
|
|
288
|
+
containing the definition file.
|
|
287
289
|
values: .+
|
|
288
290
|
since: 5.0.10
|
|
289
291
|
RESPONSE:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -168,7 +168,7 @@ SECRET:
|
|
|
168
168
|
summary: Define a secret needed by this interface
|
|
169
169
|
description:
|
|
170
170
|
Defines a secret for this interface and optionally assigns its value to an option.
|
|
171
|
-
For more information see [Admin Secrets](/docs/tools/admin#secrets).
|
|
171
|
+
For more information see the [Secrets guide](/docs/guides/secrets) and [Admin Secrets](/docs/tools/admin#secrets).
|
|
172
172
|
since: 5.3.0
|
|
173
173
|
parameters:
|
|
174
174
|
- name: Type
|
|
@@ -186,6 +186,8 @@ SECRET:
|
|
|
186
186
|
- name: Environment Variable or File Path
|
|
187
187
|
required: true
|
|
188
188
|
description: Environment variable name or file path to store secret.
|
|
189
|
+
FILE paths must be under /tmp (or the directory set by the
|
|
190
|
+
OPENC3_SECRET_FILE_DIR environment variable); paths outside of it are rejected.
|
|
189
191
|
Note that if you use the Option Name to set an option to the secret value,
|
|
190
192
|
this value doesn't really matter as long as it is unique.
|
|
191
193
|
values: .*
|
|
@@ -284,3 +286,103 @@ SHARD:
|
|
|
284
286
|
values: \d+
|
|
285
287
|
example: |
|
|
286
288
|
SHARD 0
|
|
289
|
+
BRIDGE:
|
|
290
|
+
summary: Name of the bridge to run this interface on
|
|
291
|
+
description: Run this interface on a bridge host rather than within COSMOS. Note only python is supported.
|
|
292
|
+
since: 7.4.0
|
|
293
|
+
parameters:
|
|
294
|
+
- name: Bridge Name
|
|
295
|
+
required: true
|
|
296
|
+
description: Bridge Name - Typically DEFAULT
|
|
297
|
+
values: .+
|
|
298
|
+
example: |
|
|
299
|
+
BRIDGE DEFAULT
|
|
300
|
+
BRIDGE_PROTOCOL:
|
|
301
|
+
summary: Bridge Protocols modify the bridge interface by processing the data
|
|
302
|
+
description:
|
|
303
|
+
Protocols can be either READ, WRITE, or READ_WRITE. READ protocols act on the data
|
|
304
|
+
received by the interface while write acts on the data before it is sent out. READ_WRITE applies
|
|
305
|
+
the protocol to both reading and writing.<br/><br/>
|
|
306
|
+
For information on creating your own custom protocol please see [Protocols](../configuration/protocols.md)
|
|
307
|
+
since: 7.4.0
|
|
308
|
+
parameters:
|
|
309
|
+
- name: Type
|
|
310
|
+
required: true
|
|
311
|
+
description: Whether to apply the protocol on incoming data, outgoing data, or both
|
|
312
|
+
values: ["READ", "WRITE", "READ_WRITE"]
|
|
313
|
+
- name: Protocol Filename or Classname
|
|
314
|
+
required: true
|
|
315
|
+
description: Ruby or Python filename or class name which implements the protocol
|
|
316
|
+
values: .*
|
|
317
|
+
- name: Protocol specific parameters
|
|
318
|
+
required: false
|
|
319
|
+
description: Additional parameters used by the protocol
|
|
320
|
+
python_example: |
|
|
321
|
+
INTERFACE DATA_INT openc3/interfaces/tcpip_client_interface.py host.docker.internal 8080 8081 10.0 nil BURST
|
|
322
|
+
MAP_TARGET DATA
|
|
323
|
+
BRIDGE_PROTOCOL READ openc3/interfaces/protocols/ignore_packet_protocol.py INST IMAGE # Drop all INST IMAGE packets
|
|
324
|
+
BRIDGE_OPTION:
|
|
325
|
+
summary: Set a parameter on a bridged interface
|
|
326
|
+
description:
|
|
327
|
+
When a bridge option is set the bridge interface class calls the set_option method.
|
|
328
|
+
Custom interfaces can override set_option to handle any additional options they want.
|
|
329
|
+
since: 7.4.0
|
|
330
|
+
parameters:
|
|
331
|
+
- name: Name
|
|
332
|
+
required: true
|
|
333
|
+
description:
|
|
334
|
+
The option to set. OpenC3 defines several options on the core provided
|
|
335
|
+
interfaces. The SerialInterface defines FLOW_CONTROL which can be NONE (default) or RTSCTS
|
|
336
|
+
and DATA_BITS which changes the data bits of the serial interface.
|
|
337
|
+
The TcpipServerInterface and HttpServerInterface define LISTEN_ADDRESS which is the IP address to accept
|
|
338
|
+
connections on (default 0.0.0.0).
|
|
339
|
+
values: .*
|
|
340
|
+
- name: Parameters
|
|
341
|
+
required: false
|
|
342
|
+
description: Parameters to pass to the option
|
|
343
|
+
values: .*
|
|
344
|
+
example: |
|
|
345
|
+
INTERFACE SERIAL_INT serial_interface.rb COM1 COM1 115200 NONE 1 10.0 nil
|
|
346
|
+
BRIDGE DEFAULT
|
|
347
|
+
BRIDGE_OPTION FLOW_CONTROL RTSCTS
|
|
348
|
+
BRIDGE_OPTION DATA_BITS 8
|
|
349
|
+
BRIDGE_SECRET:
|
|
350
|
+
summary: Define a bridge secret needed by this bridge interface
|
|
351
|
+
description:
|
|
352
|
+
Defines a bridge secret for this bridge interface and optionally assigns its value to an option.
|
|
353
|
+
For more information see [Admin Secrets](/docs/tools/admin#secrets).
|
|
354
|
+
since: 7.4.0
|
|
355
|
+
parameters:
|
|
356
|
+
- name: Type
|
|
357
|
+
required: true
|
|
358
|
+
description:
|
|
359
|
+
ENV or FILE. ENV will mount the secret into an environment variable.
|
|
360
|
+
FILE mounts the secret into a file.
|
|
361
|
+
values: .*
|
|
362
|
+
- name: Secret Name
|
|
363
|
+
required: true
|
|
364
|
+
description:
|
|
365
|
+
The name of the secret to retrieve from the Admin / Secrets tab.
|
|
366
|
+
For more information see [Admin Secrets](/docs/tools/admin#secrets).
|
|
367
|
+
values: .*
|
|
368
|
+
- name: Environment Variable or File Path
|
|
369
|
+
required: true
|
|
370
|
+
description: Environment variable name or file path to store secret.
|
|
371
|
+
FILE paths must be under /tmp (or the directory set by the
|
|
372
|
+
OPENC3_SECRET_FILE_DIR environment variable); paths outside of it are rejected.
|
|
373
|
+
Note that if you use the Option Name to set an option to the secret value,
|
|
374
|
+
this value doesn't really matter as long as it is unique.
|
|
375
|
+
values: .*
|
|
376
|
+
- name: Option Name
|
|
377
|
+
required: false
|
|
378
|
+
description: Interface option to pass the secret value. This is the primary way to pass secrets to interfaces.
|
|
379
|
+
values: .*
|
|
380
|
+
- name: Secret Store Name
|
|
381
|
+
required: false
|
|
382
|
+
description: Name of the secret store for stores with multipart keys
|
|
383
|
+
values: .*
|
|
384
|
+
example: |
|
|
385
|
+
INTERFACE SERIAL_INT serial_interface.rb COM1 COM1 115200 NONE 1 10.0 nil
|
|
386
|
+
BRIDGE DEFAULT
|
|
387
|
+
BRIDGE_SECRET ENV USERNAME ENV_USERNAME USERNAME
|
|
388
|
+
BRIDGE_SECRET FILE KEY "/tmp/DATA/cert" KEY
|
|
File without changes
|
|
@@ -118,7 +118,8 @@ MICROSERVICE:
|
|
|
118
118
|
SECRET:
|
|
119
119
|
summary: Define a secret needed by this microservice
|
|
120
120
|
description:
|
|
121
|
-
Defines a secret for this microservice. For more information see [
|
|
121
|
+
Defines a secret for this microservice. For more information see the [Secrets guide](/docs/guides/secrets)
|
|
122
|
+
and [Admin Secrets](/docs/tools/admin#secrets).
|
|
122
123
|
Note that unlike the INTERFACE SECRET, the microservice SECRET does not take an Option Name parameter,
|
|
123
124
|
because the secret value is injected directly into the microservice process as an environment variable
|
|
124
125
|
(Type ENV) or written to a file (Type FILE).
|
|
@@ -138,7 +139,9 @@ MICROSERVICE:
|
|
|
138
139
|
values: .*
|
|
139
140
|
- name: Environment Variable or File Path
|
|
140
141
|
required: true
|
|
141
|
-
description: Environment variable name or file path to store secret
|
|
142
|
+
description: Environment variable name or file path to store secret.
|
|
143
|
+
FILE paths must be under /tmp (or the directory set by the
|
|
144
|
+
OPENC3_SECRET_FILE_DIR environment variable); paths outside of it are rejected.
|
|
142
145
|
values: .*
|
|
143
146
|
- name: Secret Store Name
|
|
144
147
|
required: false
|
|
File without changes
|
|
File without changes
|
data/data/config/plugins.yaml
CHANGED
|
File without changes
|
data/data/config/processors.yaml
CHANGED
|
File without changes
|
data/data/config/protocols.yaml
CHANGED
|
File without changes
|
data/data/config/screen.yaml
CHANGED
|
File without changes
|
data/data/config/settings.yaml
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/data/config/target.yaml
CHANGED
|
File without changes
|
|
File without changes
|
data/data/config/telemetry.yaml
CHANGED
|
File without changes
|
|
@@ -274,6 +274,8 @@ TEMPLATE_FILE:
|
|
|
274
274
|
- name: Template File Path
|
|
275
275
|
required: true
|
|
276
276
|
description: The relative path to the template file. Filename should generally start with an underscore.
|
|
277
|
+
Absolute paths and paths containing '..' are not allowed. The file must be inside the directory
|
|
278
|
+
containing the definition file.
|
|
277
279
|
values: .+
|
|
278
280
|
since: 5.0.10
|
|
279
281
|
IGNORE_OVERLAP:
|
data/data/config/tool.yaml
CHANGED
|
File without changes
|
data/data/config/unknown.yaml
CHANGED
|
File without changes
|
data/data/config/widgets.yaml
CHANGED
|
@@ -206,6 +206,9 @@ Decoration Widgets:
|
|
|
206
206
|
END
|
|
207
207
|
FILEDISPLAY:
|
|
208
208
|
summary: Displays the contents of a target file with syntax highlighting
|
|
209
|
+
description: Files are read from the COSMOS bucket, either the target's installed files or the modified
|
|
210
|
+
copy under targets_modified. In local mode a file created only on the local filesystem
|
|
211
|
+
(plugins/SCOPE/targets_modified) is not in the bucket and cannot be read.
|
|
209
212
|
since: 6.10.3
|
|
210
213
|
parameters:
|
|
211
214
|
- name: File path
|
|
@@ -224,6 +227,9 @@ Decoration Widgets:
|
|
|
224
227
|
FILEDISPLAY "INST/data/sample.json" 400 200
|
|
225
228
|
FILECHECKSUM:
|
|
226
229
|
summary: Displays SHA-256 checksum of one or more files, with comparison if multiple
|
|
230
|
+
description: Files are read from the COSMOS bucket, either the target's installed files or the modified
|
|
231
|
+
copy under targets_modified. In local mode a file created only on the local filesystem
|
|
232
|
+
(plugins/SCOPE/targets_modified) is not in the bucket and cannot be read.
|
|
227
233
|
since: 6.10.3
|
|
228
234
|
parameters:
|
|
229
235
|
- name: File path
|
|
File without changes
|
data/data/xtce_schemas/xml.xsd
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -23,6 +23,7 @@ static ID id_method_reduce_to_single_packet = 0;
|
|
|
23
23
|
static ID id_method_replace = 0;
|
|
24
24
|
static ID id_method_clone = 0;
|
|
25
25
|
static ID id_method_log_discard = 0;
|
|
26
|
+
static ID id_method_check_buffer_size = 0;
|
|
26
27
|
|
|
27
28
|
static ID id_ivar_data = 0;
|
|
28
29
|
static ID id_ivar_extra = 0;
|
|
@@ -77,6 +78,10 @@ static VALUE burst_protocol_read_data(int argc, VALUE *argv, VALUE self)
|
|
|
77
78
|
|
|
78
79
|
rb_str_concat(rb_ivar_get(self, id_ivar_data), data);
|
|
79
80
|
|
|
81
|
+
/* Bound the memory a peer can make us buffer. Raises if @data has grown
|
|
82
|
+
* past @max_buffer_size, which makes Interface#read disconnect the peer. */
|
|
83
|
+
rb_funcall(self, id_method_check_buffer_size, 0);
|
|
84
|
+
|
|
80
85
|
/* Maintain extra from last read read_data */
|
|
81
86
|
if (!((RSTRING_LEN(data) == 0) && (!(RTEST(extra))))) {
|
|
82
87
|
rb_ivar_set(self, id_ivar_extra, extra);
|
|
@@ -301,6 +306,7 @@ void Init_burst_protocol(void)
|
|
|
301
306
|
id_method_replace = rb_intern("replace");
|
|
302
307
|
id_method_clone = rb_intern("clone");
|
|
303
308
|
id_method_log_discard = rb_intern("log_discard");
|
|
309
|
+
id_method_check_buffer_size = rb_intern("check_buffer_size");
|
|
304
310
|
|
|
305
311
|
id_ivar_data = rb_intern("@data");
|
|
306
312
|
id_ivar_extra = rb_intern("@extra");
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/ext/openc3/ext/crc/crc.c
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -35,10 +35,13 @@ VALUE cSegFault = Qnil;
|
|
|
35
35
|
#include <string.h>
|
|
36
36
|
#include <sys/stat.h>
|
|
37
37
|
|
|
38
|
+
/* Must be a macro rather than a const int so filename below is a fixed size
|
|
39
|
+
* array rather than a variable length array */
|
|
40
|
+
#define FILENAME_LEN 256
|
|
41
|
+
|
|
38
42
|
/* Mark that this function does not return (it exits) to remove compiler warning */
|
|
39
43
|
__attribute__((noreturn)) static void catch_sigsegv(int sig_num)
|
|
40
44
|
{
|
|
41
|
-
const int FILENAME_LEN = 256;
|
|
42
45
|
char *openc3_log_dir = NULL;
|
|
43
46
|
time_t rawtime;
|
|
44
47
|
struct tm timeinfo;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|