openc3-cosmos-tool-docs 5.16.2 → 5.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +4 -4
  3. data/tools/staticdocs/assets/js/{019369f3.3a124fd7.js → 019369f3.34291acc.js} +1 -1
  4. data/tools/staticdocs/assets/js/{058ffc22.c85ad785.js → 058ffc22.8d9049f4.js} +1 -1
  5. data/tools/staticdocs/assets/js/{0686a885.4d6b8154.js → 0686a885.dde7b18b.js} +1 -1
  6. data/tools/staticdocs/assets/js/{078dbab0.45ea4593.js → 078dbab0.b275e04c.js} +1 -1
  7. data/tools/staticdocs/assets/js/{0f5d161c.3dbf9f60.js → 0f5d161c.ca02c5b2.js} +1 -1
  8. data/tools/staticdocs/assets/js/{0ff569c9.317b47d0.js → 0ff569c9.ad025a56.js} +1 -1
  9. data/tools/staticdocs/assets/js/103cc3be.6b6cd0fa.js +1 -0
  10. data/tools/staticdocs/assets/js/{13196248.d8f8ef9f.js → 13196248.9e7794e3.js} +1 -1
  11. data/tools/staticdocs/assets/js/13c1b4e4.cec67b9c.js +1 -0
  12. data/tools/staticdocs/assets/js/{767ae34d.4ab04b1e.js → 1e02e6a3.e6ef8665.js} +1 -1
  13. data/tools/staticdocs/assets/js/{2047b354.75fe47dd.js → 2047b354.bdd2586a.js} +1 -1
  14. data/tools/staticdocs/assets/js/{22b3ac48.299bf4d6.js → 22b3ac48.0f4fbe9d.js} +1 -1
  15. data/tools/staticdocs/assets/js/{2bb7bf90.c642620c.js → 2bb7bf90.043455de.js} +1 -1
  16. data/tools/staticdocs/assets/js/{3dd7ef3b.f84c6956.js → 3dd7ef3b.c7c1d93f.js} +1 -1
  17. data/tools/staticdocs/assets/js/{40365d27.c318f801.js → 40365d27.7eb3f7b1.js} +1 -1
  18. data/tools/staticdocs/assets/js/{411898ad.f103f64b.js → 411898ad.d5f62a27.js} +1 -1
  19. data/tools/staticdocs/assets/js/{42170351.24db3d9a.js → 42170351.69a8ed02.js} +1 -1
  20. data/tools/staticdocs/assets/js/{43652efd.4e7d6a97.js → 43652efd.be2c1d02.js} +1 -1
  21. data/tools/staticdocs/assets/js/{54d0d530.769f5473.js → 54d0d530.28ba5be7.js} +1 -1
  22. data/tools/staticdocs/assets/js/5b233ba7.9c621552.js +1 -0
  23. data/tools/staticdocs/assets/js/{5bc719f6.84f6ce9e.js → 5bc719f6.7fa17221.js} +1 -1
  24. data/tools/staticdocs/assets/js/{5c6ce5ec.8667906a.js → 5c6ce5ec.5e6ca46b.js} +1 -1
  25. data/tools/staticdocs/assets/js/{5fe211ef.1d991947.js → 5fe211ef.71dc8326.js} +1 -1
  26. data/tools/staticdocs/assets/js/62df909c.906d9999.js +1 -0
  27. data/tools/staticdocs/assets/js/{d52d6961.1d15c902.js → 630e5448.6fea087c.js} +1 -1
  28. data/tools/staticdocs/assets/js/{6831b732.bbf2813b.js → 6831b732.5714d508.js} +1 -1
  29. data/tools/staticdocs/assets/js/696b4199.0335bd94.js +1 -0
  30. data/tools/staticdocs/assets/js/{6b210247.074332a1.js → 6b210247.2cbd59e6.js} +1 -1
  31. data/tools/staticdocs/assets/js/{6b65133b.109a6bef.js → 6b65133b.87dc7da6.js} +1 -1
  32. data/tools/staticdocs/assets/js/6f92e431.300a9857.js +1 -0
  33. data/tools/staticdocs/assets/js/{72c6d8a8.5fca8d68.js → 72c6d8a8.cfccace6.js} +1 -1
  34. data/tools/staticdocs/assets/js/75e64983.932fbc0e.js +1 -0
  35. data/tools/staticdocs/assets/js/{ca2c0ac4.adbecf86.js → 7f5b2696.60735273.js} +1 -1
  36. data/tools/staticdocs/assets/js/{867640d5.a8f59357.js → 867640d5.ffd4cf4c.js} +1 -1
  37. data/tools/staticdocs/assets/js/89e76475.97389cc5.js +1 -0
  38. data/tools/staticdocs/assets/js/{8f7843ee.0f25fdc3.js → 8f7843ee.d1ffd5ee.js} +1 -1
  39. data/tools/staticdocs/assets/js/9424f0b3.29299bde.js +1 -0
  40. data/tools/staticdocs/assets/js/{97535711.ddc0f5af.js → 97535711.fc45ced1.js} +1 -1
  41. data/tools/staticdocs/assets/js/{99581c43.0767018a.js → 99581c43.8e571df8.js} +1 -1
  42. data/tools/staticdocs/assets/js/{9fb6059a.30085d79.js → 9fb6059a.42881e94.js} +1 -1
  43. data/tools/staticdocs/assets/js/a507c363.04b98d2c.js +1 -0
  44. data/tools/staticdocs/assets/js/{a677c089.48b6c791.js → a677c089.b2928bac.js} +1 -1
  45. data/tools/staticdocs/assets/js/{a9987364.cfb3492e.js → a9987364.8f065f19.js} +1 -1
  46. data/tools/staticdocs/assets/js/{aa6b6c1b.a13cb467.js → aa6b6c1b.d78e5212.js} +1 -1
  47. data/tools/staticdocs/assets/js/{b4596165.b4c6c1b8.js → b4596165.6806d46b.js} +1 -1
  48. data/tools/staticdocs/assets/js/b6d70f94.f5514e8b.js +1 -0
  49. data/tools/staticdocs/assets/js/{b9f60ba6.655a4097.js → b9f60ba6.c3b3046d.js} +1 -1
  50. data/tools/staticdocs/assets/js/{bd0034eb.ff7f6265.js → bd0034eb.b4e3d6c1.js} +1 -1
  51. data/tools/staticdocs/assets/js/{c24eae19.98857ebf.js → c24eae19.6b084c7c.js} +1 -1
  52. data/tools/staticdocs/assets/js/{d394346f.e3f500eb.js → c2598f55.c5a1bac3.js} +1 -1
  53. data/tools/staticdocs/assets/js/{cb8c3f08.f669adda.js → cb8c3f08.a0ef4b5f.js} +1 -1
  54. data/tools/staticdocs/assets/js/{cd879be4.6ee752c7.js → cd879be4.6f19050a.js} +1 -1
  55. data/tools/staticdocs/assets/js/{eb3c311a.1b6ccdde.js → ce89ef36.aa518a52.js} +1 -1
  56. data/tools/staticdocs/assets/js/d1b923aa.3f3e186d.js +1 -0
  57. data/tools/staticdocs/assets/js/{d1bfc316.feddf1f3.js → d1bfc316.2d823a88.js} +1 -1
  58. data/tools/staticdocs/assets/js/{d24bf9b6.31d82456.js → d24bf9b6.53eca5e8.js} +1 -1
  59. data/tools/staticdocs/assets/js/{d57a4b5d.905988ec.js → d57a4b5d.aaa48891.js} +1 -1
  60. data/tools/staticdocs/assets/js/d5d77c37.be6fe7b6.js +1 -0
  61. data/tools/staticdocs/assets/js/{d8ca4191.56c22a69.js → d8ca4191.c6632184.js} +1 -1
  62. data/tools/staticdocs/assets/js/{d9b92eba.16d983a0.js → d9b92eba.c6a2c7e5.js} +1 -1
  63. data/tools/staticdocs/assets/js/{db8fa1d0.c35b153c.js → db8fa1d0.f078bc02.js} +1 -1
  64. data/tools/staticdocs/assets/js/dc5f7beb.a4afe7cd.js +1 -0
  65. data/tools/staticdocs/assets/js/{adf499b4.f7df5738.js → dfbae5fd.d1484e14.js} +1 -1
  66. data/tools/staticdocs/assets/js/{e501b0d1.3aa571ae.js → e501b0d1.d108a8a9.js} +1 -1
  67. data/tools/staticdocs/assets/js/{ebec1ccb.a801549e.js → ebec1ccb.1ded1149.js} +1 -1
  68. data/tools/staticdocs/assets/js/{f15615f1.0a240e68.js → f15615f1.f9b655a6.js} +1 -1
  69. data/tools/staticdocs/assets/js/fd886806.a21dd400.js +1 -0
  70. data/tools/staticdocs/assets/js/main.c2e2b617.js +2 -0
  71. data/tools/staticdocs/assets/js/runtime~main.2bb31799.js +1 -0
  72. data/tools/staticdocs/docs/configuration/command.html +6 -6
  73. data/tools/staticdocs/docs/configuration/format.html +5 -5
  74. data/tools/staticdocs/docs/configuration/interfaces.html +5 -5
  75. data/tools/staticdocs/docs/configuration/plugins.html +5 -5
  76. data/tools/staticdocs/docs/configuration/protocols.html +5 -5
  77. data/tools/staticdocs/docs/configuration/ssl-tls.html +5 -5
  78. data/tools/staticdocs/docs/configuration/table.html +5 -5
  79. data/tools/staticdocs/docs/configuration/target.html +5 -5
  80. data/tools/staticdocs/docs/configuration/telemetry-screens.html +18 -5
  81. data/tools/staticdocs/docs/configuration/telemetry.html +5 -5
  82. data/tools/staticdocs/docs/configuration.html +4 -4
  83. data/tools/staticdocs/docs/development/curl.html +5 -5
  84. data/tools/staticdocs/docs/development/developing.html +5 -5
  85. data/tools/staticdocs/docs/development/host-install.html +5 -5
  86. data/tools/staticdocs/docs/development/json-api.html +5 -5
  87. data/tools/staticdocs/docs/development/log-structure.html +5 -5
  88. data/tools/staticdocs/docs/development/roadmap.html +5 -5
  89. data/tools/staticdocs/docs/development/streaming-api.html +4 -4
  90. data/tools/staticdocs/docs/development/testing.html +5 -5
  91. data/tools/staticdocs/docs/development.html +4 -4
  92. data/tools/staticdocs/docs/getting-started/generators.html +5 -5
  93. data/tools/staticdocs/docs/getting-started/gettingstarted.html +5 -5
  94. data/tools/staticdocs/docs/getting-started/installation.html +6 -6
  95. data/tools/staticdocs/docs/getting-started/key_concepts.html +5 -5
  96. data/tools/staticdocs/docs/getting-started/podman.html +5 -5
  97. data/tools/staticdocs/docs/getting-started/requirements.html +5 -5
  98. data/tools/staticdocs/docs/getting-started/upgrading.html +5 -5
  99. data/tools/staticdocs/docs/getting-started.html +4 -4
  100. data/tools/staticdocs/docs/guides/bridges.html +5 -5
  101. data/tools/staticdocs/docs/guides/cfs.html +5 -5
  102. data/tools/staticdocs/docs/guides/custom-widgets.html +5 -5
  103. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +4 -4
  104. data/tools/staticdocs/docs/guides/local-mode.html +5 -5
  105. data/tools/staticdocs/docs/guides/logging.html +5 -5
  106. data/tools/staticdocs/docs/guides/monitoring.html +5 -5
  107. data/tools/staticdocs/docs/guides/performance.html +5 -5
  108. data/tools/staticdocs/docs/guides/raspberrypi.html +5 -5
  109. data/tools/staticdocs/docs/guides/script-writing.html +5 -5
  110. data/tools/staticdocs/docs/guides/scripting-api.html +5 -5
  111. data/tools/staticdocs/docs/guides.html +4 -4
  112. data/tools/staticdocs/docs/meta/contributing.html +5 -5
  113. data/tools/staticdocs/docs/meta/licenses.html +5 -5
  114. data/tools/staticdocs/docs/meta/philosophy.html +4 -4
  115. data/tools/staticdocs/docs/meta/xtce.html +5 -5
  116. data/tools/staticdocs/docs/meta.html +4 -4
  117. data/tools/staticdocs/docs/privacy.html +5 -5
  118. data/tools/staticdocs/docs/tools/autonomic.html +5 -5
  119. data/tools/staticdocs/docs/tools/bucket-explorer.html +5 -5
  120. data/tools/staticdocs/docs/tools/calendar.html +5 -5
  121. data/tools/staticdocs/docs/tools/cmd-sender.html +5 -5
  122. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +5 -5
  123. data/tools/staticdocs/docs/tools/data-extractor.html +5 -5
  124. data/tools/staticdocs/docs/tools/data-viewer.html +5 -5
  125. data/tools/staticdocs/docs/tools/handbooks.html +5 -5
  126. data/tools/staticdocs/docs/tools/limits-monitor.html +5 -5
  127. data/tools/staticdocs/docs/tools/packet-viewer.html +5 -5
  128. data/tools/staticdocs/docs/tools/script-runner.html +5 -5
  129. data/tools/staticdocs/docs/tools/table-manager.html +5 -5
  130. data/tools/staticdocs/docs/tools/tlm-grapher.html +5 -5
  131. data/tools/staticdocs/docs/tools/tlm-viewer.html +5 -5
  132. data/tools/staticdocs/docs/tools.html +4 -4
  133. data/tools/staticdocs/docs.html +5 -5
  134. data/tools/staticdocs/index.html +4 -4
  135. data/tools/staticdocs/lunr-index-1719505302032.json +1 -0
  136. data/tools/staticdocs/lunr-index.json +1 -1
  137. data/tools/staticdocs/markdown-page.html +4 -4
  138. data/tools/staticdocs/search-doc-1719505302032.json +1 -0
  139. data/tools/staticdocs/search-doc.json +1 -1
  140. metadata +74 -74
  141. data/tools/staticdocs/assets/js/103cc3be.a946540f.js +0 -1
  142. data/tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js +0 -1
  143. data/tools/staticdocs/assets/js/3b6e6f8d.3eef0a1d.js +0 -1
  144. data/tools/staticdocs/assets/js/5b233ba7.0029b2f5.js +0 -1
  145. data/tools/staticdocs/assets/js/696b4199.2700ad91.js +0 -1
  146. data/tools/staticdocs/assets/js/6f92e431.67f5a7a4.js +0 -1
  147. data/tools/staticdocs/assets/js/75e64983.e31793e1.js +0 -1
  148. data/tools/staticdocs/assets/js/89e76475.de702714.js +0 -1
  149. data/tools/staticdocs/assets/js/9424f0b3.b24d0393.js +0 -1
  150. data/tools/staticdocs/assets/js/a507c363.198e9246.js +0 -1
  151. data/tools/staticdocs/assets/js/b6d70f94.20a403bf.js +0 -1
  152. data/tools/staticdocs/assets/js/d1b923aa.dcb1dede.js +0 -1
  153. data/tools/staticdocs/assets/js/d5d77c37.80e1a28b.js +0 -1
  154. data/tools/staticdocs/assets/js/dc5f7beb.291f4b91.js +0 -1
  155. data/tools/staticdocs/assets/js/fd886806.dc7cdf8e.js +0 -1
  156. data/tools/staticdocs/assets/js/main.eec2a1b0.js +0 -2
  157. data/tools/staticdocs/assets/js/runtime~main.14022dc5.js +0 -1
  158. data/tools/staticdocs/lunr-index-1716490741709.json +0 -1
  159. data/tools/staticdocs/search-doc-1716490741709.json +0 -1
  160. /data/tools/staticdocs/assets/js/{main.eec2a1b0.js.LICENSE.txt → main.c2e2b617.js.LICENSE.txt} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openc3-cosmos-tool-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.16.2
