openc3 7.2.0 → 7.3.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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/bin/openc3cli +108 -29
  3. data/bin/pipinstall +5 -4
  4. data/bin/pipuninstall +5 -1
  5. data/bin/uvinstall +149 -0
  6. data/data/config/interface_modifiers.yaml +15 -0
  7. data/data/config/item_modifiers.yaml +2 -1
  8. data/data/config/microservice.yaml +5 -1
  9. data/data/config/screen.yaml +2 -1
  10. data/data/config/target.yaml +38 -0
  11. data/data/config/tool.yaml +3 -1
  12. data/data/config/widgets.yaml +43 -3
  13. data/data/xtce_schemas/SpaceSystem_20180204.xsd +5918 -0
  14. data/data/xtce_schemas/xml.xsd +116 -0
  15. data/ext/openc3/ext/telemetry/telemetry.c +1 -1
  16. data/lib/openc3/accessors/binary_accessor.rb +4 -0
  17. data/lib/openc3/accessors/template_accessor.rb +2 -2
  18. data/lib/openc3/api/cmd_api.rb +5 -1
  19. data/lib/openc3/api/interface_api.rb +2 -2
  20. data/lib/openc3/api/limits_api.rb +89 -3
  21. data/lib/openc3/api/router_api.rb +3 -3
  22. data/lib/openc3/api/tlm_api.rb +1 -1
  23. data/lib/openc3/interfaces/http_client_interface.rb +1 -1
  24. data/lib/openc3/io/json_drb.rb +24 -8
  25. data/lib/openc3/io/json_rpc.rb +0 -2
  26. data/lib/openc3/logs/log_writer.rb +43 -7
  27. data/lib/openc3/logs/packet_log_writer.rb +1 -2
  28. data/lib/openc3/microservices/decom_common.rb +15 -4
  29. data/lib/openc3/microservices/decom_microservice.rb +6 -1
  30. data/lib/openc3/microservices/interface_microservice.rb +26 -12
  31. data/lib/openc3/microservices/queue_microservice.rb +4 -2
  32. data/lib/openc3/migrations/20260701000000_updated_at_to_int.rb +55 -0
  33. data/lib/openc3/migrations/20260731000000_system_health_json.rb +41 -0
  34. data/lib/openc3/models/cvt_model.rb +7 -7
  35. data/lib/openc3/models/db_sharded_model.rb +2 -2
  36. data/lib/openc3/models/gem_model.rb +1 -1
  37. data/lib/openc3/models/interface_model.rb +17 -11
  38. data/lib/openc3/models/interface_status_model.rb +2 -2
  39. data/lib/openc3/models/metric_model.rb +2 -2
  40. data/lib/openc3/models/microservice_model.rb +21 -0
  41. data/lib/openc3/models/microservice_status_model.rb +2 -2
  42. data/lib/openc3/models/model.rb +2 -6
  43. data/lib/openc3/models/plugin_model.rb +204 -49
  44. data/lib/openc3/models/python_package_model.rb +210 -12
  45. data/lib/openc3/models/reingest_job_model.rb +1 -1
  46. data/lib/openc3/models/scope_model.rb +34 -30
  47. data/lib/openc3/models/script_status_model.rb +73 -38
  48. data/lib/openc3/models/target_model.rb +193 -6
  49. data/lib/openc3/models/tool_model.rb +33 -20
  50. data/lib/openc3/operators/microservice_operator.rb +33 -4
  51. data/lib/openc3/operators/operator.rb +15 -5
  52. data/lib/openc3/packets/commands.rb +7 -7
  53. data/lib/openc3/packets/limits.rb +33 -2
  54. data/lib/openc3/packets/packet.rb +6 -4
  55. data/lib/openc3/packets/packet_config.rb +5 -1
  56. data/lib/openc3/packets/parsers/state_parser.rb +1 -1
  57. data/lib/openc3/packets/parsers/xtce_converter.rb +183 -103
  58. data/lib/openc3/packets/parsers/xtce_parser.rb +71 -23
  59. data/lib/openc3/packets/structure.rb +16 -12
  60. data/lib/openc3/packets/telemetry.rb +3 -3
  61. data/lib/openc3/script/commands.rb +1 -1
  62. data/lib/openc3/script/extract.rb +20 -25
  63. data/lib/openc3/script/limits.rb +1 -1
  64. data/lib/openc3/script/suite_runner.rb +43 -9
  65. data/lib/openc3/script/web_socket_api.rb +45 -5
  66. data/lib/openc3/system/target.rb +4 -1
  67. data/lib/openc3/tools/table_manager/table_config.rb +4 -1
  68. data/lib/openc3/top_level.rb +1 -1
  69. data/lib/openc3/topics/command_decom_topic.rb +16 -1
  70. data/lib/openc3/topics/limits_event_topic.rb +63 -4
  71. data/lib/openc3/topics/telemetry_decom_topic.rb +2 -2
  72. data/lib/openc3/utilities/aws_bucket.rb +10 -2
  73. data/lib/openc3/utilities/cli_generator.rb +5 -1
  74. data/lib/openc3/utilities/csv.rb +5 -5
  75. data/lib/openc3/utilities/env_helper.rb +13 -1
  76. data/lib/openc3/utilities/local_mode.rb +4 -1
  77. data/lib/openc3/utilities/pypi_url.rb +39 -0
  78. data/lib/openc3/utilities/reingest_job.rb +1 -1
  79. data/lib/openc3/utilities/ruby_lex_utils.rb +5 -1
  80. data/lib/openc3/utilities/running_script.rb +160 -100
  81. data/lib/openc3/utilities/script.rb +60 -13
  82. data/lib/openc3/utilities/store_autoload.rb +39 -1
  83. data/lib/openc3/utilities/store_queued.rb +5 -1
  84. data/lib/openc3/version.rb +5 -5
  85. data/lib/openc3.rb +6 -1
  86. data/templates/plugin/plugin.gemspec +1 -1
  87. data/templates/tool_angular/package.json +2 -2
  88. data/templates/tool_react/package.json +1 -1
  89. data/templates/tool_svelte/package.json +1 -1
  90. data/templates/tool_vue/package.json +3 -3
  91. data/templates/widget/package.json +2 -2
  92. metadata +7 -3
  93. data/templates/tool_vue/.nycrc +0 -3
  94. data/templates/widget/.nycrc +0 -3
