openc3-cosmos-tool-docs 6.9.0 → 6.9.2
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/tools/staticdocs/404.html +2 -2
- data/tools/staticdocs/assets/css/{styles.946be27d.css → styles.41902cce.css} +1 -1
- data/tools/staticdocs/assets/images/activity-35dc5e3ab907ff79a599ab728b7a4ace155d86835a09f0c6fa8ceebf184b7984.png +0 -0
- data/tools/staticdocs/assets/images/add_role-e99225cd280a9de1e354586f00c92f52d0dae856ac015a561da2dd405de6cb55.png +0 -0
- data/tools/staticdocs/assets/images/blank_calendar-e02977fafde5379efc62fbaf82686898bfc4745dd081d62e52e3ee94c46bff69.png +0 -0
- data/tools/staticdocs/assets/images/cmd_packets-e7906db3691ccd29600e09cf005f6f53be9d9332ba4c319a1e81e1c8c6b665ed.png +0 -0
- data/tools/staticdocs/assets/images/cmd_tlm_server-117772d4be1adbf89805f5b530da301b3dcc0d5085a552d779c9bc692bac4c44.png +0 -0
- data/tools/staticdocs/assets/images/command_queue-e5a7c681a35ccb9efa4e6f8af4a6d18afcc334b43b64e3aa30110213d913a6ee.png +0 -0
- data/tools/staticdocs/assets/images/create_activity1-5e5a8cee97e818c21e3447d96797b950fe25eb5d0e153ffc899183d28b7fd1be.png +0 -0
- data/tools/staticdocs/assets/images/create_activity2-12024f05a06874c9e7b544bac4bec1a263de1715dcb9fa2dc1aea054682e8269.png +0 -0
- data/tools/staticdocs/assets/images/create_metadata1-70387fe6ea1aafaee24b4192e76000b31ed60d3a54f957d761cefb5d21498814.png +0 -0
- data/tools/staticdocs/assets/images/create_metadata2-ebb8f148142b387c81df70f8a565b27942ff5f6cd5bc098a6d58a27a9b36c09e.png +0 -0
- data/tools/staticdocs/assets/images/create_note1-28feb5cf0ad0899db78059dc4ea2567dc9cb03c8c776f1c65dd959f2910481f4.png +0 -0
- data/tools/staticdocs/assets/images/create_note2-c0929ea9194606f256465cd6a6c97c60c175cf2ecbf56e6597d4886b4249fe1f.png +0 -0
- data/tools/staticdocs/assets/images/data_flows-6796d95b379f3f69e3fcf9629c68aae389f3d9a287db5b4d0bbc385d478134b4.png +0 -0
- data/tools/staticdocs/assets/images/edit_role-1ea95cfab9edd9173196018fe14ec39ad0537e0c04c8f0f5af53fcf3173867df.png +0 -0
- data/tools/staticdocs/assets/images/gantt_view-3fe75622572f4a5bab2f73311127b71db5bf5aed475b90a2938c9ae61810ea54.png +0 -0
- data/tools/staticdocs/assets/images/interface_details-b71797d470007be1e0520bb5b859b4da9cd3411303388be9e6db914a99628dff.png +0 -0
- data/tools/staticdocs/assets/images/interfaces-05db0ed276077b796b54a3bca76bd0841bfb0d700456258c878359d332ff9f8f.png +0 -0
- data/tools/staticdocs/assets/images/keycloak_user_roles-d4c78e2a5d33c4ea3016250d849b3363deccd21b9562561793b81981acf773fe.png +0 -0
- data/tools/staticdocs/assets/images/list_view-edfc7b6fa90e43b85dd862f06c3662dee33b3c79be923a955706001d2f07eca4.png +0 -0
- data/tools/staticdocs/assets/images/options-4cb5e315138437db9f25c87feb4be2c61738c03bc3344d46977f44a94b0af738.png +0 -0
- data/tools/staticdocs/assets/images/packages-72c40796a00462cca280fe6e87d6baa92f20a2efb378a0a1a60453827c4cd38f.png +0 -0
- data/tools/staticdocs/assets/images/plugins-2ecbde86aa0ef62523fb1d17c385551a2fd5ff6a8f2db890f67bfb7adf66973e.png +0 -0
- data/tools/staticdocs/assets/images/protocol_details-408f871b0bd8440091ac95ca76cac353bb06d0b3a6c3f756dd11e7e746d7c20c.png +0 -0
- data/tools/staticdocs/assets/images/roles-37653453a2f2b704aacdf1c56c45d46b5fe56ac71c38a6d1fe29510fdc3ac203.png +0 -0
- data/tools/staticdocs/assets/images/scopes-dd892c6192160e86820a63d0d7798ed75eff4f96a4be9be0fb6bddebb82a9ddc.png +0 -0
- data/tools/staticdocs/assets/images/status-9b7ac4d919d196a2bf3379d0cb262c6609fb98074c744533bb9132097cb52155.png +0 -0
- data/tools/staticdocs/assets/images/targets-b07f7cd9f19a4ca02d2838a4de58c25168f01ee256e692878e3b27b833632aca.png +0 -0
- data/tools/staticdocs/assets/images/timeline-78e3ab74af1b600eb6640831133f0240a9c20047956b18b729263988a66b8e00.png +0 -0
- data/tools/staticdocs/assets/images/tlm_packets-18345c00fd6cc01a9f7a1e363fdf8375769ba5afa4ccf22c45925184eefc57ca.png +0 -0
- data/tools/staticdocs/assets/js/019369f3.4a1653c3.js +1 -0
- data/tools/staticdocs/assets/js/058ffc22.32f2b3f7.js +1 -0
- data/tools/staticdocs/assets/js/0686a885.a7333b95.js +1 -0
- data/tools/staticdocs/assets/js/078dbab0.64ae8502.js +1 -0
- data/tools/staticdocs/assets/js/0f5d161c.7e279344.js +1 -0
- data/tools/staticdocs/assets/js/0ff569c9.2aab45f2.js +1 -0
- data/tools/staticdocs/assets/js/10209fc9.4565c03f.js +1 -0
- data/tools/staticdocs/assets/js/103cc3be.6610d68d.js +1 -0
- data/tools/staticdocs/assets/js/13196248.d66fca61.js +1 -0
- data/tools/staticdocs/assets/js/13c1b4e4.5bb027bf.js +1 -0
- data/tools/staticdocs/assets/js/1c0a0c05.c66d2cd5.js +1 -0
- data/tools/staticdocs/assets/js/1e02e6a3.9bd7e41d.js +1 -0
- data/tools/staticdocs/assets/js/2047b354.57091c5c.js +1 -0
- data/tools/staticdocs/assets/js/22b3ac48.afad8999.js +1 -0
- data/tools/staticdocs/assets/js/{26b8abb2.858cb22d.js → 26b8abb2.dcaf4a64.js} +1 -1
- data/tools/staticdocs/assets/js/{3326.2db66e1b.js → 2754.1aabb61a.js} +1 -1
- data/tools/staticdocs/assets/js/2bb7bf90.417c7c24.js +1 -0
- data/tools/staticdocs/assets/js/2c15ad40.9ac78174.js +1 -0
- data/tools/staticdocs/assets/js/35398c5c.e106e87e.js +1 -0
- data/tools/staticdocs/assets/js/{3dd7ef3b.ceb26a04.js → 3dd7ef3b.d7f8b9cd.js} +1 -1
- data/tools/staticdocs/assets/js/40365d27.d9f50fa2.js +1 -0
- data/tools/staticdocs/assets/js/411898ad.2ba42394.js +1 -0
- data/tools/staticdocs/assets/js/{9623.44668503.js → 4212.6d8bdfa0.js} +1 -1
- data/tools/staticdocs/assets/js/42170351.067ef5bf.js +1 -0
- data/tools/staticdocs/assets/js/43652efd.658da795.js +1 -0
- data/tools/staticdocs/assets/js/4684.14bc5dde.js +1 -0
- data/tools/staticdocs/assets/js/{53ca7c5b.3ae5bb0f.js → 53ca7c5b.dfd52859.js} +1 -1
- data/tools/staticdocs/assets/js/{54d0d530.2f7aa091.js → 54d0d530.2cb8d081.js} +1 -1
- data/tools/staticdocs/assets/js/567dad64.2839bb3d.js +1 -0
- data/tools/staticdocs/assets/js/5738ba7a.d3cf18a7.js +1 -0
- data/tools/staticdocs/assets/js/59ed27a4.eb69cbc8.js +1 -0
- data/tools/staticdocs/assets/js/5b233ba7.c96c3512.js +1 -0
- data/tools/staticdocs/assets/js/5bc719f6.1ac7eb68.js +1 -0
- data/tools/staticdocs/assets/js/5c6ce5ec.507ee82d.js +1 -0
- data/tools/staticdocs/assets/js/{5e3ed378.821e5ed4.js → 5e3ed378.4df9c862.js} +1 -1
- data/tools/staticdocs/assets/js/5fe211ef.f88f4388.js +1 -0
- data/tools/staticdocs/assets/js/6822.e7d145ca.js +1 -0
- data/tools/staticdocs/assets/js/{6831b732.dc5bae56.js → 6831b732.e1f6dba2.js} +1 -1
- data/tools/staticdocs/assets/js/{696b4199.d197d085.js → 696b4199.ca5589ac.js} +1 -1
- data/tools/staticdocs/assets/js/6b210247.9645038a.js +1 -0
- data/tools/staticdocs/assets/js/6b65133b.e20fd90a.js +1 -0
- data/tools/staticdocs/assets/js/6f92e431.4af1d84b.js +1 -0
- data/tools/staticdocs/assets/js/72c6d8a8.33b4ade8.js +1 -0
- data/tools/staticdocs/assets/js/{5525.dd1645b0.js → 7453.c108c718.js} +1 -1
- data/tools/staticdocs/assets/js/75e64983.180a00e7.js +1 -0
- data/tools/staticdocs/assets/js/7724.decf13c5.js +1 -0
- data/tools/staticdocs/assets/js/867640d5.8e389f8a.js +1 -0
- data/tools/staticdocs/assets/js/89e76475.19eee62b.js +1 -0
- data/tools/staticdocs/assets/js/8b939c74.695b23ba.js +1 -0
- data/tools/staticdocs/assets/js/8f7843ee.fffd1922.js +1 -0
- data/tools/staticdocs/assets/js/9424f0b3.b69449bb.js +1 -0
- data/tools/staticdocs/assets/js/964eb012.ee8b3c36.js +1 -0
- data/tools/staticdocs/assets/js/97535711.237fc358.js +1 -0
- data/tools/staticdocs/assets/js/99581c43.0582936a.js +1 -0
- data/tools/staticdocs/assets/js/{9d6e81d0.879c9e9e.js → 9d6e81d0.2e825d3a.js} +1 -1
- data/tools/staticdocs/assets/js/9fb6059a.10a4e6be.js +1 -0
- data/tools/staticdocs/assets/js/a677c089.b21f50bd.js +1 -0
- data/tools/staticdocs/assets/js/a9987364.7fc39b81.js +1 -0
- data/tools/staticdocs/assets/js/a9b2dc27.a75a110f.js +1 -0
- data/tools/staticdocs/assets/js/aa6b6c1b.fe979b93.js +1 -0
- data/tools/staticdocs/assets/js/b062d239.17662e64.js +1 -0
- data/tools/staticdocs/assets/js/b38a6d74.8868b9d0.js +1 -0
- data/tools/staticdocs/assets/js/{b4596165.9e7f0be7.js → b4596165.2ed4461b.js} +1 -1
- data/tools/staticdocs/assets/js/b6d70f94.5c2fecd8.js +1 -0
- data/tools/staticdocs/assets/js/{b9f60ba6.63638354.js → b9f60ba6.b670205f.js} +1 -1
- data/tools/staticdocs/assets/js/bd0034eb.4f47d05b.js +1 -0
- data/tools/staticdocs/assets/js/c24eae19.59d90845.js +1 -0
- data/tools/staticdocs/assets/js/c956ad1e.78603023.js +1 -0
- data/tools/staticdocs/assets/js/cb8c3f08.2df335b2.js +1 -0
- data/tools/staticdocs/assets/js/cd879be4.c7304d91.js +1 -0
- data/tools/staticdocs/assets/js/cf1c01b8.0e7608a1.js +1 -0
- data/tools/staticdocs/assets/js/d1b923aa.9f1cb7ab.js +1 -0
- data/tools/staticdocs/assets/js/d1bfc316.61e55cb2.js +1 -0
- data/tools/staticdocs/assets/js/d24bf9b6.a79f1a36.js +1 -0
- data/tools/staticdocs/assets/js/d57a4b5d.1c05ac31.js +1 -0
- data/tools/staticdocs/assets/js/d59d8a14.849274f0.js +1 -0
- data/tools/staticdocs/assets/js/{d5d77c37.6b4ab31e.js → d5d77c37.efea20c9.js} +1 -1
- data/tools/staticdocs/assets/js/d66bf9c0.742ff681.js +1 -0
- data/tools/staticdocs/assets/js/d8ca4191.1c930b0b.js +1 -0
- data/tools/staticdocs/assets/js/d9b92eba.df6e59c2.js +1 -0
- data/tools/staticdocs/assets/js/db8fa1d0.7f3090fa.js +1 -0
- data/tools/staticdocs/assets/js/dbe31111.2d5f3225.js +1 -0
- data/tools/staticdocs/assets/js/{dc5f7beb.c703e464.js → dc5f7beb.53bef49e.js} +1 -1
- data/tools/staticdocs/assets/js/e501b0d1.c2d8ca29.js +1 -0
- data/tools/staticdocs/assets/js/f15615f1.7cc36bfe.js +1 -0
- data/tools/staticdocs/assets/js/f75a5f33.bc43f96a.js +1 -0
- data/tools/staticdocs/assets/js/{fd886806.fb8a587e.js → fd886806.e52d2c97.js} +1 -1
- data/tools/staticdocs/assets/js/{main.331b7e10.js → main.1ae7ceb9.js} +6 -6
- data/tools/staticdocs/assets/js/runtime~main.44a60fd4.js +1 -0
- data/tools/staticdocs/docs/configuration/accessors.html +75 -75
- data/tools/staticdocs/docs/configuration/command.html +95 -95
- data/tools/staticdocs/docs/configuration/conversions.html +55 -55
- data/tools/staticdocs/docs/configuration/format.html +25 -25
- data/tools/staticdocs/docs/configuration/interfaces.html +81 -81
- data/tools/staticdocs/docs/configuration/limits-response.html +13 -13
- data/tools/staticdocs/docs/configuration/plugins.html +131 -131
- data/tools/staticdocs/docs/configuration/processors.html +22 -22
- data/tools/staticdocs/docs/configuration/protocols.html +80 -80
- data/tools/staticdocs/docs/configuration/ssl-tls.html +59 -59
- data/tools/staticdocs/docs/configuration/table.html +56 -56
- data/tools/staticdocs/docs/configuration/target.html +20 -20
- data/tools/staticdocs/docs/configuration/telemetry-screens.html +259 -259
- data/tools/staticdocs/docs/configuration/telemetry.html +90 -90
- data/tools/staticdocs/docs/configuration.html +2 -2
- data/tools/staticdocs/docs/development/curl.html +21 -21
- data/tools/staticdocs/docs/development/developing.html +31 -31
- data/tools/staticdocs/docs/development/json-api.html +23 -23
- data/tools/staticdocs/docs/development/log-structure.html +12 -12
- data/tools/staticdocs/docs/development/roadmap.html +5 -5
- data/tools/staticdocs/docs/development/streaming-api.html +63 -63
- data/tools/staticdocs/docs/development/testing.html +27 -27
- data/tools/staticdocs/docs/development.html +2 -2
- data/tools/staticdocs/docs/getting-started/cli.html +49 -43
- data/tools/staticdocs/docs/getting-started/generators.html +37 -37
- data/tools/staticdocs/docs/getting-started/gettingstarted.html +66 -66
- data/tools/staticdocs/docs/getting-started/installation.html +30 -30
- data/tools/staticdocs/docs/getting-started/key-concepts.html +35 -35
- data/tools/staticdocs/docs/getting-started/podman.html +41 -41
- data/tools/staticdocs/docs/getting-started/requirements.html +38 -38
- data/tools/staticdocs/docs/getting-started/upgrading.html +93 -93
- data/tools/staticdocs/docs/getting-started/util.html +112 -0
- data/tools/staticdocs/docs/getting-started.html +2 -2
- data/tools/staticdocs/docs/guides/bridges.html +25 -25
- data/tools/staticdocs/docs/guides/cfs.html +43 -43
- data/tools/staticdocs/docs/guides/custom-widgets.html +39 -39
- data/tools/staticdocs/docs/guides/dynamic-packets.html +12 -12
- data/tools/staticdocs/docs/guides/exposing-microservices.html +23 -23
- data/tools/staticdocs/docs/guides/little-endian-bitfields.html +8 -8
- data/tools/staticdocs/docs/guides/local-mode.html +14 -14
- data/tools/staticdocs/docs/guides/logging.html +11 -11
- data/tools/staticdocs/docs/guides/monitoring.html +20 -20
- data/tools/staticdocs/docs/guides/performance.html +21 -21
- data/tools/staticdocs/docs/guides/raspberrypi.html +42 -42
- data/tools/staticdocs/docs/guides/reference-architectures.html +19 -19
- data/tools/staticdocs/docs/guides/roles-permissions.html +191 -0
- data/tools/staticdocs/docs/guides/script-writing.html +108 -108
- data/tools/staticdocs/docs/guides/scripting-api.html +698 -690
- data/tools/staticdocs/docs/guides/troubleshooting.html +27 -27
- data/tools/staticdocs/docs/guides.html +2 -2
- data/tools/staticdocs/docs/meta/contributing.html +24 -24
- data/tools/staticdocs/docs/meta/licenses.html +42 -42
- data/tools/staticdocs/docs/meta/philosophy.html +9 -9
- data/tools/staticdocs/docs/meta/vulnerabilities.html +8 -0
- data/tools/staticdocs/docs/meta/xtce.html +85 -85
- data/tools/staticdocs/docs/meta.html +2 -2
- data/tools/staticdocs/docs/privacy.html +18 -18
- data/tools/staticdocs/docs/tools/admin.html +32 -26
- data/tools/staticdocs/docs/tools/autonomic.html +19 -19
- data/tools/staticdocs/docs/tools/bucket-explorer.html +11 -11
- data/tools/staticdocs/docs/tools/calendar.html +34 -21
- data/tools/staticdocs/docs/tools/cmd-sender.html +19 -19
- data/tools/staticdocs/docs/tools/cmd-tlm-server.html +35 -26
- data/tools/staticdocs/docs/tools/command-history.html +7 -7
- data/tools/staticdocs/docs/tools/command-queue.html +12 -12
- data/tools/staticdocs/docs/tools/data-extractor.html +33 -33
- data/tools/staticdocs/docs/tools/data-viewer.html +13 -13
- data/tools/staticdocs/docs/tools/handbooks.html +5 -5
- data/tools/staticdocs/docs/tools/limits-monitor.html +22 -22
- data/tools/staticdocs/docs/tools/log-explorer.html +20 -20
- data/tools/staticdocs/docs/tools/packet-viewer.html +20 -20
- data/tools/staticdocs/docs/tools/script-runner.html +58 -58
- data/tools/staticdocs/docs/tools/systemhealth.html +26 -26
- data/tools/staticdocs/docs/tools/table-manager.html +17 -17
- data/tools/staticdocs/docs/tools/tlm-grapher.html +28 -28
- data/tools/staticdocs/docs/tools/tlm-viewer.html +18 -18
- data/tools/staticdocs/docs/tools.html +2 -2
- data/tools/staticdocs/docs.html +12 -12
- data/tools/staticdocs/img/admin/packages.png +0 -0
- data/tools/staticdocs/img/admin/plugins.png +0 -0
- data/tools/staticdocs/img/admin/roles.png +0 -0
- data/tools/staticdocs/img/admin/scopes.png +0 -0
- data/tools/staticdocs/img/calendar/activity.png +0 -0
- data/tools/staticdocs/img/calendar/blank_calendar.png +0 -0
- data/tools/staticdocs/img/calendar/calendar.png +0 -0
- data/tools/staticdocs/img/calendar/create_activity1.png +0 -0
- data/tools/staticdocs/img/calendar/create_activity2.png +0 -0
- data/tools/staticdocs/img/calendar/create_metadata1.png +0 -0
- data/tools/staticdocs/img/calendar/create_metadata2.png +0 -0
- data/tools/staticdocs/img/calendar/create_note1.png +0 -0
- data/tools/staticdocs/img/calendar/create_note2.png +0 -0
- data/tools/staticdocs/img/calendar/gantt_view.png +0 -0
- data/tools/staticdocs/img/calendar/list_view.png +0 -0
- data/tools/staticdocs/img/calendar/options.png +0 -0
- data/tools/staticdocs/img/calendar/timeline.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/cmd_packets.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/cmd_tlm_server.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/data_flows.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/interface_details.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/interfaces.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/protocol_details.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/routers.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/status.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/targets.png +0 -0
- data/tools/staticdocs/img/cmd_tlm_server/tlm_packets.png +0 -0
- data/tools/staticdocs/img/command_queue/command_queue.png +0 -0
- data/tools/staticdocs/img/guides/roles-permissions/add_role.png +0 -0
- data/tools/staticdocs/img/guides/roles-permissions/edit_role.png +0 -0
- data/tools/staticdocs/img/guides/roles-permissions/keycloak_user_roles.png +0 -0
- data/tools/staticdocs/index.html +2 -2
- data/tools/staticdocs/lunr-index-1762372934557.json +1 -0
- data/tools/staticdocs/lunr-index.json +1 -1
- data/tools/staticdocs/markdown-page.html +3 -3
- data/tools/staticdocs/search-doc-1762372934557.json +1 -0
- data/tools/staticdocs/search-doc.json +1 -1
- data/tools/staticdocs/sitemap.xml +1 -1
- metadata +137 -108
- data/tools/staticdocs/assets/images/blank_calendar-70e605942120937b862bd7039348229bab9af1f9c93d356ddbf401a3e8543c74.png +0 -0
- data/tools/staticdocs/assets/images/calendar-dacbcbb05175c76f3406b4aaade0465444c20b72e93366c79fed1f6eec018c42.png +0 -0
- data/tools/staticdocs/assets/images/cmd_packets-160c7b28230a14f05433d063cdccc63958bb5d90f4e6b80492cd9568b0761a75.png +0 -0
- data/tools/staticdocs/assets/images/cmd_tlm_server-dbc02e99c1c837efabeba52831d1d2a3445904fb06b758aaa747496725423fe5.png +0 -0
- data/tools/staticdocs/assets/images/command_queue-1a7f929500f5b51d87c653b83236b886fa2d348127a986d294813de5c52ff80b.png +0 -0
- data/tools/staticdocs/assets/images/create_activity1-c05ffc03af2df852aeb3ad246f53f259af504e0e6c64cdac21f9126947c49f95.png +0 -0
- data/tools/staticdocs/assets/images/create_activity2-58c7da6f79dd510701148c0c54fae02c830b9ca4af662a7b132987ed3410a8f7.png +0 -0
- data/tools/staticdocs/assets/images/create_metadata1-a331ba8f0bd19bf5f8d7f2e083c3c7164e9b7b9936f5a7f83c4141c62a6c46f6.png +0 -0
- data/tools/staticdocs/assets/images/create_metadata2-c57b5420d5469b48289030ed7c64758539c2319dc742159caa0d4c8fe35050a8.png +0 -0
- data/tools/staticdocs/assets/images/create_note1-472b93e8e0e3e66a2e6198e0d4573cdc38cc356df87be66163f990f18137f6c0.png +0 -0
- data/tools/staticdocs/assets/images/create_note2-770501a149ef4aabae24d0b636f46ed61fbdcfda9537c61637c07c60257e9228.png +0 -0
- data/tools/staticdocs/assets/images/interfaces-0fe2a4a02d9b8a16bbf178f0d4ee393a79ca606e8cf27ff7d8508bd2cb9b0643.png +0 -0
- data/tools/staticdocs/assets/images/list_view-2f36ce06962e67d5a4f1f060956e5089b3f13c8ab57f33103c3781687611e7a9.png +0 -0
- data/tools/staticdocs/assets/images/packages-3bfae1a91b0534077280c323a40e879a8ac6a7c3ac45376b3c706a098dab12c3.png +0 -0
- data/tools/staticdocs/assets/images/plugins-aabbe060bec19e6fa2490b737f20758af9000066121f5af85f260a3b14f9b3d8.png +0 -0
- data/tools/staticdocs/assets/images/status-8ba274306305afaa5642162904c234b69086870b56e1048b1fdffa481aa0e96b.png +0 -0
- data/tools/staticdocs/assets/images/targets-6b17daf175185b13bea9eddafd4773e5f41d1ef4e953134f30bee0799c1e5c31.png +0 -0
- data/tools/staticdocs/assets/images/tlm_packets-0b02f1f3799948a8278e90f11e7d7f283d9686d3dac18c68b41d25ef49568d22.png +0 -0
- data/tools/staticdocs/assets/js/019369f3.64763f3d.js +0 -1
- data/tools/staticdocs/assets/js/058ffc22.4be515f5.js +0 -1
- data/tools/staticdocs/assets/js/0686a885.3d58085e.js +0 -1
- data/tools/staticdocs/assets/js/078dbab0.f2cbcc66.js +0 -1
- data/tools/staticdocs/assets/js/0f5d161c.978b9fee.js +0 -1
- data/tools/staticdocs/assets/js/0ff569c9.27128023.js +0 -1
- data/tools/staticdocs/assets/js/10209fc9.669ef887.js +0 -1
- data/tools/staticdocs/assets/js/103cc3be.1a538098.js +0 -1
- data/tools/staticdocs/assets/js/13196248.f932d5bd.js +0 -1
- data/tools/staticdocs/assets/js/13c1b4e4.9735bb59.js +0 -1
- data/tools/staticdocs/assets/js/1c0a0c05.427f2699.js +0 -1
- data/tools/staticdocs/assets/js/1e02e6a3.da7b7250.js +0 -1
- data/tools/staticdocs/assets/js/2047b354.c86efa5f.js +0 -1
- data/tools/staticdocs/assets/js/22b3ac48.1932e5a5.js +0 -1
- data/tools/staticdocs/assets/js/2bb7bf90.78594fbb.js +0 -1
- data/tools/staticdocs/assets/js/2c15ad40.1b2d4730.js +0 -1
- data/tools/staticdocs/assets/js/3402.80344ef5.js +0 -1
- data/tools/staticdocs/assets/js/35398c5c.8a74eece.js +0 -1
- data/tools/staticdocs/assets/js/40365d27.f6769d57.js +0 -1
- data/tools/staticdocs/assets/js/4071.821f3b2b.js +0 -1
- data/tools/staticdocs/assets/js/411898ad.8ed3452c.js +0 -1
- data/tools/staticdocs/assets/js/42170351.7ff72adc.js +0 -1
- data/tools/staticdocs/assets/js/43652efd.ec6bb7e9.js +0 -1
- data/tools/staticdocs/assets/js/59ed27a4.695b2435.js +0 -1
- data/tools/staticdocs/assets/js/5b233ba7.b0d1a8b1.js +0 -1
- data/tools/staticdocs/assets/js/5bc719f6.c731b998.js +0 -1
- data/tools/staticdocs/assets/js/5c6ce5ec.211ced47.js +0 -1
- data/tools/staticdocs/assets/js/5fe211ef.9d68057c.js +0 -1
- data/tools/staticdocs/assets/js/6246.60dfff30.js +0 -1
- data/tools/staticdocs/assets/js/6b210247.d400f853.js +0 -1
- data/tools/staticdocs/assets/js/6b65133b.3550bdf0.js +0 -1
- data/tools/staticdocs/assets/js/6f92e431.0bc45585.js +0 -1
- data/tools/staticdocs/assets/js/72c6d8a8.7e6fb4fd.js +0 -1
- data/tools/staticdocs/assets/js/75e64983.338d2338.js +0 -1
- data/tools/staticdocs/assets/js/867640d5.555ba5ca.js +0 -1
- data/tools/staticdocs/assets/js/89e76475.a301b5e3.js +0 -1
- data/tools/staticdocs/assets/js/8b939c74.0ebaed2a.js +0 -1
- data/tools/staticdocs/assets/js/8f7843ee.e33ef7db.js +0 -1
- data/tools/staticdocs/assets/js/9424f0b3.4b6f004e.js +0 -1
- data/tools/staticdocs/assets/js/964eb012.c7f626c5.js +0 -1
- data/tools/staticdocs/assets/js/97535711.a6342866.js +0 -1
- data/tools/staticdocs/assets/js/99581c43.2bd0766d.js +0 -1
- data/tools/staticdocs/assets/js/9fb6059a.ce4de002.js +0 -1
- data/tools/staticdocs/assets/js/a677c089.758701f0.js +0 -1
- data/tools/staticdocs/assets/js/a9987364.e29e8a93.js +0 -1
- data/tools/staticdocs/assets/js/a9b2dc27.b7e66efd.js +0 -1
- data/tools/staticdocs/assets/js/aa6b6c1b.6bcbf484.js +0 -1
- data/tools/staticdocs/assets/js/b062d239.2cebb42b.js +0 -1
- data/tools/staticdocs/assets/js/b38a6d74.bb58fcec.js +0 -1
- data/tools/staticdocs/assets/js/b6d70f94.5e40680e.js +0 -1
- data/tools/staticdocs/assets/js/bd0034eb.9f460215.js +0 -1
- data/tools/staticdocs/assets/js/c24eae19.2ef0c706.js +0 -1
- data/tools/staticdocs/assets/js/cb8c3f08.28d962a4.js +0 -1
- data/tools/staticdocs/assets/js/cd879be4.782edb7f.js +0 -1
- data/tools/staticdocs/assets/js/cf1c01b8.7d5b6d66.js +0 -1
- data/tools/staticdocs/assets/js/d1b923aa.c012712f.js +0 -1
- data/tools/staticdocs/assets/js/d1bfc316.13a64896.js +0 -1
- data/tools/staticdocs/assets/js/d24bf9b6.bb93853a.js +0 -1
- data/tools/staticdocs/assets/js/d57a4b5d.e9712631.js +0 -1
- data/tools/staticdocs/assets/js/d59d8a14.79f4b29e.js +0 -1
- data/tools/staticdocs/assets/js/d66bf9c0.ca34a583.js +0 -1
- data/tools/staticdocs/assets/js/d8ca4191.599a241b.js +0 -1
- data/tools/staticdocs/assets/js/d9b92eba.44fde84d.js +0 -1
- data/tools/staticdocs/assets/js/db8fa1d0.39b9fdb6.js +0 -1
- data/tools/staticdocs/assets/js/dbe31111.4e811739.js +0 -1
- data/tools/staticdocs/assets/js/e501b0d1.c00adfa4.js +0 -1
- data/tools/staticdocs/assets/js/f15615f1.8591b830.js +0 -1
- data/tools/staticdocs/assets/js/f75a5f33.f16b6dd5.js +0 -1
- data/tools/staticdocs/assets/js/runtime~main.53a0c91e.js +0 -1
- data/tools/staticdocs/lunr-index-1759527994448.json +0 -1
- data/tools/staticdocs/search-doc-1759527994448.json +0 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/roles-permissions" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.9.2"><title data-rh=true>Roles and Permissions | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/guides/roles-permissions /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="Roles and Permissions | OpenC3 Docs"/><meta data-rh=true name=description content="Understanding COSMOS Enterprise roles and access control"/><meta data-rh=true property=og:description content="Understanding COSMOS Enterprise roles and access control"/><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png /><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/guides/roles-permissions /><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/guides/roles-permissions hreflang=en /><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/guides/roles-permissions hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/guides","name":"Guides","position":1},{"@type":"ListItem","item":"https://docs.openc3.com/tools/staticdocs/docs/guides/roles-permissions","name":"Roles and Permissions","position":2}]}</script><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.41902cce.css /><script src=/tools/staticdocs/assets/js/runtime~main.44a60fd4.js defer></script><script src=/tools/staticdocs/assets/js/main.1ae7ceb9.js defer></script></head><body class=navigation-with-keyboard><svg style="display: none;"><defs>
|
|
2
|
+
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
|
|
3
|
+
</defs></svg>
|
|
4
|
+
<script>!function(){var t;document.documentElement.setAttribute("data-theme",t||"dark"),document.documentElement.setAttribute("data-theme-choice",t||"dark")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg /><div role=region aria-label="Skip to main content"><a class=skipToContent_Ad3x href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_iYMB themedComponent--light__u60"/><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_iYMB themedComponent--dark_bnZ2"/></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class=navbarSearchContainer_BlpL><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled/></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_LBOZ"><div class=docsWrapper_fTY1><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_yH7o" type=button></button><div class=docRoot_stlz><aside class="theme-doc-sidebar-container docSidebarContainer_GDN6"><div class=sidebarViewport_N1UE><div class=sidebar_dl38><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu___bF"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs><span title=Introduction class=linkLabel_XLMJ>Introduction</span></a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started><span title="Getting Started" class=categoryLinkLabel_RXyj>Getting Started</span></a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist" href=/tools/staticdocs/docs/configuration><span title=Configuration class=categoryLinkLabel_RXyj>Configuration</span></a><button aria-label="Expand sidebar category 'Configuration'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools><span title=Tools class=categoryLinkLabel_RXyj>Tools</span></a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/guides><span title=Guides class=categoryLinkLabel_RXyj>Guides</span></a><button aria-label="Collapse sidebar category 'Guides'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/bridges><span title=Bridges class=linkLabel_XLMJ>Bridges</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/cfs><span title="COSMOS and NASA cFS" class=linkLabel_XLMJ>COSMOS and NASA cFS</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/custom-widgets><span title="Custom Widgets" class=linkLabel_XLMJ>Custom Widgets</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/dynamic-packets><span title="Dynamic Packets" class=linkLabel_XLMJ>Dynamic Packets</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/exposing-microservices><span title="Exposing Microservices" class=linkLabel_XLMJ>Exposing Microservices</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/little-endian-bitfields><span title="Little Endian Bitfields" class=linkLabel_XLMJ>Little Endian Bitfields</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/local-mode><span title="Local Mode" class=linkLabel_XLMJ>Local Mode</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/logging><span title=Logging class=linkLabel_XLMJ>Logging</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/monitoring><span title=Monitoring class=linkLabel_XLMJ>Monitoring</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/performance><span title=Performance class=linkLabel_XLMJ>Performance</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/raspberrypi><span title="Raspberry Pi" class=linkLabel_XLMJ>Raspberry Pi</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/reference-architectures><span title="Reference Architectures" class=linkLabel_XLMJ>Reference Architectures</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/guides/roles-permissions><span title="Roles and Permissions" class=linkLabel_XLMJ>Roles and Permissions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/script-writing><span title="Script Writing Guide" class=linkLabel_XLMJ>Script Writing Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/scripting-api><span title="Scripting API Guide" class=linkLabel_XLMJ>Scripting API Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/guides/troubleshooting><span title=Troubleshooting class=linkLabel_XLMJ>Troubleshooting</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist" href=/tools/staticdocs/docs/development><span title=Development class=categoryLinkLabel_RXyj>Development</span></a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_u_d3 menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta><span title=Meta class=categoryLinkLabel_RXyj>Meta</span></a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy><span title="OpenC3, Inc. Privacy Policy" class=linkLabel_XLMJ>OpenC3, Inc. Privacy Policy</span></a></ul></nav></div></div></aside><main class=docMainContainer_I77d><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_Vt7O"><div class=docItemContainer_E44C><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_j0mV" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_bFVZ><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/tools/staticdocs/docs/guides><span>Guides</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Roles and Permissions</span></ul></nav><div class="tocCollapsible_XYrz theme-doc-toc-mobile tocMobile_SBzZ"><button type=button class="clean-btn tocCollapsibleButton_hLJL">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Roles and Permissions</h1></header><p>COSMOS Enterprise provides a comprehensive role-based access control (RBAC) system that allows you to manage user permissions across different scopes. This system integrates with Keycloak for authentication and authorization.</p>
|
|
5
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=overview>Overview<a href=#overview class=hash-link aria-label="Direct link to Overview" title="Direct link to Overview" translate=no></a></h2>
|
|
6
|
+
<p>Roles in COSMOS Enterprise control what actions users can perform within the system. Roles are assigned to users per scope, allowing fine-grained control over access to different missions or projects.</p>
|
|
7
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=role-naming-convention>Role Naming Convention<a href=#role-naming-convention class=hash-link aria-label="Direct link to Role Naming Convention" title="Direct link to Role Naming Convention" translate=no></a></h3>
|
|
8
|
+
<p>Roles are assigned using the format: <code>{SCOPE}__{ROLE_NAME}</code></p>
|
|
9
|
+
<ul>
|
|
10
|
+
<li class=""><code>SCOPE</code>: The scope name (e.g., <code>DEFAULT</code>) or <code>ALLSCOPES</code> for global permissions</li>
|
|
11
|
+
<li class=""><code>ROLE_NAME</code>: One of the built-in roles or a custom role name</li>
|
|
12
|
+
</ul>
|
|
13
|
+
<p>Examples:</p>
|
|
14
|
+
<ul>
|
|
15
|
+
<li class=""><code>DEFAULT__operator</code> - Operator role in the DEFAULT scope</li>
|
|
16
|
+
<li class=""><code>MISSION1__viewer</code> - Viewer role in the MISSION1 scope</li>
|
|
17
|
+
<li class=""><code>ALLSCOPES__admin</code> - Admin role across all scopes</li>
|
|
18
|
+
</ul>
|
|
19
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=built-in-roles>Built-in Roles<a href=#built-in-roles class=hash-link aria-label="Direct link to Built-in Roles" title="Direct link to Built-in Roles" translate=no></a></h2>
|
|
20
|
+
<p>Individual built-in roles in COSMOS Enterprise are scoped to a minimal set of permissions. Individual users can have multiple roles (e.g., Admin and Operator) if users need administrative access and commanding access. COSMOS Enterprise includes five built-in roles with predefined permission sets:</p>
|
|
21
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=admin>Admin<a href=#admin class=hash-link aria-label="Direct link to Admin" title="Direct link to Admin" translate=no></a></h3>
|
|
22
|
+
<p>The <strong>Admin</strong> role provides administrative access within a scope. Admins can also manage the files within the MinIO bucket.</p>
|
|
23
|
+
<p><strong>Permissions:</strong></p>
|
|
24
|
+
<ul>
|
|
25
|
+
<li class=""><code>system</code> - View system information</li>
|
|
26
|
+
<li class=""><code>system_set</code> - Modify system settings</li>
|
|
27
|
+
<li class=""><code>tlm</code> - View telemetry data</li>
|
|
28
|
+
<li class=""><code>cmd_info</code> - View command information</li>
|
|
29
|
+
<li class=""><code>script_view</code> - View scripts</li>
|
|
30
|
+
<li class=""><code>admin</code> - Administrative functions (manage plugins, targets, interfaces, etc.)</li>
|
|
31
|
+
</ul>
|
|
32
|
+
<p><strong>Special Cases:</strong></p>
|
|
33
|
+
<ul>
|
|
34
|
+
<li class="">When assigned to <code>ALLSCOPES</code>, gains <code>superadmin</code> permission for system-wide administration</li>
|
|
35
|
+
<li class="">Can release command authority taken by other users in their scope</li>
|
|
36
|
+
</ul>
|
|
37
|
+
<p><strong>Use Case:</strong> Users responsible for system configuration and management.</p>
|
|
38
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=operator>Operator<a href=#operator class=hash-link aria-label="Direct link to Operator" title="Direct link to Operator" translate=no></a></h3>
|
|
39
|
+
<p>The <strong>Operator</strong> role has full access except for administrative functions and approval rights.</p>
|
|
40
|
+
<p><strong>Permissions:</strong></p>
|
|
41
|
+
<ul>
|
|
42
|
+
<li class=""><code>system</code> - View system information</li>
|
|
43
|
+
<li class=""><code>system_set</code> - Modify system settings</li>
|
|
44
|
+
<li class=""><code>tlm</code> - View telemetry data</li>
|
|
45
|
+
<li class=""><code>tlm_set</code> - Modify telemetry settings</li>
|
|
46
|
+
<li class=""><code>cmd_info</code> - View command information</li>
|
|
47
|
+
<li class=""><code>cmd_raw</code> - Send raw commands</li>
|
|
48
|
+
<li class=""><code>cmd</code> - Send commands</li>
|
|
49
|
+
<li class=""><code>script_view</code> - View scripts</li>
|
|
50
|
+
<li class=""><code>script_edit</code> - Create and edit scripts</li>
|
|
51
|
+
<li class=""><code>script_run</code> - Run scripts</li>
|
|
52
|
+
</ul>
|
|
53
|
+
<p><strong>Use Case:</strong> Power users who need full operational control but not administrative access.</p>
|
|
54
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=viewer>Viewer<a href=#viewer class=hash-link aria-label="Direct link to Viewer" title="Direct link to Viewer" translate=no></a></h3>
|
|
55
|
+
<p>The <strong>Viewer</strong> role provides read-only access to the system.</p>
|
|
56
|
+
<p><strong>Permissions:</strong></p>
|
|
57
|
+
<ul>
|
|
58
|
+
<li class=""><code>system</code> - View system information</li>
|
|
59
|
+
<li class=""><code>tlm</code> - View telemetry data</li>
|
|
60
|
+
<li class=""><code>cmd_info</code> - View command information</li>
|
|
61
|
+
<li class=""><code>script_view</code> - View scripts</li>
|
|
62
|
+
</ul>
|
|
63
|
+
<p><strong>Use Case:</strong> Users who need to monitor telemetry and system status without making changes.</p>
|
|
64
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=approver>Approver<a href=#approver class=hash-link aria-label="Direct link to Approver" title="Direct link to Approver" translate=no></a></h3>
|
|
65
|
+
<p>The <strong>Approver</strong> role is specifically for command approval workflows.</p>
|
|
66
|
+
<p><strong>Permissions:</strong></p>
|
|
67
|
+
<ul>
|
|
68
|
+
<li class=""><code>approve_hazardous</code> - Approve hazardous commands</li>
|
|
69
|
+
<li class=""><code>approve_restricted</code> - Approve restricted commands</li>
|
|
70
|
+
<li class=""><code>approve_normal</code> - Approve normal commands</li>
|
|
71
|
+
</ul>
|
|
72
|
+
<p><strong>Use Case:</strong> Users responsible for reviewing and approving commands before execution.</p>
|
|
73
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=runner>Runner<a href=#runner class=hash-link aria-label="Direct link to Runner" title="Direct link to Runner" translate=no></a></h3>
|
|
74
|
+
<p>The <strong>Runner</strong> role allows users to execute commands and scripts but cannot create or edit them. Runner does not come with approval rights.</p>
|
|
75
|
+
<p><strong>Permissions:</strong></p>
|
|
76
|
+
<ul>
|
|
77
|
+
<li class=""><code>system</code> - View system information</li>
|
|
78
|
+
<li class=""><code>system_set</code> - Modify system settings</li>
|
|
79
|
+
<li class=""><code>tlm</code> - View telemetry data</li>
|
|
80
|
+
<li class=""><code>tlm_set</code> - Modify telemetry settings</li>
|
|
81
|
+
<li class=""><code>cmd_info</code> - View command information</li>
|
|
82
|
+
<li class=""><code>cmd_raw</code> - Send raw commands</li>
|
|
83
|
+
<li class=""><code>cmd</code> - Send commands</li>
|
|
84
|
+
<li class=""><code>script_view</code> - View scripts</li>
|
|
85
|
+
<li class=""><code>script_run</code> - Run scripts</li>
|
|
86
|
+
</ul>
|
|
87
|
+
<p><strong>Use Case:</strong> Operators who execute procedures and send commands but don't modify configurations or scripts.</p>
|
|
88
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=permission-definitions>Permission Definitions<a href=#permission-definitions class=hash-link aria-label="Direct link to Permission Definitions" title="Direct link to Permission Definitions" translate=no></a></h2>
|
|
89
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=system-permissions>System Permissions<a href=#system-permissions class=hash-link aria-label="Direct link to System Permissions" title="Direct link to System Permissions" translate=no></a></h3>
|
|
90
|
+
<ul>
|
|
91
|
+
<li class=""><strong>system</strong> - View system information and status</li>
|
|
92
|
+
<li class=""><strong>system_set</strong> - Modify system settings and configurations</li>
|
|
93
|
+
</ul>
|
|
94
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=telemetry-permissions>Telemetry Permissions<a href=#telemetry-permissions class=hash-link aria-label="Direct link to Telemetry Permissions" title="Direct link to Telemetry Permissions" translate=no></a></h3>
|
|
95
|
+
<ul>
|
|
96
|
+
<li class=""><strong>tlm</strong> - View telemetry data</li>
|
|
97
|
+
<li class=""><strong>tlm_set</strong> - Modify telemetry settings (limits, conversions, etc.)</li>
|
|
98
|
+
</ul>
|
|
99
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=command-permissions>Command Permissions<a href=#command-permissions class=hash-link aria-label="Direct link to Command Permissions" title="Direct link to Command Permissions" translate=no></a></h3>
|
|
100
|
+
<ul>
|
|
101
|
+
<li class=""><strong>cmd_info</strong> - View command definitions and parameters</li>
|
|
102
|
+
<li class=""><strong>cmd_raw</strong> - Send raw binary commands</li>
|
|
103
|
+
<li class=""><strong>cmd</strong> - Send commands to targets</li>
|
|
104
|
+
</ul>
|
|
105
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=script-permissions>Script Permissions<a href=#script-permissions class=hash-link aria-label="Direct link to Script Permissions" title="Direct link to Script Permissions" translate=no></a></h3>
|
|
106
|
+
<ul>
|
|
107
|
+
<li class=""><strong>script_view</strong> - View script contents</li>
|
|
108
|
+
<li class=""><strong>script_edit</strong> - Create, edit, and delete scripts</li>
|
|
109
|
+
<li class=""><strong>script_run</strong> - Execute scripts</li>
|
|
110
|
+
</ul>
|
|
111
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=administrative-permissions>Administrative Permissions<a href=#administrative-permissions class=hash-link aria-label="Direct link to Administrative Permissions" title="Direct link to Administrative Permissions" translate=no></a></h3>
|
|
112
|
+
<ul>
|
|
113
|
+
<li class=""><strong>admin</strong> - Manage scope-level resources (targets, plugins, interfaces, routers, etc.)</li>
|
|
114
|
+
<li class=""><strong>superadmin</strong> - System-wide administration across all scopes (requires <code>ALLSCOPES__admin</code>)</li>
|
|
115
|
+
</ul>
|
|
116
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=approval-permissions>Approval Permissions<a href=#approval-permissions class=hash-link aria-label="Direct link to Approval Permissions" title="Direct link to Approval Permissions" translate=no></a></h3>
|
|
117
|
+
<ul>
|
|
118
|
+
<li class=""><strong>approve_hazardous</strong> - Approve hazardous commands</li>
|
|
119
|
+
<li class=""><strong>approve_restricted</strong> - Approve restricted commands</li>
|
|
120
|
+
<li class=""><strong>approve_normal</strong> - Approve normal commands</li>
|
|
121
|
+
</ul>
|
|
122
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=command-authority>Command Authority<a href=#command-authority class=hash-link aria-label="Direct link to Command Authority" title="Direct link to Command Authority" translate=no></a></h2>
|
|
123
|
+
<p>When command authority is enabled for a scope, an additional layer of authorization is applied to command-related permissions:</p>
|
|
124
|
+
<ul>
|
|
125
|
+
<li class="">Users must "take" command authority for a specific target before sending commands</li>
|
|
126
|
+
<li class="">Only the user who holds command authority can send commands to that target</li>
|
|
127
|
+
<li class="">Admin users (with <code>ALLSCOPES__admin</code> or <code>{SCOPE}__admin</code>) can release authority taken by other users</li>
|
|
128
|
+
<li class="">Command authority applies to these permissions when executed manually:<!-- -->
|
|
129
|
+
<ul>
|
|
130
|
+
<li class=""><code>tlm_set</code></li>
|
|
131
|
+
<li class=""><code>cmd_raw</code></li>
|
|
132
|
+
<li class=""><code>cmd</code></li>
|
|
133
|
+
<li class=""><code>script_run</code></li>
|
|
134
|
+
</ul>
|
|
135
|
+
</li>
|
|
136
|
+
</ul>
|
|
137
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=custom-roles>Custom Roles<a href=#custom-roles class=hash-link aria-label="Direct link to Custom Roles" title="Direct link to Custom Roles" translate=no></a></h2>
|
|
138
|
+
<p>In addition to the built-in roles, you can create custom roles with specific permission combinations.</p>
|
|
139
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=creating-custom-roles>Creating Custom Roles<a href=#creating-custom-roles class=hash-link aria-label="Direct link to Creating Custom Roles" title="Direct link to Creating Custom Roles" translate=no></a></h3>
|
|
140
|
+
<p>Custom roles are managed through the Admin Tool:</p>
|
|
141
|
+
<ol>
|
|
142
|
+
<li class="">Navigate to the Admin Tool</li>
|
|
143
|
+
<li class="">Go to the Roles tab</li>
|
|
144
|
+
<li class="">Click "Add" and enter a role name (single lowercase word recommended)</li>
|
|
145
|
+
<li class="">Click "Edit" to configure permissions for the role</li>
|
|
146
|
+
</ol>
|
|
147
|
+
<p><img decoding=async loading=lazy alt="Add Role" src=/tools/staticdocs/assets/images/add_role-e99225cd280a9de1e354586f00c92f52d0dae856ac015a561da2dd405de6cb55.png width=2566 height=860 class=img_JrJa /></p>
|
|
148
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=custom-role-permissions>Custom Role Permissions<a href=#custom-role-permissions class=hash-link aria-label="Direct link to Custom Role Permissions" title="Direct link to Custom Role Permissions" translate=no></a></h3>
|
|
149
|
+
<p>Custom roles can have granular permissions that target specific resources:</p>
|
|
150
|
+
<ul>
|
|
151
|
+
<li class=""><strong>target_name</strong> - Restrict permission to a specific target</li>
|
|
152
|
+
<li class=""><strong>packet_name</strong> - Restrict permission to a specific packet</li>
|
|
153
|
+
<li class=""><strong>interface_name</strong> - Restrict permission to a specific interface</li>
|
|
154
|
+
<li class=""><strong>router_name</strong> - Restrict permission to a specific router</li>
|
|
155
|
+
</ul>
|
|
156
|
+
<p>Example: A custom role could allow <code>cmd</code> permission only for the <code>INST1</code> target.</p>
|
|
157
|
+
<p><img decoding=async loading=lazy alt="Edit Role" src=/tools/staticdocs/assets/images/edit_role-1ea95cfab9edd9173196018fe14ec39ad0537e0c04c8f0f5af53fcf3173867df.png width=1062 height=1228 class=img_JrJa /></p>
|
|
158
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=authorization-flow>Authorization Flow<a href=#authorization-flow class=hash-link aria-label="Direct link to Authorization Flow" title="Direct link to Authorization Flow" translate=no></a></h2>
|
|
159
|
+
<p>When a user attempts an action, COSMOS Enterprise performs the following checks:</p>
|
|
160
|
+
<ol>
|
|
161
|
+
<li class=""><strong>Token Validation</strong> - Verify the JWT token from Keycloak</li>
|
|
162
|
+
<li class=""><strong>Role Extraction</strong> - Extract roles from the token's <code>realm_access</code> claim</li>
|
|
163
|
+
<li class=""><strong>Scope Matching</strong> - Match user roles against the requested scope or <code>ALLSCOPES</code></li>
|
|
164
|
+
<li class=""><strong>Permission Check</strong> - Verify the action's required permission is granted by the role</li>
|
|
165
|
+
<li class=""><strong>Resource Matching</strong> - For custom roles, check if specific resources match</li>
|
|
166
|
+
<li class=""><strong>Command Authority</strong> - If applicable, verify command authority for the target</li>
|
|
167
|
+
</ol>
|
|
168
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=default-users>Default Users<a href=#default-users class=hash-link aria-label="Direct link to Default Users" title="Direct link to Default Users" translate=no></a></h2>
|
|
169
|
+
<p>COSMOS Enterprise Keycloak realm includes default test users for each role:</p>
|
|
170
|
+
<table><thead><tr><th>Username<th>Password<th>Default Role<th>Email<tbody><tr><td>operator<td>operator<td>DEFAULT__operator<td><a href=mailto:operator@openc3.com target=_blank rel="noopener noreferrer" class="">operator@openc3.com</a><tr><td>runner<td>runner<td>DEFAULT__runner<td><a href=mailto:runner@openc3.com target=_blank rel="noopener noreferrer" class="">runner@openc3.com</a><tr><td>viewer<td>viewer<td>DEFAULT__viewer<td><a href=mailto:viewer@openc3.com target=_blank rel="noopener noreferrer" class="">viewer@openc3.com</a><tr><td>admin<td>admin<td>ALLSCOPES__admin<td><a href=mailto:admin@openc3.com target=_blank rel="noopener noreferrer" class="">admin@openc3.com</a><tr><td>approver<td>approver<td>DEFAULT__approver<td><a href=mailto:approver@openc3.com target=_blank rel="noopener noreferrer" class="">approver@openc3.com</a></table>
|
|
171
|
+
<p><strong>Note:</strong> These are default development/testing accounts. In production deployments, you should configure proper authentication and remove or change these default credentials.</p>
|
|
172
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=best-practices>Best Practices<a href=#best-practices class=hash-link aria-label="Direct link to Best Practices" title="Direct link to Best Practices" translate=no></a></h2>
|
|
173
|
+
<ol>
|
|
174
|
+
<li class=""><strong>Principle of Least Privilege</strong> - Assign users the minimum permissions needed for their role</li>
|
|
175
|
+
<li class=""><strong>Use Scopes</strong> - Leverage scopes to separate different missions or projects</li>
|
|
176
|
+
<li class=""><strong>Custom Roles</strong> - Create custom roles for specialized needs rather than giving admin access</li>
|
|
177
|
+
<li class=""><strong>Command Authority</strong> - Enable command authority for production systems to prevent conflicts</li>
|
|
178
|
+
<li class=""><strong>Regular Audits</strong> - Review user roles and permissions periodically</li>
|
|
179
|
+
<li class=""><strong>Production Security</strong> - Replace default credentials and integrate with your organization's SSO/IdP</li>
|
|
180
|
+
</ol>
|
|
181
|
+
<h2 class="anchor anchorTargetStickyNavbar_BQm5" id=managing-roles>Managing Roles<a href=#managing-roles class=hash-link aria-label="Direct link to Managing Roles" title="Direct link to Managing Roles" translate=no></a></h2>
|
|
182
|
+
<h3 class="anchor anchorTargetStickyNavbar_BQm5" id=viewing--assigning-roles-to-users>Viewing / Assigning Roles to Users<a href=#viewing--assigning-roles-to-users class=hash-link aria-label="Direct link to Viewing / Assigning Roles to Users" title="Direct link to Viewing / Assigning Roles to Users" translate=no></a></h3>
|
|
183
|
+
<p>Roles are managed in Keycloak:</p>
|
|
184
|
+
<ol>
|
|
185
|
+
<li class="">Access the Keycloak admin console</li>
|
|
186
|
+
<li class="">Navigate to Users</li>
|
|
187
|
+
<li class="">Select a user</li>
|
|
188
|
+
<li class="">Go to Role Mappings</li>
|
|
189
|
+
<li class="">Assign roles using the <code>{SCOPE}__{ROLE_NAME}</code> format</li>
|
|
190
|
+
</ol>
|
|
191
|
+
<p><img decoding=async loading=lazy alt="Keycloak User Roles" src=/tools/staticdocs/assets/images/keycloak_user_roles-d4c78e2a5d33c4ea3016250d849b3363deccd21b9562561793b81981acf773fe.png width=2980 height=1354 class=img_JrJa /></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_yVnS"><a href=https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/roles-permissions.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_ilel aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_UZ1E"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/tools/staticdocs/docs/guides/reference-architectures><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Reference Architectures</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/tools/staticdocs/docs/guides/script-writing><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Script Writing Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_Ka_U thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#overview class="table-of-contents__link toc-highlight">Overview</a><ul><li><a href=#role-naming-convention class="table-of-contents__link toc-highlight">Role Naming Convention</a></ul><li><a href=#built-in-roles class="table-of-contents__link toc-highlight">Built-in Roles</a><ul><li><a href=#admin class="table-of-contents__link toc-highlight">Admin</a><li><a href=#operator class="table-of-contents__link toc-highlight">Operator</a><li><a href=#viewer class="table-of-contents__link toc-highlight">Viewer</a><li><a href=#approver class="table-of-contents__link toc-highlight">Approver</a><li><a href=#runner class="table-of-contents__link toc-highlight">Runner</a></ul><li><a href=#permission-definitions class="table-of-contents__link toc-highlight">Permission Definitions</a><ul><li><a href=#system-permissions class="table-of-contents__link toc-highlight">System Permissions</a><li><a href=#telemetry-permissions class="table-of-contents__link toc-highlight">Telemetry Permissions</a><li><a href=#command-permissions class="table-of-contents__link toc-highlight">Command Permissions</a><li><a href=#script-permissions class="table-of-contents__link toc-highlight">Script Permissions</a><li><a href=#administrative-permissions class="table-of-contents__link toc-highlight">Administrative Permissions</a><li><a href=#approval-permissions class="table-of-contents__link toc-highlight">Approval Permissions</a></ul><li><a href=#command-authority class="table-of-contents__link toc-highlight">Command Authority</a><li><a href=#custom-roles class="table-of-contents__link toc-highlight">Custom Roles</a><ul><li><a href=#creating-custom-roles class="table-of-contents__link toc-highlight">Creating Custom Roles</a><li><a href=#custom-role-permissions class="table-of-contents__link toc-highlight">Custom Role Permissions</a></ul><li><a href=#authorization-flow class="table-of-contents__link toc-highlight">Authorization Flow</a><li><a href=#default-users class="table-of-contents__link toc-highlight">Default Users</a><li><a href=#best-practices class="table-of-contents__link toc-highlight">Best Practices</a><li><a href=#managing-roles class="table-of-contents__link toc-highlight">Managing Roles</a><ul><li><a href=#viewing--assigning-roles-to-users class="table-of-contents__link toc-highlight">Viewing / Assigning Roles to Users</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Homepage</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://openc3.com target=_blank rel="noopener noreferrer" class=footer__link-item>Home</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs>Documentation</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.linkedin.com/company/openc3 target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_IsiZ><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/OpenC3/cosmos target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_IsiZ><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs/privacy>Privacy</a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 OpenC3, Inc.</div></div></div></footer></div></body>
|