4
+ version: 5.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Melton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-05-23 00:00:00.000000000 Z
12
+ date: 2024-06-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: " This plugin makes the OpenC3 documentation website available as
15
15
  a tool\n"
@@ -134,88 +134,88 @@ files:
134
134
  - tools/staticdocs/assets/images/two_full_height-ccba2940b80345f3569ea47b7ddd3390c08195de91559f5586f85e36e411afd6.png
135
135
  - tools/staticdocs/assets/images/two_full_width-0116adbf994500a24d4717e002d32098f8d6197bcece510b84b90400f23feade.png
136
136
  - tools/staticdocs/assets/images/view_menu-a02cfbd5e6fafa5d3b4f1ae76bfbd63f49388939b4732bf91709f48e44498d19.png
137
- - tools/staticdocs/assets/js/019369f3.3a124fd7.js
138
- - tools/staticdocs/assets/js/058ffc22.c85ad785.js
139
- - tools/staticdocs/assets/js/0686a885.4d6b8154.js
140
- - tools/staticdocs/assets/js/078dbab0.45ea4593.js
141
- - tools/staticdocs/assets/js/0f5d161c.3dbf9f60.js
142
- - tools/staticdocs/assets/js/0ff569c9.317b47d0.js
143
- - tools/staticdocs/assets/js/103cc3be.a946540f.js
144
- - tools/staticdocs/assets/js/13196248.d8f8ef9f.js
145
- - tools/staticdocs/assets/js/13c1b4e4.50ee3d02.js
146
- - tools/staticdocs/assets/js/2047b354.75fe47dd.js
147
- - tools/staticdocs/assets/js/22b3ac48.299bf4d6.js
137
+ - tools/staticdocs/assets/js/019369f3.34291acc.js
138
+ - tools/staticdocs/assets/js/058ffc22.8d9049f4.js
139
+ - tools/staticdocs/assets/js/0686a885.dde7b18b.js
140
+ - tools/staticdocs/assets/js/078dbab0.b275e04c.js
141
+ - tools/staticdocs/assets/js/0f5d161c.ca02c5b2.js
142
+ - tools/staticdocs/assets/js/0ff569c9.ad025a56.js
143
+ - tools/staticdocs/assets/js/103cc3be.6b6cd0fa.js
144
+ - tools/staticdocs/assets/js/13196248.9e7794e3.js
145
+ - tools/staticdocs/assets/js/13c1b4e4.cec67b9c.js
146
+ - tools/staticdocs/assets/js/1e02e6a3.e6ef8665.js
147
+ - tools/staticdocs/assets/js/2047b354.bdd2586a.js
148
+ - tools/staticdocs/assets/js/22b3ac48.0f4fbe9d.js
148
149
  - tools/staticdocs/assets/js/2601.ca992ab9.js