@@ -1442,6 +1442,19 @@ Interactive Widgets:
1442
1442
  Scripts can be launched from a BUTTON using the `runScript()` method. `runScript()` takes three parameters,
1443
1443
  the name of the script, whether to open the script in the foreground of Script Runner (default = true), and a hash of
1444
1444
  environment variables. For example: `runScript('INST/procedures/script.rb', false, {'VAR': 'VALUE'})`
1445
+
1446
+ For security, button code does NOT run in the main application. It runs in an isolated,
1447
+ sandboxed browser context that has no access to your login session, browser storage, or
1448
+ the page, and no network access of its own. The `api`, `screen`, `runScript` and `alert`
1449
+ objects still work exactly as before (the real work is performed by the application on the
1450
+ button code's behalf). A few consequences of this isolation:
1451
+
1452
+ - `alert()` no longer pauses code execution while the alert is displayed.
1453
+ - `screen.getNamedWidget("WIDGET_NAME").text()` (and `selected()` / `checked()` / `value`)
1454
+ return the widget's value as it was when the button was clicked; a `.value =` assignment
1455
+ made earlier in the same button click is not guaranteed to be visible to a later read in
1456
+ that same click.
1457
+ - The `self` variable (the internal widget component) is no longer available to button code.
1445
1458
  parameters:
1446
1459
  - name: Button Text
1447
1460
  required: true
@@ -1579,7 +1592,10 @@ Canvas Widgets:
1579
1592
  collection:
1580
1593
  CANVAS:
1581
1594
  summary: Layout widget for the other canvas widgets
1582
- description: All canvas widgets must be enclosed within a CANVAS widget.
1595
+ description:
1596
+ All canvas widgets must be enclosed within a CANVAS widget.
1597
+ The canvas background defaults to white. Use SETTING BACKCOLOR to set a
1598
+ different background color.
1583
1599
  warning: The canvas coordinate frame places (0,0) in the upper-left corner of the canvas.
1584
1600
  parameters:
1585
1601
  - name: Width
@@ -1590,6 +1606,30 @@ Canvas Widgets:
1590
1606
  required: true
1591
1607
  description: Height of the canvas
1592
1608
  values: .+
1609
+ settings:
1610
+ BACKCOLOR:
1611
+ summary: Sets the background color of the canvas
1612
+ since: 7.2.1
1613
+ parameters:
1614
+ - name: Color name or Red value
1615
+ required: true
1616
+ description: Common name for the color, e.g. 'black', 'red', etc.
1617
+ Alternatively if two more parameters are passed this is the
1618
+ Red value of the RGB value
1619
+ values: .+
1620
+ - name: Green value
1621
+ required: false
1622
+ description: Green value of the RGB value
1623
+ values: .+
1624
+ - name: Blue value
1625
+ required: false
1626
+ description: Blue value of the RGB value
1627
+ values: .+
1628
+ example: |
1629
+ CANVAS 150 50
1630
+ SETTING BACKCOLOR 17 21 28
1631
+ CANVASLABEL 5 30 "Dark canvas" 18 white
1632
+ END
1593
1633
  CANVASLABEL:
1594
1634
  summary: Draws text onto the canvas
1595
1635
  parameters:
@@ -1655,8 +1695,8 @@ Canvas Widgets:
1655
1695
  values: <%= %w(RAW CONVERTED FORMATTED) %>
1656
1696
  example: |
1657
1697
  CANVAS 200 100
1658
- CANVASLABELVALUE INST HEALTH_STATUS TEMP1 5 34 12 red
1659
- CANVASLABELVALUE INST HEALTH_STATUS TEMP2 5 70 10 blue FORMATTED
1698
+ CANVASLABELVALUE INST HEALTH_STATUS TEMP1 5 34 20 red
1699
+ CANVASLABELVALUE INST HEALTH_STATUS TEMP2 5 70 16 blue FORMATTED
1660
1700
  END
1661
1701
  CANVASIMAGE:
1662
1702
  summary: Displays an image on the canvas