149
150
  - tools/staticdocs/assets/js/26b8abb2.dcdf815e.js
150
- - tools/staticdocs/assets/js/2bb7bf90.c642620c.js
151
- - tools/staticdocs/assets/js/3b6e6f8d.3eef0a1d.js
152
- - tools/staticdocs/assets/js/3dd7ef3b.f84c6956.js
153
- - tools/staticdocs/assets/js/40365d27.c318f801.js
154
- - tools/staticdocs/assets/js/411898ad.f103f64b.js
155
- - tools/staticdocs/assets/js/42170351.24db3d9a.js
156
- - tools/staticdocs/assets/js/43652efd.4e7d6a97.js
151
+ - tools/staticdocs/assets/js/2bb7bf90.043455de.js
152
+ - tools/staticdocs/assets/js/3dd7ef3b.c7c1d93f.js
153
+ - tools/staticdocs/assets/js/40365d27.7eb3f7b1.js
154
+ - tools/staticdocs/assets/js/411898ad.d5f62a27.js
155
+ - tools/staticdocs/assets/js/42170351.69a8ed02.js
156
+ - tools/staticdocs/assets/js/43652efd.be2c1d02.js
157
157
  - tools/staticdocs/assets/js/4650.292aca67.js
158
158
  - tools/staticdocs/assets/js/53ca7c5b.3f1245d5.js
159
- - tools/staticdocs/assets/js/54d0d530.769f5473.js
159
+ - tools/staticdocs/assets/js/54d0d530.28ba5be7.js
160
160
  - tools/staticdocs/assets/js/5723.f6123e37.js
161
161
  - tools/staticdocs/assets/js/5778.7d36f1c2.js
162
- - tools/staticdocs/assets/js/5b233ba7.0029b2f5.js
163
- - tools/staticdocs/assets/js/5bc719f6.84f6ce9e.js
164
- - tools/staticdocs/assets/js/5c6ce5ec.8667906a.js
162
+ - tools/staticdocs/assets/js/5b233ba7.9c621552.js
163
+ - tools/staticdocs/assets/js/5bc719f6.7fa17221.js
164
+ - tools/staticdocs/assets/js/5c6ce5ec.5e6ca46b.js
165
165
  - tools/staticdocs/assets/js/5e3ed378.77db7b87.js
166
- - tools/staticdocs/assets/js/5fe211ef.1d991947.js
167
- - tools/staticdocs/assets/js/6831b732.bbf2813b.js
168
- - tools/staticdocs/assets/js/696b4199.2700ad91.js
169
- - tools/staticdocs/assets/js/6b210247.074332a1.js
170
- - tools/staticdocs/assets/js/6b65133b.109a6bef.js
171
- - tools/staticdocs/assets/js/6f92e431.67f5a7a4.js
172
- - tools/staticdocs/assets/js/72c6d8a8.5fca8d68.js
166
+ - tools/staticdocs/assets/js/5fe211ef.71dc8326.js
167
+ - tools/staticdocs/assets/js/62df909c.906d9999.js
168
+ - tools/staticdocs/assets/js/630e5448.6fea087c.js
169
+ - tools/staticdocs/assets/js/6831b732.5714d508.js
170
+ - tools/staticdocs/assets/js/696b4199.0335bd94.js
171
+ - tools/staticdocs/assets/js/6b210247.2cbd59e6.js
172
+ - tools/staticdocs/assets/js/6b65133b.87dc7da6.js
173
+ - tools/staticdocs/assets/js/6f92e431.300a9857.js
174
+ - tools/staticdocs/assets/js/72c6d8a8.cfccace6.js
173
175
  - tools/staticdocs/assets/js/75897369.7b31b03e.js
174
- - tools/staticdocs/assets/js/75e64983.e31793e1.js
175
- - tools/staticdocs/assets/js/767ae34d.4ab04b1e.js
176
+ - tools/staticdocs/assets/js/75e64983.932fbc0e.js
176
177
  - tools/staticdocs/assets/js/7760.7f593c4f.js
177
178
  - tools/staticdocs/assets/js/7760.7f593c4f.js.LICENSE.txt
178
- - tools/staticdocs/assets/js/867640d5.a8f59357.js
179
- - tools/staticdocs/assets/js/89e76475.de702714.js
180
- - tools/staticdocs/assets/js/8f7843ee.0f25fdc3.js
181
- - tools/staticdocs/assets/js/9424f0b3.b24d0393.js
182
- - tools/staticdocs/assets/js/97535711.ddc0f5af.js
183
- - tools/staticdocs/assets/js/99581c43.0767018a.js
179
+ - tools/staticdocs/assets/js/7f5b2696.60735273.js
180
+ - tools/staticdocs/assets/js/867640d5.ffd4cf4c.js
181
+ - tools/staticdocs/assets/js/89e76475.97389cc5.js
182
+ - tools/staticdocs/assets/js/8f7843ee.d1ffd5ee.js
183
+ - tools/staticdocs/assets/js/9424f0b3.29299bde.js
184
+ - tools/staticdocs/assets/js/97535711.fc45ced1.js
185
+ - tools/staticdocs/assets/js/99581c43.8e571df8.js
184
186
  - tools/staticdocs/assets/js/9d6e81d0.c31feabc.js
185
- - tools/staticdocs/assets/js/9fb6059a.30085d79.js
186
- - tools/staticdocs/assets/js/a507c363.198e9246.js
187
- - tools/staticdocs/assets/js/a677c089.48b6c791.js
188
- - tools/staticdocs/assets/js/a9987364.cfb3492e.js
189
- - tools/staticdocs/assets/js/aa6b6c1b.a13cb467.js
190
- - tools/staticdocs/assets/js/adf499b4.f7df5738.js
191
- - tools/staticdocs/assets/js/b4596165.b4c6c1b8.js
192
- - tools/staticdocs/assets/js/b6d70f94.20a403bf.js
193
- - tools/staticdocs/assets/js/b9f60ba6.655a4097.js
194
- - tools/staticdocs/assets/js/bd0034eb.ff7f6265.js
195
- - tools/staticdocs/assets/js/c24eae19.98857ebf.js
187
+ - tools/staticdocs/assets/js/9fb6059a.42881e94.js
188
+ - tools/staticdocs/assets/js/a507c363.04b98d2c.js
189
+ - tools/staticdocs/assets/js/a677c089.b2928bac.js
190
+ - tools/staticdocs/assets/js/a9987364.8f065f19.js
191
+ - tools/staticdocs/assets/js/aa6b6c1b.d78e5212.js
192
+ - tools/staticdocs/assets/js/b4596165.6806d46b.js
193
+ - tools/staticdocs/assets/js/b6d70f94.f5514e8b.js
194
+ - tools/staticdocs/assets/js/b9f60ba6.c3b3046d.js
195
+ - tools/staticdocs/assets/js/bd0034eb.b4e3d6c1.js
196
+ - tools/staticdocs/assets/js/c24eae19.6b084c7c.js
197
+ - tools/staticdocs/assets/js/c2598f55.c5a1bac3.js
196
198
  - tools/staticdocs/assets/js/c5388ca4.f526bb0c.js
197
- - tools/staticdocs/assets/js/ca2c0ac4.adbecf86.js
198
- - tools/staticdocs/assets/js/cb8c3f08.f669adda.js
199
- - tools/staticdocs/assets/js/cd879be4.6ee752c7.js
200
- - tools/staticdocs/assets/js/d1b923aa.dcb1dede.js
201
- - tools/staticdocs/assets/js/d1bfc316.feddf1f3.js
202
- - tools/staticdocs/assets/js/d24bf9b6.31d82456.js
203
- - tools/staticdocs/assets/js/d394346f.e3f500eb.js
204
- - tools/staticdocs/assets/js/d52d6961.1d15c902.js
205
- - tools/staticdocs/assets/js/d57a4b5d.905988ec.js
206
- - tools/staticdocs/assets/js/d5d77c37.80e1a28b.js
207
- - tools/staticdocs/assets/js/d8ca4191.56c22a69.js
208
- - tools/staticdocs/assets/js/d9b92eba.16d983a0.js
209
- - tools/staticdocs/assets/js/db8fa1d0.c35b153c.js
210
- - tools/staticdocs/assets/js/dc5f7beb.291f4b91.js
211
- - tools/staticdocs/assets/js/e501b0d1.3aa571ae.js
212
- - tools/staticdocs/assets/js/eb3c311a.1b6ccdde.js
213
- - tools/staticdocs/assets/js/ebec1ccb.a801549e.js
214
- - tools/staticdocs/assets/js/f15615f1.0a240e68.js
215
- - tools/staticdocs/assets/js/fd886806.dc7cdf8e.js
216
- - tools/staticdocs/assets/js/main.eec2a1b0.js
217
- - tools/staticdocs/assets/js/main.eec2a1b0.js.LICENSE.txt
218
- - tools/staticdocs/assets/js/runtime~main.14022dc5.js
199
+ - tools/staticdocs/assets/js/cb8c3f08.a0ef4b5f.js
200
+ - tools/staticdocs/assets/js/cd879be4.6f19050a.js
201
+ - tools/staticdocs/assets/js/ce89ef36.aa518a52.js
202
+ - tools/staticdocs/assets/js/d1b923aa.3f3e186d.js
203
+ - tools/staticdocs/assets/js/d1bfc316.2d823a88.js
204
+ - tools/staticdocs/assets/js/d24bf9b6.53eca5e8.js
205
+ - tools/staticdocs/assets/js/d57a4b5d.aaa48891.js
206
+ - tools/staticdocs/assets/js/d5d77c37.be6fe7b6.js
207
+ - tools/staticdocs/assets/js/d8ca4191.c6632184.js
208
+ - tools/staticdocs/assets/js/d9b92eba.c6a2c7e5.js
209
+ - tools/staticdocs/assets/js/db8fa1d0.f078bc02.js
210
+ - tools/staticdocs/assets/js/dc5f7beb.a4afe7cd.js
211
+ - tools/staticdocs/assets/js/dfbae5fd.d1484e14.js
212
+ - tools/staticdocs/assets/js/e501b0d1.d108a8a9.js
213
+ - tools/staticdocs/assets/js/ebec1ccb.1ded1149.js
214
+ - tools/staticdocs/assets/js/f15615f1.f9b655a6.js
215
+ - tools/staticdocs/assets/js/fd886806.a21dd400.js
216
+ - tools/staticdocs/assets/js/main.c2e2b617.js
217
+ - tools/staticdocs/assets/js/main.c2e2b617.js.LICENSE.txt
218
+ - tools/staticdocs/assets/js/runtime~main.2bb31799.js
219
219
  - tools/staticdocs/docs.html
220
220
  - tools/staticdocs/docs/configuration.html
221
221
  - tools/staticdocs/docs/configuration/command.html
@@ -464,10 +464,10 @@ files:
464
464
  - tools/staticdocs/img/telemetry_viewer/new_screen.png
465
465
  - tools/staticdocs/img/telemetry_viewer/telemetry_viewer.png
466
466
  - tools/staticdocs/index.html
467
- - tools/staticdocs/lunr-index-1716490741709.json
467
+ - tools/staticdocs/lunr-index-1719505302032.json
468
468
  - tools/staticdocs/lunr-index.json
469
469
  - tools/staticdocs/markdown-page.html
470
- - tools/staticdocs/search-doc-1716490741709.json
470
+ - tools/staticdocs/search-doc-1719505302032.json
471
471
  - tools/staticdocs/search-doc.json
472
472
  - tools/staticdocs/sitemap.xml
473
473
  homepage: https://github.com/OpenC3/cosmos
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[3467],{9035:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var n=i(1085),r=i(1184);const s={title:"Autonomic (Enterprise)"},a=void 0,o={id:"tools/autonomic",title:"Autonomic (Enterprise)",description:"Introduction",source:"@site/docs/tools/autonomic.md",sourceDirName:"tools",slug:"/tools/autonomic",permalink:"/tools/staticdocs/docs/tools/autonomic",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/autonomic.md",tags:[],version:"current",frontMatter:{title:"Autonomic (Enterprise)"},sidebar:"defaultSidebar",previous:{title:"Tools",permalink:"/tools/staticdocs/docs/tools"},next:{title:"Bucket Explorer",permalink:"/tools/staticdocs/docs/tools/bucket-explorer"}},c={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Overview",id:"overview",level:3},{value:"TriggerGroups",id:"triggergroups",level:3},{value:"Triggers",id:"triggers",level:3},{value:"Reactions",id:"reactions",level:3}];function g(e){const t={admonition:"admonition",h2:"h2",h3:"h3",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.p,{children:"Autonomic allows for the automated execution of commands and scripts based on user-defined rules."}),"\n",(0,n.jsx)(t.h3,{id:"overview",children:"Overview"}),"\n",(0,n.jsx)(t.p,{children:"Autonomic operates with some basic building blocks: Trigger Groups, Triggers, and Reactions. Triggers are simply logical blocks which evaluate true or false. Reactions can be linked to one or many Triggers and specify an action to perform. Together they allow for an action to be taken based on anything going on in your system."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Autonomic",src:i(6370).A+"",width:"1266",height:"599"})}),"\n",(0,n.jsx)(t.h3,{id:"triggergroups",children:"TriggerGroups"}),"\n",(0,n.jsx)(t.p,{children:"Triggers are organized into groups, these groups are both for organization and to ensure that we can scale. It also allows triggers to be evaluated independently and simulataneously and can be useful for overlapping or high priority triggers. However, each trigger group spawns system resources so they should only be created as needed."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"TriggerGroups",src:i(1884).A+"",width:"349",height:"99"})}),"\n",(0,n.jsx)(t.h3,{id:"triggers",children:"Triggers"}),"\n",(0,n.jsx)(t.p,{children:'Triggers are logical components that are evaluated to true or false. Creating a trigger is like specifying an equation to evaluate. The trigger creation dialog specifies the Trigger Group which owns the trigger and the "left operand". This can be a telemetry item or an existing trigger.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateTrigger1",src:i(529).A+"",width:"648",height:"779"})}),"\n",(0,n.jsx)(t.p,{children:'Once you\'ve chosen the "left operand" you need to choose the operator.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateTrigger2",src:i(3098).A+"",width:"648",height:"653"})}),"\n",(0,n.jsx)(t.p,{children:'Finally you choose the "right operand" which in this case is a simple value.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateTrigger3",src:i(5011).A+"",width:"648",height:"715"})}),"\n",(0,n.jsx)(t.p,{children:"After the trigger is created it is displayed in Autonomic and waits to be activated by the given logic. Active triggers are highlighted in the list."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateTrigger3",src:i(9961).A+"",width:"1268",height:"607"})}),"\n",(0,n.jsx)(t.p,{children:"Triggers can also be manually disabled and enabled by clicking the plug icon."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateTrigger3",src:i(3482).A+"",width:"1268",height:"715"})}),"\n",(0,n.jsx)(t.p,{children:"Note in the above screenshot the Events which track everything about the trigger."}),"\n",(0,n.jsx)(t.h3,{id:"reactions",children:"Reactions"}),"\n",(0,n.jsx)(t.p,{children:"Reactions wait for triggers to be evaluated to true and perform actions such as sending a command or running a script. Reactions can not exist without a corresponding trigger. The reaction creation dialog specifies whether to treat the trigger as an Edge or Level. It then allows you to select which trigger(s) the reaction will react to. Selecting multiple triggers allows any of the triggers to trigger the reaction (Note: Creating a reaction which responds to Trigger A AND Trigger B is done by creating additional triggers)."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateReaction1",src:i(4776).A+"",width:"602",height:"574"})}),"\n",(0,n.jsx)(t.p,{children:"After the triggers are specified, the dialog prompts for the actions to take. You can either send a command, run a script, or simply push a notification. Commands and scripts can also optionally push a notification. In this example a script is specified with a notification at the WARN level."}),"\n",(0,n.jsx)(t.admonition,{title:"Spawning Scripts",type:"warning",children:(0,n.jsx)(t.p,{children:"Be aware of how and when you spawn scripts and whether they are running to completion. Spawning a faulty script can lead to many unfinished scripts consuming resources."})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateReaction2",src:i(6755).A+"",width:"602",height:"634"})}),"\n",(0,n.jsx)(t.p,{children:"Finally the snooze setting is specified. Snooze is the number of seconds after the reaction runs before the reaction will be allowed to run again. This is especially important in Level triggers where if the trigger remains active the reaction can run continuously."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"CreateReaction3",src:i(6922).A+"",width:"602",height:"391"})}),"\n",(0,n.jsx)(t.p,{children:"Once the reaction is created it is listed in the interface."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"InitialReaction",src:i(8341).A+"",width:"1271",height:"617"})}),"\n",(0,n.jsx)(t.p,{children:'When the reaction runs the "State" changes to the snooze icon and the "Snooze Until" is updated to indicate the reaction is waiting before being allowed to run again.'}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"SnoozedReaction",src:i(7747).A+"",width:"1271",height:"742"})})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(g,{...e})}):g(e)}},6370:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/autonomic-a2118149a079f587f8f373d61f65d4d6d5e4b3df41ec5446362a449a3b51a1b3.png"},4776:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_reaction1-a07e04677c269cb3eb5edd13bc7504ed6ba4c94f6a60d2b14a33680470d376fe.png"},6755:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_reaction2-63e4e9ddf06a2e8bc9911395162b5a05772f0756e8b0998bcecae64cf86c398e.png"},6922:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_reaction3-bae25e33640193d3dbbfbbfce6691479ccde16f73dbb3f0dc3023b7006259baa.png"},529:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_trigger1-5e2f7ecf9ec2b7590aaa65503f48cd73549fea64f52e6c103370a408528538f6.png"},3098:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_trigger2-edf2c2e6aa78a2e317e07e1cdec560dfcbbd147934630459507695c71d539f3b.png"},5011:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/create_trigger3-e63629173ae73bbfd78b53062061336db8ea92ba4542b9a93412d8ac6ed19e7a.png"},3482:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/disable_trigger-f5bb46fbc488bd4afcb27b21888de16816485d3e4fdbd4106b874ff06042f85b.png"},9961:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/enabled_trigger-86ce16c7294d4b954ec8b68ff344694093ed5f451fc5974f855f438557148518.png"},8341:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/initial_reaction-ce5d498a90cdd5a11e24471d277ed7fcb4eecc5dcaaf05220102a3178db0805e.png"},7747:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/snoozed_reaction-75ef2acab11a71f5827fbc0a1be95cf0fd6bd5b24b76f9ae6ebaf43fb293ba81.png"},1884:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/trigger_groups-6d9ccc6962029baa456f2d12de0fd3d03e1dbafdbf069cea65886296d2b2bde0.png"},1184:(e,t,i)=>{i.d(t,{R:()=>a});var n=i(4041);const r={},s=n.createContext(r);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[9698],{61:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var i=n(1085),o=n(1184);const a={title:"Data Viewer"},s=void 0,c={id:"tools/data-viewer",title:"Data Viewer",description:"Introduction",source:"@site/docs/tools/data-viewer.md",sourceDirName:"tools",slug:"/tools/data-viewer",permalink:"/tools/staticdocs/docs/tools/data-viewer",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/data-viewer.md",tags:[],version:"current",frontMatter:{title:"Data Viewer"},sidebar:"defaultSidebar",previous:{title:"Data Extractor",permalink:"/tools/staticdocs/docs/tools/data-extractor"},next:{title:"Handbooks",permalink:"/tools/staticdocs/docs/tools/handbooks"}},d={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Data Viewer Menus",id:"data-viewer-menus",level:2},{value:"File Menu Items",id:"file-menu-items",level:3},{value:"Open Configuration",id:"open-configuration",level:4},{value:"Save Configuration",id:"save-configuration",level:4},{value:"Adding Components",id:"adding-components",level:3}];function r(e){const t={h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(t.p,{children:"Data Viewer allows you to view packet data in both the past and in real time."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Data Viewer",src:n(7122).A+"",width:"1273",height:"732"})}),"\n",(0,i.jsx)(t.h2,{id:"data-viewer-menus",children:"Data Viewer Menus"}),"\n",(0,i.jsx)(t.h3,{id:"file-menu-items",children:"File Menu Items"}),"\n",(0,i.jsx)("img",{src:n(6869).A,alt:"File Menu",style:{float:"left","margin-right":"50px",height:"6em"}}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Opens a saved configuration"}),"\n",(0,i.jsx)(t.li,{children:"Save the current configuration"}),"\n",(0,i.jsx)(t.li,{children:"Reset the configuration (default settings)"}),"\n"]}),"\n",(0,i.jsx)(t.h4,{id:"open-configuration",children:"Open Configuration"}),"\n",(0,i.jsx)(t.p,{children:"The Open Configuration dialog displays a list of all saved configurations. You select a configuration and then click Ok to load it. You can delete existing configurations by clicking the Trash icon next to a configuration name."}),"\n",(0,i.jsx)(t.h4,{id:"save-configuration",children:"Save Configuration"}),"\n",(0,i.jsx)(t.p,{children:"The Save Configuration dialog also displays a list of all saved configurations. You click the Configuration Name text field, enter the name of your new configuration, and click Ok to save. You can delete existing configurations by clicking the Trash icon next to a configuration name."}),"\n",(0,i.jsx)(t.h3,{id:"adding-components",children:"Adding Components"}),"\n",(0,i.jsx)(t.p,{children:"DataViewer displays data in a component. To add a new component to the interface click the plus icon. This brings up the Add Component dialog. First you select the component you want to use to visual the data. Next you add packets which will populate the component. Finally click Create to see the DataViewer component visualization."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Add Component",src:n(8102).A+"",width:"798",height:"591"})}),"\n",(0,i.jsx)(t.p,{children:"To adjust the settings of the COSMOS Raw/Decom component click the gear icon to bring up the Display Settings dialog. You can turn on and off various visualizations, increase the number of packets displayed and the history."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Add a packet",src:n(5557).A+"",width:"1270",height:"931"})})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},6869:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/file_menu-368e6f03ad620e01bf83fb991aace23312d45629bfcef2d3fbccd4dd9e4dbdbd.png"},8102:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/add_component-883814db1de410921a1d46247be60a87a51f1c51eb98d4a7f499875c83225294.png"},7122:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/data_viewer-9eb6ce20988554325e15a6e404da9fef35b06c23548d5d136b4420f444ef94f7.png"},5557:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/display_settings-726614b4eda5f74fc563e4d3b1798eb3893e152a15b9420a6053f6a2e0980944.png"},1184:(e,t,n)=>{n.d(t,{R:()=>s});var i=n(4041);const o={},a=i.createContext(o);function s(e){const t=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[3459],{151:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Guides","slug":"/guides","permalink":"/tools/staticdocs/docs/guides","sidebar":"defaultSidebar","navigation":{"previous":{"title":"Telemetry Viewer","permalink":"/tools/staticdocs/docs/tools/tlm-viewer"},"next":{"title":"Bridges","permalink":"/tools/staticdocs/docs/guides/bridges"}}}}')}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[8444],{546:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>c});var o=s(1085),i=s(1184);const t={title:"Understanding Licenses"},l=void 0,r={id:"meta/licenses",title:"Understanding Licenses",description:"OpenC3 COSMOS is offered under a tri-licensing model allowing users to choose between the following three options:",source:"@site/docs/meta/licenses.md",sourceDirName:"meta",slug:"/meta/licenses",permalink:"/tools/staticdocs/docs/meta/licenses",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/meta/licenses.md",tags:[],version:"current",frontMatter:{title:"Understanding Licenses"},sidebar:"defaultSidebar",previous:{title:"Contributing",permalink:"/tools/staticdocs/docs/meta/contributing"},next:{title:"Philosophy",permalink:"/tools/staticdocs/docs/meta/philosophy"}},a={},c=[{value:"AGPLv3",id:"agplv3",level:2},{value:"Evaluation and Education Use Only",id:"evaluation-and-education-use-only",level:2},{value:"Commercial License",id:"commercial-license",level:2},{value:"Why you should buy a Commercial License",id:"why-you-should-buy-a-commercial-license",level:2}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"OpenC3 COSMOS is offered under a tri-licensing model allowing users to choose between the following three options:"}),"\n",(0,o.jsx)(n.h2,{id:"agplv3",children:"AGPLv3"}),"\n",(0,o.jsxs)(n.p,{children:["This is our default open source license and the license that most free users use. The AGPLv3 is a modification of the GPLv3 which is what is known as a copy-left license or a viral license. You can read the whole thing here: ",(0,o.jsx)(n.a,{href:"https://github.com/OpenC3/cosmos/blob/main/LICENSE.txt",children:"OpenC3 AGPLv3"})]}),"\n",(0,o.jsx)(n.p,{children:"Obviously, the actual license text applies, but here is a short summary:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"The AGPL allows users to use the code however they want: For business, personal, etc., as long as they follow the other terms:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Users are anyone who could access the web-app. On the public internet, that is the whole world. On a private network, it is anyone with access to that network."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"The software is provided as-is, no warranty"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Users must be given access to all the source code and are also allowed to use it however they want under the same terms of the AGPLv3. This includes any modifications made, anything added, and all plugins."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"For web applications (like COSMOS), a link must be provided to all of the source code."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"There are some key implications of the above:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You cannot keep anything proprietary from your users. They have the rights to take the code (and configuration) and do anything they want with it. You CANNOT impede these rights or you are violating the AGPLv3 and YOU lose the rights to use our software."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You must provide a digital link to all source code for your users, including plugins."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"All plugins must be licensed in an AGPLv3 compatible fashion. We recommend the MIT license because that allows your plugins to be compatible with the AGPLv3 and our commercial license. You can also use a dual license similar to what we do indicating the AGPLv3 or a purchased OpenC3 Commercial license."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"The AGPLv3 license is often chosen because it works well for open core products like COSMOS. Competitors cannot take the open source product and license it under different terms. They would be forever locked into the AGPLv3 which is difficult to monetize, because your customers can take any code you provide and publish it on the internet for free use by everyone."}),"\n",(0,o.jsx)(n.p,{children:"As the copyright holder, OpenC3 is able to license the product and derivatives commercially. No-one else can do this. (OpenC3 is also able to license legacy Ball Aerospace COSMOS code under IP agreement)"}),"\n",(0,o.jsx)(n.h2,{id:"evaluation-and-education-use-only",children:"Evaluation and Education Use Only"}),"\n",(0,o.jsxs)(n.p,{children:["This license takes effect as soon as you use any plugin we publish under Evaluation and Education terms. Currently the only plugin we use for this is our CCSDS CFDP plugin: ",(0,o.jsx)(n.a,{href:"https://github.com/OpenC3/openc3-cosmos-cfdp",children:"CFDP Plugin"})]}),"\n",(0,o.jsx)(n.p,{children:"You can read the whole license here:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:'# OpenC3 Evaluation and Educational License\n#\n# Copyright 2023 OpenC3, Inc.\n#\n# This work is licensed for evaluation and educational purposes only.\n# It may NOT be used for formal development, integration and test, operations\n# or any other commercial purpose without the purchase of a commercial license\n# from OpenC3, Inc.\n#\n# The above copyright notice and this permission notice shall be included in all copies\n# or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'})}),"\n",(0,o.jsx)(n.p,{children:"This license is pretty straight forward, but the key is you can't use this code for any real work leading to a product (Formal Development, Integration and Test, or Operations) unless you switch to purchasing a commercial license."}),"\n",(0,o.jsx)(n.h2,{id:"commercial-license",children:"Commercial License"}),"\n",(0,o.jsx)(n.p,{children:"This license is a signed contract with OpenC3. It allows use of our code for a program under contractual terms where you do not have to follow the AGPLv3."}),"\n",(0,o.jsx)(n.p,{children:"Generally we license to a specific project with terms that allow for unlimited users, and installs as needed by that project. Any code and plugins that you develop under the commercial license can be kept proprietary."}),"\n",(0,o.jsx)(n.p,{children:"These licenses are sold as yearly subscriptions, or as a non-expiring perpetual license. We also offer site licenses, and licenses to support unlimited missions on a government framework architecture."}),"\n",(0,o.jsx)(n.p,{children:"Of course with our commercial license, you also get all the extra functionality of our Enterprise product."}),"\n",(0,o.jsx)(n.h2,{id:"why-you-should-buy-a-commercial-license",children:"Why you should buy a Commercial License"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You want to save years and tens of millions of dollars developing the same functionality yourself."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You want all of the Enterprise functionality of COSMOS Enterprise Edition"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"User Accounts"}),"\n",(0,o.jsx)(n.li,{children:"Role Based Access Control"}),"\n",(0,o.jsx)(n.li,{children:"LDAP Support"}),"\n",(0,o.jsx)(n.li,{children:"Kubernetes Support"}),"\n",(0,o.jsx)(n.li,{children:"Cloud Deployment Configurations"}),"\n",(0,o.jsx)(n.li,{children:"The right to use CFDP and other Enterprise Only plugins"}),"\n",(0,o.jsx)(n.li,{children:"Grafana Support"}),"\n",(0,o.jsx)(n.li,{children:"Support from the COSMOS Developers"}),"\n",(0,o.jsxs)(n.li,{children:["Lots more - See our ",(0,o.jsx)(n.a,{href:"https://openc3.com/enterprise",children:"Enterprise"})," page"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You don't want to follow the AGPLv3"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"You want to keep the code and plugins you develop proprietary"}),"\n",(0,o.jsx)(n.li,{children:"You don't want to publish an accessible link to your source code"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You want to support the continued development and innovation of the COSMOS product"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.em,{children:"We appreciate all of our commercial customers. You make OpenC3 possible. Thank you."})})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1184:(e,n,s)=>{s.d(n,{R:()=>l});var o=s(4041);const i={},t=o.createContext(i);function l(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[4875],{271:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var i=n(1085),r=n(1184);const s={sidebar_position:10,title:"SSL-TLS"},c=void 0,o={id:"configuration/ssl-tls",title:"SSL-TLS",description:"COSMOS 5 is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik docs.",source:"@site/docs/configuration/ssl-tls.md",sourceDirName:"configuration",slug:"/configuration/ssl-tls",permalink:"/tools/staticdocs/docs/configuration/ssl-tls",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/configuration/ssl-tls.md",tags:[],version:"current",sidebarPosition:10,frontMatter:{sidebar_position:10,title:"SSL-TLS"},sidebar:"defaultSidebar",previous:{title:"Screens",permalink:"/tools/staticdocs/docs/configuration/telemetry-screens"},next:{title:"Tools",permalink:"/tools/staticdocs/docs/tools"}},a={},l=[{value:"Generate the certificate",id:"generate-the-certificate",level:3},{value:"Updating the openc3-traefik Dockerfile",id:"updating-the-openc3-traefik-dockerfile",level:3},{value:"Updating the Traefik config",id:"updating-the-traefik-config",level:3},{value:"Update docker-compose.yaml",id:"update-docker-composeyaml",level:3},{value:"Let's Encrypt",id:"lets-encrypt",level:2},{value:"KEY",id:"key",level:4},{value:"CRT",id:"crt",level:4},{value:"CRT/KEY Bundle",id:"crtkey-bundle",level:4},{value:"cert.pem",id:"certpem",level:4},{value:"chain.pem",id:"chainpem",level:4},{value:"Checking certs",id:"checking-certs",level:3},{value:"Extracting the certificate and keys from a .pfx file",id:"extracting-the-certificate-and-keys-from-a-pfx-file",level:2},{value:"Extract .crt and .key files from .pfx file",id:"extract-crt-and-key-files-from-pfx-file",level:3},{value:"Convert .pfx file to .pem format",id:"convert-pfx-file-to-pem-format",level:3},{value:"TLS1.2 INADEQUATE_SECURITY Errors",id:"tls12-inadequate_security-errors",level:2}];function d(e){const t={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["COSMOS 5 is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik ",(0,i.jsx)(t.a,{href:"https://doc.traefik.io/traefik/routing/entrypoints/#tls",children:"docs"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"generate-the-certificate",children:"Generate the certificate"}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Note: Self-signed certificates are considered insecure for the Internet. Firefox will treat the site as having an invalid certificate, while Chrome will act as if the connection was plain HTTP."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"To create a new Self-Signed SSL Certificate, use the openssl req command (run on linux from the cosmos-project root):"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"openssl req -newkey rsa:4096 \\\n -x509 \\\n -sha256 \\\n -days 3650 \\\n -nodes \\\n -out ./openc3-traefik/cert.crt \\\n -keyout ./openc3-traefik/cert.key\n\nCountry Name (2 letter code) [XX]:.\nState or Province Name (full name) []:.\nLocality Name (eg, city) [Default City]:.\nOrganization Name (eg, company) [Default Company Ltd]:.\nOrganizational Unit Name (eg, section) []:.\nCommon Name (eg, your name or your server hostname) []: \x3c!-- UPDATE WITH YOUR HOSTNAME HERE --\x3e\nEmail Address []:\n"})}),"\n",(0,i.jsx)(t.p,{children:"Let's breakdown the command and understand what each option means:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"newkey rsa:4096"})," - Creates a new certificate request and 4096 bit RSA key. The default one is 2048 bits."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"x509"})," - Creates a X.509 Certificate."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"sha256"})," - Use 265-bit SHA (Secure Hash Algorithm)."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"days 3650"})," - The number of days to certify the certificate for. 3650 is ten years. You can use any positive integer."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"nodes"})," - Creates a key without a passphrase."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"out ./openc3-traefik/cert.crt"})," - Specifies the filename to write the newly created certificate to. You can specify any file name."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"keyout ./openc3-traefik/cert.key"})," - Specifies the filename to write the newly created private key to. You can specify any file name."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["For more information about the ",(0,i.jsx)(t.code,{children:"openssl req"})," command options, visit the ",(0,i.jsx)(t.a,{href:"https://www.openssl.org/docs/man1.0.2/man1/openssl-req.html",children:"OpenSSL req documentation page"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"updating-the-openc3-traefik-dockerfile",children:"Updating the openc3-traefik Dockerfile"}),"\n",(0,i.jsx)(t.p,{children:"Add the new cert to the traefik Docker container."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"--- a/openc3-traefik/Dockerfile\n+++ b/openc3-traefik/Dockerfile\n@@ -1,3 +1,4 @@\n FROM traefik:2.4\n COPY ./traefik.yaml /etc/traefik/traefik.yaml\n+COPY ./cert.crt ./cert.key /etc/certs/\n EXPOSE 80\n"})}),"\n",(0,i.jsx)(t.h3,{id:"updating-the-traefik-config",children:"Updating the Traefik config"}),"\n",(0,i.jsx)(t.p,{children:"Configure Traefik to use the new cert file."}),"\n",(0,i.jsx)(t.p,{children:"openc3-traefik/traefik.yaml"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:'--- a/openc3-traefik/traefik.yaml\n+++ b/openc3-traefik/traefik.yaml\n@@ -3,6 +3,17 @@\n+tls:\n+ certificates:\n+ - certFile: "/etc/certs/cert.crt"\n+ keyFile: "/etc/certs/cert.key"\n# Listen for everything coming in on the standard HTTP port\nentrypoints:\n web:\n address: ":2900"\n+ http:\n+ redirections:\n+ entryPoint:\n+ to: websecure\n+ scheme: https\n+ websecure:\n+ address: ":2943"\n+ http:\n+ tls:\n+ domains:\n+ - main: "\x3c!-- UPDATE WITH YOUR HOSTNAME HERE --\x3e"\n'})}),"\n",(0,i.jsx)(t.h3,{id:"update-docker-composeyaml",children:"Update docker-compose.yaml"}),"\n",(0,i.jsx)(t.p,{children:"Update traefik to use secure port 443 instead of port 80."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:'--- a/compose.yaml\n+++ b/compose.yaml\n services:\n openc3-minio:\n@@ -70,7 +70,7 @@ services:\n openc3-traefik:\n image: "ballaerospace/openc3-traefik:${OPENC3_TAG}"\n ports:\n- - "80:2900"\n+ - "443:2943"\n restart: "unless-stopped"\n depends_on:\n'})}),"\n",(0,i.jsxs)(t.p,{children:["Now you can run ",(0,i.jsx)(t.code,{children:"./openc3.sh start"})," to rebuild the Traefik container and it should include your new cert file."]}),"\n",(0,i.jsx)(t.h2,{id:"lets-encrypt",children:"Let's Encrypt"}),"\n",(0,i.jsx)(t.h4,{id:"key",children:"KEY"}),"\n",(0,i.jsx)(t.p,{children:'privkey.pem is the "key" file'}),"\n",(0,i.jsx)(t.p,{children:"Sometimes it is named as cert.key or example.com.key."}),"\n",(0,i.jsx)(t.h4,{id:"crt",children:"CRT"}),"\n",(0,i.jsx)(t.p,{children:'fullchain.pem is your "crt" file.'}),"\n",(0,i.jsx)(t.p,{children:"Sometimes it is named as example.com.crt."}),"\n",(0,i.jsx)(t.h4,{id:"crtkey-bundle",children:"CRT/KEY Bundle"}),"\n",(0,i.jsx)(t.p,{children:"bundle.pem would be made like so: cat fullchain.pem privkey.pem > bundle.pem"}),"\n",(0,i.jsx)(t.p,{children:"HAProxy is the only server that I know of that uses bundle.pem."}),"\n",(0,i.jsx)(t.h4,{id:"certpem",children:"cert.pem"}),"\n",(0,i.jsx)(t.p,{children:"cert.pem contains ONLY your certificate, which can only be used by itself if the browser already has the certificate which signed it, which may work in testing (which makes it seem like it may be the right file), but will actually fail for many of your users in production with a security error of untrusted certificate."}),"\n",(0,i.jsx)(t.p,{children:"However, you don't generally use the cert.pem by itself. It's almost always coupled with chain.pem as fullchain.pem."}),"\n",(0,i.jsx)(t.h4,{id:"chainpem",children:"chain.pem"}),"\n",(0,i.jsx)(t.p,{children:"chain.pem is the intermediary signed authority, signed by the root authority - which is what all browsers are guaranteed to have in their pre-built cache."}),"\n",(0,i.jsx)(t.h3,{id:"checking-certs",children:"Checking certs"}),"\n",(0,i.jsx)(t.p,{children:"You can inspect the cert like so:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"openssl x509 -in cert.pem -text -noout\n"})}),"\n",(0,i.jsx)(t.h2,{id:"extracting-the-certificate-and-keys-from-a-pfx-file",children:"Extracting the certificate and keys from a .pfx file"}),"\n",(0,i.jsx)(t.p,{children:"The .pfx file, which is in a PKCS#12 format, contains the SSL certificate (public keys) and the corresponding private keys. You might have to import the certificate and private keys separately in an unencrypted plain text format to use it on another system. This topic provides instructions on how to convert the .pfx file to .crt and .key files."}),"\n",(0,i.jsx)(t.h3,{id:"extract-crt-and-key-files-from-pfx-file",children:"Extract .crt and .key files from .pfx file"}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"PREREQUISITE: Ensure OpenSSL is installed in the server that contains the SSL certificate."}),"\n"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Start OpenSSL from the OpenSSL\\bin folder."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Open the command prompt and go to the folder that contains your .pfx file."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Run the following command to extract the private key:"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"openssl pkcs12 -in [yourfile.pfx] -nocerts -out [drlive.key]\n"})}),"\n",(0,i.jsx)(t.p,{children:"You will be prompted to type the import password. Type the password that you used to protect your keypair when you created the .pfx file. You will be prompted again to provide a new password to protect the .key file that you are creating. Store the password to your key file in a secure place to avoid misuse."}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Run the following command to extract the certificate:"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]\n"})}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Run the following command to decrypt the private key:"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"openssl rsa -in [drlive.key] -out [drlive-decrypted.key]\n"})}),"\n",(0,i.jsx)(t.p,{children:"Type the password that you created to protect the private key file in the previous step.\nThe .crt file and the decrypted and encrypted .key files are available in the path, where you started OpenSSL."}),"\n",(0,i.jsx)(t.h3,{id:"convert-pfx-file-to-pem-format",children:"Convert .pfx file to .pem format"}),"\n",(0,i.jsx)(t.p,{children:"There might be instances where you might have to convert the .pfx file into .pem format. Run the following command to convert it into PEM format."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"openssl rsa -in [keyfile-encrypted.key] -outform PEM -out [keyfile-encrypted-pem.key]\n"})}),"\n",(0,i.jsx)(t.h2,{id:"tls12-inadequate_security-errors",children:"TLS1.2 INADEQUATE_SECURITY Errors"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://doc.traefik.io/traefik/https/tls/#cipher-suites",children:"https://doc.traefik.io/traefik/https/tls/#cipher-suites"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://pkg.go.dev/crypto/tls#pkg-constants",children:"https://pkg.go.dev/crypto/tls#pkg-constants"})}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-yaml",children:"tls:\n options:\n default:\n cipherSuites:\n - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\n - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\n"})})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1184:(e,t,n)=>{n.d(t,{R:()=>c});var i=n(4041);const r={},s=i.createContext(r);function c(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[9729],{186:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var n=t(1085),i=t(1184);const a={title:"Roadmap"},o=void 0,l={id:"development/roadmap",title:"Roadmap",description:"Key Features Still to Come in OpenC3 COSMOS 5.x:",source:"@site/docs/development/roadmap.md",sourceDirName:"development",slug:"/development/roadmap",permalink:"/tools/staticdocs/docs/development/roadmap",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/development/roadmap.md",tags:[],version:"current",frontMatter:{title:"Roadmap"},sidebar:"defaultSidebar",previous:{title:"Log Structure",permalink:"/tools/staticdocs/docs/development/log-structure"},next:{title:"Streaming API",permalink:"/tools/staticdocs/docs/development/streaming-api"}},r={},c=[{value:"Key Features Still to Come in OpenC3 COSMOS 5.x:",id:"key-features-still-to-come-in-openc3-cosmos-5x",level:2},{value:"OpenC3 COSMOS 6.0 (Summer 2024)",id:"openc3-cosmos-60-summer-2024",level:2},{value:"OpenC3 COSMOS 7.0 (Summer 2025)",id:"openc3-cosmos-70-summer-2025",level:2},{value:"Near-term Quarterly Roadmap",id:"near-term-quarterly-roadmap",level:2}];function d(e){const s={a:"a",h2:"h2",input:"input",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"key-features-still-to-come-in-openc3-cosmos-5x",children:"Key Features Still to Come in OpenC3 COSMOS 5.x:"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Command Authority (Enterprise)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Critical Commanding (Two Operators - Enterprise)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Log Message Extractor Tool (Enterprise)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","System Health Tool (Enterprise)"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"openc3-cosmos-60-summer-2024",children:"OpenC3 COSMOS 6.0 (Summer 2024)"}),"\n",(0,n.jsx)(s.p,{children:"Core Features:"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Python Support"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Upgrade Tools to Vue 3 / Vuetify 3"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Plugin App Store"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Functionality For 6.1+:"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Standardized Mission Planning Interface (aka Command Load Generator (CLG))"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","libCSP Interface"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Standardized Interfaces for All Common Message Buses"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"openc3-cosmos-70-summer-2025",children:"OpenC3 COSMOS 7.0 (Summer 2025)"}),"\n",(0,n.jsx)(s.p,{children:"Core Features:"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Super Bridge - This will enable SaaS COSMOS and provide a secure method to communicate from a cloud server to an intranet for hardware control"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"near-term-quarterly-roadmap",children:"Near-term Quarterly Roadmap"}),"\n",(0,n.jsx)(s.p,{children:"Our near-term product roadmap linking to specific tickets is a Github Project found at the link below."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"https://github.com/orgs/openc3/projects/2/views/1",children:"Roadmap"})}),"\n",(0,n.jsx)(s.p,{children:"If you would like to commit feature ideas for our roadmap, please do so with normal Github issues at the main repo."})]})}function m(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1184:(e,s,t)=>{t.d(s,{R:()=>o});var n=t(4041);const i={},a=n.createContext(i);function o(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[7388],{284:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>g,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=n(1085),i=n(1184);const o={sidebar_position:4,title:"Upgrading"},a=void 0,r={id:"getting-started/upgrading",title:"Upgrading",description:"COSMOS Upgrades",source:"@site/docs/getting-started/upgrading.md",sourceDirName:"getting-started",slug:"/getting-started/upgrading",permalink:"/tools/staticdocs/docs/getting-started/upgrading",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/getting-started/upgrading.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Upgrading"},sidebar:"defaultSidebar",previous:{title:"Code Generators",permalink:"/tools/staticdocs/docs/getting-started/generators"},next:{title:"Key Concepts",permalink:"/tools/staticdocs/docs/getting-started/key_concepts"}},c={},l=[{value:"COSMOS Upgrades",id:"cosmos-upgrades",level:3},{value:"Migrating From COSMOS 4 to COSMOS 5",id:"migrating-from-cosmos-4-to-cosmos-5",level:3}];function d(e){const t={a:"a",code:"code",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h3,{id:"cosmos-upgrades",children:"COSMOS Upgrades"}),"\n",(0,s.jsx)(t.p,{children:"COSMOS is released as Docker containers. Since we're using Docker containers and volumes we can simply stop the existing COSMOS application, then download and run the new release."}),"\n",(0,s.jsx)(t.p,{children:"This example assumes an existing COSMOS project at C:\\cosmos-project."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Stop the current COSMOS application"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-batch",children:"C:\\cosmos-project> openc3.bat stop\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Change the release in the .env file to the desired release"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-batch",children:"OPENC3_TAG=5.1.1\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Run the new COSMOS application"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-batch",children:"C:\\cosmos-project> openc3.bat run\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"migrating-from-cosmos-4-to-cosmos-5",children:"Migrating From COSMOS 4 to COSMOS 5"}),"\n",(0,s.jsxs)(t.p,{children:["COSMOS 5 is a new architecture and treats targets as independent ",(0,s.jsx)(t.a,{href:"/tools/staticdocs/docs/configuration/plugins",children:"plugins"}),". Thus the primary effort in porting from COSMOS 4 to COSMOS 5 is converting targets to plugins. We recommend creating plugins for each independent target (with its own interface) but targets which share an interface will need to be part of the same plugin. The reason for independent plugins is it allows the plugin to be versioned separately and more easily shared outside your specific project. If you have very project specific targets (e.g. custom hardware) those can potentially be combined for ease of deployment."]}),"\n",(0,s.jsx)(t.p,{children:"COSMOS 5 includes a migration tool for converting an existing COSMOS 4 configuration into a COSMOS 5 plugin. This example assumes an existing COSMOS 4 configuration at C:\\COSMOS and a new COSMOS 5 installation at C:\\cosmos-project. Linux users can adjust paths and change from .bat to .sh to follow along."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Change to the existing COSMOS 4 configuration directory. You should see the config, lib, procedures, outputs directory. You can then run the migration tool by specifying the absolute path to the COSMOS 5 installation."}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-batch",children:"C:\\COSMOS> C:\\cosmos-project\\openc3.bat cli migrate -a demo\n"})}),"\n",(0,s.jsx)(t.p,{children:"This creates a new COSMOS 5 plugin called openc3-cosmos-demo with a target named DEMO containing the existing lib and procedures files as well as all the existing targets."}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-batch",children:"C:\\COSMOS> C:\\cosmos-project\\openc3.bat cli migrate demo-part INST\n"})}),"\n",(0,s.jsx)(t.p,{children:"This would create a new COSMOS 5 plugin called openc3-cosmos-demo-part with a target named DEMO_PART containing the existing lib and procedures files as well as the INST target (but no others)."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Open the new COSMOS 5 plugin and ensure the ",(0,s.jsx)(t.a,{href:"/tools/staticdocs/docs/configuration/plugins#plugintxt-configuration-file",children:"plugin.txt"})," file is correctly configured. The migration tool doesn't create VARIABLEs or MICROSERVICEs or handle target substitution so those features will have to added manually."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Follow the ",(0,s.jsx)(t.a,{href:"/tools/staticdocs/docs/getting-started/gettingstarted#building-your-plugin",children:"building your plugin"})," part of the Getting Started tutorial to build your new plugin and upload it to COSMOS 5."]}),"\n"]}),"\n"]})]})}function g(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1184:(e,t,n)=>{n.d(t,{R:()=>a});var s=n(4041);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([[7660],{734:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var s=t(1085),n=t(1184);const i={title:"Bucket Explorer"},l=void 0,r={id:"tools/bucket-explorer",title:"Bucket Explorer",description:"Introduction",source:"@site/docs/tools/bucket-explorer.md",sourceDirName:"tools",slug:"/tools/bucket-explorer",permalink:"/tools/staticdocs/docs/tools/bucket-explorer",draft:!1,unlisted:!1,editUrl:"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/bucket-explorer.md",tags:[],version:"current",frontMatter:{title:"Bucket Explorer"},sidebar:"defaultSidebar",previous:{title:"Autonomic (Enterprise)",permalink:"/tools/staticdocs/docs/tools/autonomic"},next:{title:"Calendar (Enterprise)",permalink:"/tools/staticdocs/docs/tools/calendar"}},c={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Browsing Files",id:"browsing-files",level:2},{value:"Upload",id:"upload",level:3},{value:"Download",id:"download",level:3},{value:"Delete",id:"delete",level:3}];function a(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",p:"p",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(o.p,{children:"Bucket Explorer is a file browser to the COSMOS backend bucket storage system. It allows you to view files in an intuitive file browser hierarchy and download them. Bucket Explorer works both with local installations of COSMOS as well as cloud deployments which utilize cloud storage such as AWS S3 and GCP Cloud Storage."}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"Bucket Explorer",src:t(6278).A+"",width:"1271",height:"543"})}),"\n",(0,s.jsx)(o.h2,{id:"browsing-files",children:"Browsing Files"}),"\n",(0,s.jsxs)(o.p,{children:["At the top are the three standard COSMOS buckets: ",(0,s.jsx)(o.code,{children:"config"}),", ",(0,s.jsx)(o.code,{children:"logs"}),", and ",(0,s.jsx)(o.code,{children:"tools"}),". Each bucket contains top level folders named after the scope. In the Open Source edition the only scope is ",(0,s.jsx)(o.code,{children:"DEFAULT"}),". The ",(0,s.jsx)(o.code,{children:"config"})," bucket holds the COSMOS configuration which is populated as plugins are installed. The ",(0,s.jsx)(o.code,{children:"logs"})," bucket holds the COSMOS logs which are generated by the various COSMOS microservices (See ",(0,s.jsx)(o.a,{href:"/tools/staticdocs/docs/guides/logging",children:"Logging"})," for more info). These logs are gzipped to save storage space. The ",(0,s.jsx)(o.code,{children:"tools"})," bucket holds the source code for the built-in COSMOS tools as well as user created tools installed as plugins. Note that the search box only searches the current screen worth of files, e.g. it does not search the entire bucket."]}),"\n",(0,s.jsx)(o.admonition,{title:"Tools as Static Website",type:"note",children:(0,s.jsx)(o.p,{children:"Using bucket storage allows COSMOS to directly serve the tools as a static website and thus it must be a public bucket in cloud technology like S3"})}),"\n",(0,s.jsx)(o.h3,{id:"upload",children:"Upload"}),"\n",(0,s.jsxs)(o.p,{children:["Click the Upload icon to bring up a file browser to select a file to upload into the current bucket and path. Note that in ",(0,s.jsx)(o.a,{href:"https://openc3.com/enterprise",children:"COSMOS Enterprise"})," you can only upload files to the config/DEFAULT/targets_modified folder unless you're an Admin."]}),"\n",(0,s.jsx)(o.h3,{id:"download",children:"Download"}),"\n",(0,s.jsx)(o.p,{children:"Click the Download icon to download any of the individual files from any bucket and path."}),"\n",(0,s.jsx)(o.h3,{id:"delete",children:"Delete"}),"\n",(0,s.jsxs)(o.p,{children:["Click the Trash icon to delete an individual file. Note that in ",(0,s.jsx)(o.a,{href:"https://openc3.com/enterprise",children:"COSMOS Enterprise"})," you can only delete files in the config/DEFAULT/targets_modified folder unless you're an Admin."]})]})}function h(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},6278:(e,o,t)=>{t.d(o,{A:()=>s});const s=t.p+"assets/images/bucket_explorer-ba88a20121198c3441a6af5302ab1a6ad62a171661037e9e3bfd312ca8bdb5ef.png"},1184:(e,o,t)=>{t.d(o,{R:()=>l});var s=t(4041);const n={},i=s.createContext(n);function l(e){const o=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}}}]);