@flightctl/ui-components 1.1.0-rc1 → 1.1.0-rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.css +5 -1
  2. package/dist/types/imagebuilder/index.d.ts +2 -0
  3. package/dist/types/imagebuilder/index.d.ts.map +1 -1
  4. package/dist/types/imagebuilder/index.js +3 -1
  5. package/dist/types/imagebuilder/index.js.map +1 -1
  6. package/dist/types/imagebuilder/models/ApiVersion.d.ts +8 -0
  7. package/dist/types/imagebuilder/models/ApiVersion.d.ts.map +1 -0
  8. package/dist/types/imagebuilder/models/ApiVersion.js +16 -0
  9. package/dist/types/imagebuilder/models/ApiVersion.js.map +1 -0
  10. package/dist/types/imagebuilder/models/ImageBuild.d.ts +2 -4
  11. package/dist/types/imagebuilder/models/ImageBuild.d.ts.map +1 -1
  12. package/dist/types/imagebuilder/models/ImageBuildList.d.ts +2 -4
  13. package/dist/types/imagebuilder/models/ImageBuildList.d.ts.map +1 -1
  14. package/dist/types/imagebuilder/models/ImageExport.d.ts +2 -4
  15. package/dist/types/imagebuilder/models/ImageExport.d.ts.map +1 -1
  16. package/dist/types/imagebuilder/models/ImageExportList.d.ts +2 -4
  17. package/dist/types/imagebuilder/models/ImageExportList.d.ts.map +1 -1
  18. package/dist/types/imagebuilder/models/Status.d.ts +28 -0
  19. package/dist/types/imagebuilder/models/Status.d.ts.map +1 -0
  20. package/dist/types/imagebuilder/models/Status.js +3 -0
  21. package/dist/types/imagebuilder/models/Status.js.map +1 -0
  22. package/dist/types/index.d.ts +8 -0
  23. package/dist/types/index.d.ts.map +1 -1
  24. package/dist/types/index.js +3 -1
  25. package/dist/types/index.js.map +1 -1
  26. package/dist/types/models/ApiVersion.d.ts +9 -0
  27. package/dist/types/models/ApiVersion.d.ts.map +1 -0
  28. package/dist/types/models/ApiVersion.js +17 -0
  29. package/dist/types/models/ApiVersion.js.map +1 -0
  30. package/dist/types/models/ApplicationProviderBase.d.ts +12 -0
  31. package/dist/types/models/ApplicationProviderBase.d.ts.map +1 -0
  32. package/dist/types/models/ApplicationProviderBase.js +3 -0
  33. package/dist/types/models/ApplicationProviderBase.js.map +1 -0
  34. package/dist/types/models/ApplicationProviderSpec.d.ts +5 -15
  35. package/dist/types/models/ApplicationProviderSpec.d.ts.map +1 -1
  36. package/dist/types/models/ApplicationUser.d.ts +7 -0
  37. package/dist/types/models/ApplicationUser.d.ts.map +1 -0
  38. package/dist/types/models/ApplicationUser.js +3 -0
  39. package/dist/types/models/ApplicationUser.js.map +1 -0
  40. package/dist/types/models/AuthConfig.d.ts +2 -4
  41. package/dist/types/models/AuthConfig.d.ts.map +1 -1
  42. package/dist/types/models/AuthProvider.d.ts +2 -4
  43. package/dist/types/models/AuthProvider.d.ts.map +1 -1
  44. package/dist/types/models/AuthProviderList.d.ts +2 -4
  45. package/dist/types/models/AuthProviderList.d.ts.map +1 -1
  46. package/dist/types/models/CertificateSigningRequest.d.ts +2 -4
  47. package/dist/types/models/CertificateSigningRequest.d.ts.map +1 -1
  48. package/dist/types/models/CertificateSigningRequestList.d.ts +2 -4
  49. package/dist/types/models/CertificateSigningRequestList.d.ts.map +1 -1
  50. package/dist/types/models/ComposeApplication.d.ts +7 -0
  51. package/dist/types/models/ComposeApplication.d.ts.map +1 -0
  52. package/dist/types/models/ComposeApplication.js +3 -0
  53. package/dist/types/models/ComposeApplication.js.map +1 -0
  54. package/dist/types/models/ContainerApplication.d.ts +18 -0
  55. package/dist/types/models/ContainerApplication.d.ts.map +1 -0
  56. package/dist/types/models/ContainerApplication.js +3 -0
  57. package/dist/types/models/ContainerApplication.js.map +1 -0
  58. package/dist/types/models/ContainerApplicationProperties.d.ts +13 -0
  59. package/dist/types/models/ContainerApplicationProperties.d.ts.map +1 -0
  60. package/dist/types/models/ContainerApplicationProperties.js +3 -0
  61. package/dist/types/models/ContainerApplicationProperties.js.map +1 -0
  62. package/dist/types/models/Device.d.ts +2 -4
  63. package/dist/types/models/Device.d.ts.map +1 -1
  64. package/dist/types/models/DeviceList.d.ts +2 -4
  65. package/dist/types/models/DeviceList.d.ts.map +1 -1
  66. package/dist/types/models/EnrollmentRequest.d.ts +2 -4
  67. package/dist/types/models/EnrollmentRequest.d.ts.map +1 -1
  68. package/dist/types/models/EnrollmentRequestList.d.ts +2 -4
  69. package/dist/types/models/EnrollmentRequestList.d.ts.map +1 -1
  70. package/dist/types/models/Event.d.ts +2 -4
  71. package/dist/types/models/Event.d.ts.map +1 -1
  72. package/dist/types/models/Event.js.map +1 -1
  73. package/dist/types/models/EventList.d.ts +2 -4
  74. package/dist/types/models/EventList.d.ts.map +1 -1
  75. package/dist/types/models/Fleet.d.ts +2 -4
  76. package/dist/types/models/Fleet.d.ts.map +1 -1
  77. package/dist/types/models/FleetList.d.ts +2 -4
  78. package/dist/types/models/FleetList.d.ts.map +1 -1
  79. package/dist/types/models/HelmApplication.d.ts +20 -0
  80. package/dist/types/models/HelmApplication.d.ts.map +1 -0
  81. package/dist/types/models/HelmApplication.js +3 -0
  82. package/dist/types/models/HelmApplication.js.map +1 -0
  83. package/dist/types/models/ImageApplicationProviderSpec.d.ts +2 -22
  84. package/dist/types/models/ImageApplicationProviderSpec.d.ts.map +1 -1
  85. package/dist/types/models/InlineApplicationProviderSpec.d.ts +2 -3
  86. package/dist/types/models/InlineApplicationProviderSpec.d.ts.map +1 -1
  87. package/dist/types/models/Organization.d.ts +2 -4
  88. package/dist/types/models/Organization.d.ts.map +1 -1
  89. package/dist/types/models/OrganizationList.d.ts +2 -4
  90. package/dist/types/models/OrganizationList.d.ts.map +1 -1
  91. package/dist/types/models/QuadletApplication.d.ts +8 -0
  92. package/dist/types/models/QuadletApplication.d.ts.map +1 -0
  93. package/dist/types/models/QuadletApplication.js +3 -0
  94. package/dist/types/models/QuadletApplication.js.map +1 -0
  95. package/dist/types/models/Repository.d.ts +2 -4
  96. package/dist/types/models/Repository.d.ts.map +1 -1
  97. package/dist/types/models/RepositoryList.d.ts +2 -4
  98. package/dist/types/models/RepositoryList.d.ts.map +1 -1
  99. package/dist/types/models/ResourceSync.d.ts +2 -4
  100. package/dist/types/models/ResourceSync.d.ts.map +1 -1
  101. package/dist/types/models/ResourceSyncList.d.ts +2 -4
  102. package/dist/types/models/ResourceSyncList.d.ts.map +1 -1
  103. package/dist/types/models/Status.d.ts +2 -4
  104. package/dist/types/models/Status.d.ts.map +1 -1
  105. package/dist/types/models/TemplateVersion.d.ts +2 -4
  106. package/dist/types/models/TemplateVersion.d.ts.map +1 -1
  107. package/dist/types/models/TemplateVersionList.d.ts +2 -4
  108. package/dist/types/models/TemplateVersionList.d.ts.map +1 -1
  109. package/dist/ui-components/src/components/AuthProvider/CreateAuthProvider/utils.d.ts.map +1 -1
  110. package/dist/ui-components/src/components/AuthProvider/CreateAuthProvider/utils.js +51 -51
  111. package/dist/ui-components/src/components/AuthProvider/CreateAuthProvider/utils.js.map +1 -1
  112. package/dist/ui-components/src/components/DetailsPage/Tables/ApplicationsTable.js +1 -1
  113. package/dist/ui-components/src/components/DetailsPage/Tables/ApplicationsTable.js.map +1 -1
  114. package/dist/ui-components/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
  115. package/dist/ui-components/src/components/Device/DeviceDetails/DeviceDetailsPage.js +5 -4
  116. package/dist/ui-components/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
  117. package/dist/ui-components/src/components/Device/DeviceDetails/TerminalTab.d.ts.map +1 -1
  118. package/dist/ui-components/src/components/Device/DeviceDetails/TerminalTab.js +5 -1
  119. package/dist/ui-components/src/components/Device/DeviceDetails/TerminalTab.js.map +1 -1
  120. package/dist/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts +3 -3
  121. package/dist/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
  122. package/dist/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +310 -363
  123. package/dist/ui-components/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
  124. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.d.ts +1 -3
  125. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.d.ts.map +1 -1
  126. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.js +18 -19
  127. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.js.map +1 -1
  128. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationHelmForm.d.ts +1 -3
  129. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationHelmForm.d.ts.map +1 -1
  130. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationHelmForm.js +5 -4
  131. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationHelmForm.js.map +1 -1
  132. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +1 -3
  133. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -1
  134. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js +2 -2
  135. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js.map +1 -1
  136. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +3 -3
  137. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -1
  138. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js +20 -23
  139. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js.map +1 -1
  140. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationIntegritySettings.js +3 -3
  141. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationIntegritySettings.js.map +1 -1
  142. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
  143. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +25 -45
  144. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
  145. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVariablesForm.d.ts +8 -0
  146. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVariablesForm.d.ts.map +1 -0
  147. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVariablesForm.js +37 -0
  148. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVariablesForm.js.map +1 -0
  149. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.d.ts +1 -3
  150. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.d.ts.map +1 -1
  151. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.js +5 -8
  152. package/dist/ui-components/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.js.map +1 -1
  153. package/dist/ui-components/src/components/Device/EditDeviceWizard/utils.d.ts +18 -18
  154. package/dist/ui-components/src/components/ErrorAlert/ErrorAlert.d.ts +4 -2
  155. package/dist/ui-components/src/components/ErrorAlert/ErrorAlert.d.ts.map +1 -1
  156. package/dist/ui-components/src/components/ErrorAlert/ErrorAlert.js +2 -2
  157. package/dist/ui-components/src/components/ErrorAlert/ErrorAlert.js.map +1 -1
  158. package/dist/ui-components/src/components/Fleet/CreateFleet/utils.d.ts +1 -1
  159. package/dist/ui-components/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
  160. package/dist/ui-components/src/components/Fleet/CreateFleet/utils.js +3 -3
  161. package/dist/ui-components/src/components/Fleet/CreateFleet/utils.js.map +1 -1
  162. package/dist/ui-components/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.d.ts.map +1 -1
  163. package/dist/ui-components/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.js +3 -1
  164. package/dist/ui-components/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.js.map +1 -1
  165. package/dist/ui-components/src/components/ImageBuilds/CancelImageBuildModal/CancelImageBuildModal.d.ts +7 -0
  166. package/dist/ui-components/src/components/ImageBuilds/CancelImageBuildModal/CancelImageBuildModal.d.ts.map +1 -0
  167. package/dist/ui-components/src/components/ImageBuilds/CancelImageBuildModal/CancelImageBuildModal.js +40 -0
  168. package/dist/ui-components/src/components/ImageBuilds/CancelImageBuildModal/CancelImageBuildModal.js.map +1 -0
  169. package/dist/ui-components/src/components/ImageBuilds/ConfirmImageExportModal/ConfirmImageExportModal.d.ts +8 -0
  170. package/dist/ui-components/src/components/ImageBuilds/ConfirmImageExportModal/ConfirmImageExportModal.d.ts.map +1 -0
  171. package/dist/ui-components/src/components/ImageBuilds/ConfirmImageExportModal/ConfirmImageExportModal.js +37 -0
  172. package/dist/ui-components/src/components/ImageBuilds/ConfirmImageExportModal/ConfirmImageExportModal.js.map +1 -0
  173. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/CreateImageBuildWizard.d.ts.map +1 -1
  174. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/CreateImageBuildWizard.js +4 -3
  175. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/CreateImageBuildWizard.js.map +1 -1
  176. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/OutputImageStep.js +1 -1
  177. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/OutputImageStep.js.map +1 -1
  178. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/RegistrationStep.d.ts.map +1 -1
  179. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/RegistrationStep.js +13 -10
  180. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/RegistrationStep.js.map +1 -1
  181. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/ReviewStep.d.ts.map +1 -1
  182. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/ReviewStep.js +4 -2
  183. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/ReviewStep.js.map +1 -1
  184. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/SourceImageStep.d.ts.map +1 -1
  185. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/SourceImageStep.js +7 -1
  186. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/steps/SourceImageStep.js.map +1 -1
  187. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/types.d.ts +3 -5
  188. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/types.d.ts.map +1 -1
  189. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/utils.d.ts +3 -2
  190. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/utils.d.ts.map +1 -1
  191. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/utils.js +139 -34
  192. package/dist/ui-components/src/components/ImageBuilds/CreateImageBuildWizard/utils.js.map +1 -1
  193. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildDetailsPage.d.ts.map +1 -1
  194. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildDetailsPage.js +23 -12
  195. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildDetailsPage.js.map +1 -1
  196. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildExportsGallery.d.ts.map +1 -1
  197. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildExportsGallery.js +115 -39
  198. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildExportsGallery.js.map +1 -1
  199. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildLogsTab.d.ts +1 -0
  200. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildLogsTab.d.ts.map +1 -1
  201. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildLogsTab.js +17 -18
  202. package/dist/ui-components/src/components/ImageBuilds/ImageBuildDetails/ImageBuildLogsTab.js.map +1 -1
  203. package/dist/ui-components/src/components/ImageBuilds/ImageBuildRow.d.ts +5 -2
  204. package/dist/ui-components/src/components/ImageBuilds/ImageBuildRow.d.ts.map +1 -1
  205. package/dist/ui-components/src/components/ImageBuilds/ImageBuildRow.js +22 -12
  206. package/dist/ui-components/src/components/ImageBuilds/ImageBuildRow.js.map +1 -1
  207. package/dist/ui-components/src/components/ImageBuilds/ImageBuildsPage.d.ts.map +1 -1
  208. package/dist/ui-components/src/components/ImageBuilds/ImageBuildsPage.js +17 -8
  209. package/dist/ui-components/src/components/ImageBuilds/ImageBuildsPage.js.map +1 -1
  210. package/dist/ui-components/src/components/ImageBuilds/ImageExportCards.d.ts +10 -9
  211. package/dist/ui-components/src/components/ImageBuilds/ImageExportCards.d.ts.map +1 -1
  212. package/dist/ui-components/src/components/ImageBuilds/ImageExportCards.js +122 -26
  213. package/dist/ui-components/src/components/ImageBuilds/ImageExportCards.js.map +1 -1
  214. package/dist/ui-components/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts +2 -1
  215. package/dist/ui-components/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
  216. package/dist/ui-components/src/components/Repository/CreateRepository/CreateRepositoryForm.js +10 -4
  217. package/dist/ui-components/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
  218. package/dist/ui-components/src/components/Repository/CreateRepository/utils.d.ts.map +1 -1
  219. package/dist/ui-components/src/components/Repository/CreateRepository/utils.js +3 -4
  220. package/dist/ui-components/src/components/Repository/CreateRepository/utils.js.map +1 -1
  221. package/dist/ui-components/src/components/form/RepositorySelect.d.ts.map +1 -1
  222. package/dist/ui-components/src/components/form/RepositorySelect.js +1 -1
  223. package/dist/ui-components/src/components/form/RepositorySelect.js.map +1 -1
  224. package/dist/ui-components/src/components/form/UploadField.d.ts.map +1 -1
  225. package/dist/ui-components/src/components/form/UploadField.js +25 -16
  226. package/dist/ui-components/src/components/form/UploadField.js.map +1 -1
  227. package/dist/ui-components/src/components/form/validations.d.ts +25 -18
  228. package/dist/ui-components/src/components/form/validations.d.ts.map +1 -1
  229. package/dist/ui-components/src/components/form/validations.js +79 -33
  230. package/dist/ui-components/src/components/form/validations.js.map +1 -1
  231. package/dist/ui-components/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.d.ts +2 -1
  232. package/dist/ui-components/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.d.ts.map +1 -1
  233. package/dist/ui-components/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.js +2 -2
  234. package/dist/ui-components/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.js.map +1 -1
  235. package/dist/ui-components/src/constants.d.ts +5 -6
  236. package/dist/ui-components/src/constants.d.ts.map +1 -1
  237. package/dist/ui-components/src/constants.js +19 -11
  238. package/dist/ui-components/src/constants.js.map +1 -1
  239. package/dist/ui-components/src/hooks/useWebSocket.d.ts.map +1 -1
  240. package/dist/ui-components/src/hooks/useWebSocket.js +25 -4
  241. package/dist/ui-components/src/hooks/useWebSocket.js.map +1 -1
  242. package/dist/ui-components/src/types/deviceSpec.d.ts +44 -76
  243. package/dist/ui-components/src/types/deviceSpec.d.ts.map +1 -1
  244. package/dist/ui-components/src/types/deviceSpec.js +13 -26
  245. package/dist/ui-components/src/types/deviceSpec.js.map +1 -1
  246. package/dist/ui-components/src/types/extraTypes.d.ts +1 -7
  247. package/dist/ui-components/src/types/extraTypes.d.ts.map +1 -1
  248. package/dist/ui-components/src/types/extraTypes.js.map +1 -1
  249. package/dist/ui-components/src/types/rbac.d.ts +7 -1
  250. package/dist/ui-components/src/types/rbac.d.ts.map +1 -1
  251. package/dist/ui-components/src/types/rbac.js +6 -0
  252. package/dist/ui-components/src/types/rbac.js.map +1 -1
  253. package/dist/ui-components/src/utils/imageBuilds.d.ts +1 -0
  254. package/dist/ui-components/src/utils/imageBuilds.d.ts.map +1 -1
  255. package/dist/ui-components/src/utils/imageBuilds.js +20 -29
  256. package/dist/ui-components/src/utils/imageBuilds.js.map +1 -1
  257. package/dist/ui-components/src/utils/search.d.ts +2 -1
  258. package/dist/ui-components/src/utils/search.d.ts.map +1 -1
  259. package/dist/ui-components/src/utils/search.js +2 -2
  260. package/dist/ui-components/src/utils/search.js.map +1 -1
  261. package/package.json +2 -2
  262. package/src/components/AuthProvider/CreateAuthProvider/utils.ts +2 -2
  263. package/src/components/DetailsPage/Tables/ApplicationsTable.tsx +2 -2
  264. package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +10 -4
  265. package/src/components/Device/DeviceDetails/TerminalTab.tsx +9 -1
  266. package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +361 -425
  267. package/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.tsx +19 -29
  268. package/src/components/Device/EditDeviceWizard/steps/ApplicationHelmForm.tsx +5 -13
  269. package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +2 -16
  270. package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +8 -7
  271. package/src/components/Device/EditDeviceWizard/steps/ApplicationIntegritySettings.tsx +5 -5
  272. package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +29 -101
  273. package/src/components/Device/EditDeviceWizard/steps/ApplicationVariablesForm.tsx +87 -0
  274. package/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.tsx +5 -10
  275. package/src/components/ErrorAlert/ErrorAlert.tsx +13 -3
  276. package/src/components/Fleet/CreateFleet/utils.ts +4 -5
  277. package/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.tsx +11 -8
  278. package/src/components/ImageBuilds/CancelImageBuildModal/CancelImageBuildModal.tsx +81 -0
  279. package/src/components/ImageBuilds/ConfirmImageExportModal/ConfirmImageExportModal.tsx +61 -0
  280. package/src/components/ImageBuilds/CreateImageBuildWizard/CreateImageBuildWizard.tsx +8 -3
  281. package/src/components/ImageBuilds/CreateImageBuildWizard/steps/OutputImageStep.tsx +1 -1
  282. package/src/components/ImageBuilds/CreateImageBuildWizard/steps/RegistrationStep.tsx +18 -10
  283. package/src/components/ImageBuilds/CreateImageBuildWizard/steps/ReviewStep.tsx +5 -1
  284. package/src/components/ImageBuilds/CreateImageBuildWizard/steps/SourceImageStep.tsx +13 -1
  285. package/src/components/ImageBuilds/CreateImageBuildWizard/types.ts +3 -6
  286. package/src/components/ImageBuilds/CreateImageBuildWizard/utils.ts +161 -37
  287. package/src/components/ImageBuilds/ImageBuildDetails/ImageBuildDetailsPage.tsx +36 -17
  288. package/src/components/ImageBuilds/ImageBuildDetails/ImageBuildExportsGallery.tsx +131 -44
  289. package/src/components/ImageBuilds/ImageBuildDetails/ImageBuildLogsTab.tsx +22 -26
  290. package/src/components/ImageBuilds/ImageBuildRow.tsx +41 -20
  291. package/src/components/ImageBuilds/ImageBuildsPage.tsx +34 -15
  292. package/src/components/ImageBuilds/ImageExportCards.tsx +198 -80
  293. package/src/components/Repository/CreateRepository/CreateRepositoryForm.css +5 -1
  294. package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +14 -4
  295. package/src/components/Repository/CreateRepository/utils.ts +4 -4
  296. package/src/components/form/RepositorySelect.tsx +1 -0
  297. package/src/components/form/UploadField.tsx +29 -30
  298. package/src/components/form/validations.ts +156 -106
  299. package/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.tsx +3 -1
  300. package/src/constants.ts +19 -6
  301. package/src/hooks/useWebSocket.ts +25 -3
  302. package/src/types/deviceSpec.ts +68 -108
  303. package/src/types/extraTypes.ts +2 -12
  304. package/src/types/rbac.ts +6 -0
  305. package/src/utils/imageBuilds.ts +22 -32
  306. package/src/utils/search.ts +2 -2
@@ -1,20 +1,25 @@
1
1
  import {
2
- AppType,
3
- ApplicationResourceLimits,
2
+ ApplicationProviderSpec,
3
+ ComposeApplication,
4
4
  ConfigProviderSpec,
5
+ ContainerApplication,
5
6
  DisruptionBudget,
6
7
  GitConfigProviderSpec,
8
+ HelmApplication,
7
9
  HttpConfigProviderSpec,
8
10
  ImageApplicationProviderSpec,
9
11
  ImagePullPolicy,
12
+ InlineApplicationProviderSpec,
10
13
  InlineConfigProviderSpec,
11
14
  KubernetesSecretProviderSpec,
15
+ QuadletApplication,
12
16
  } from '@flightctl/types';
13
- import { ApplicationProviderSpecFixed, FlightCtlLabel } from './extraTypes';
17
+ import { FlightCtlLabel } from './extraTypes';
14
18
  import { UpdateScheduleMode } from '../utils/time';
15
19
 
16
- export const RUN_AS_DEFAULT_USER = 'flightctl';
20
+ // At the moment the "root" user is the default user when no user is specified.
17
21
  export const RUN_AS_ROOT_USER = 'root';
22
+ export const RUN_AS_FLIGHTCTL_USER = 'flightctl';
18
23
 
19
24
  export enum ConfigType {
20
25
  GIT = 'git',
@@ -35,77 +40,12 @@ export type GitConfigTemplate = ConfigTemplate & {
35
40
  path: string;
36
41
  };
37
42
 
43
+ /** Used when adding a Compose/Quadlet app to choose image vs inline source. */
38
44
  export enum AppSpecType {
39
45
  OCI_IMAGE = 'image',
40
46
  INLINE = 'inline',
41
47
  }
42
48
 
43
- type InlineContent = {
44
- content?: string;
45
- path: string;
46
- base64?: boolean;
47
- };
48
-
49
- type AppBase = {
50
- appType: AppType;
51
- specType: AppSpecType;
52
- name?: string;
53
- variables: { name: string; value: string }[];
54
- volumes?: ApplicationVolumeForm[];
55
- };
56
-
57
- export type PortMapping = {
58
- hostPort: string;
59
- containerPort: string;
60
- };
61
-
62
- export type SingleContainerAppForm = AppBase & {
63
- appType: AppType.AppTypeContainer;
64
- specType: AppSpecType.OCI_IMAGE;
65
- name: string;
66
- image: string;
67
- ports?: PortMapping[];
68
- limits?: ApplicationResourceLimits;
69
- runAs?: string;
70
- };
71
-
72
- export type QuadletImageAppForm = AppBase & {
73
- appType: AppType.AppTypeQuadlet;
74
- specType: AppSpecType.OCI_IMAGE;
75
- image: string;
76
- runAs?: string;
77
- };
78
-
79
- export type QuadletInlineAppForm = AppBase & {
80
- appType: AppType.AppTypeQuadlet;
81
- specType: AppSpecType.INLINE;
82
- name: string; // transforms the field in required
83
- files: InlineContent[];
84
- runAs?: string;
85
- };
86
-
87
- export type ComposeImageAppForm = AppBase & {
88
- appType: AppType.AppTypeCompose;
89
- specType: AppSpecType.OCI_IMAGE;
90
- image: string;
91
- };
92
-
93
- export type ComposeInlineAppForm = AppBase & {
94
- appType: AppType.AppTypeCompose;
95
- specType: AppSpecType.INLINE;
96
- name: string;
97
- files: InlineContent[];
98
- };
99
-
100
- export type HelmImageAppForm = Omit<AppBase, 'variables' | 'volumes'> & {
101
- appType: AppType.AppTypeHelm;
102
- specType: AppSpecType.OCI_IMAGE;
103
- image: string;
104
- namespace?: string;
105
- valuesFiles: Array<string>;
106
- valuesYaml?: string;
107
- };
108
-
109
49
  export const isGitConfigTemplate = (configTemplate: ConfigTemplate): configTemplate is GitConfigTemplate =>
110
50
  configTemplate.type === ConfigType.GIT;
111
51
 
@@ -123,50 +63,70 @@ export type RepoConfig = GitConfigProviderSpec | HttpConfigProviderSpec;
123
63
  export const isRepoConfig = (config: ConfigSourceProvider): config is RepoConfig =>
124
64
  isGitProviderSpec(config) || isHttpProviderSpec(config);
125
65
 
126
- export type AppForm =
127
- | QuadletImageAppForm
128
- | QuadletInlineAppForm
129
- | ComposeImageAppForm
130
- | ComposeInlineAppForm
131
- | SingleContainerAppForm
132
- | HelmImageAppForm;
133
-
134
- export const isImageAppProvider = (
135
- app: ApplicationProviderSpecFixed,
136
- ): app is ApplicationProviderSpecFixed & ImageApplicationProviderSpec => 'image' in app;
137
-
138
- // Type guards for the 5 explicit types
139
- export const isQuadletImageAppForm = (app: AppForm): app is QuadletImageAppForm =>
140
- app.appType === AppType.AppTypeQuadlet && app.specType === AppSpecType.OCI_IMAGE;
141
- export const isQuadletInlineAppForm = (app: AppForm): app is QuadletInlineAppForm =>
142
- app.appType === AppType.AppTypeQuadlet && app.specType === AppSpecType.INLINE;
143
- export const isComposeImageAppForm = (app: AppForm): app is ComposeImageAppForm =>
144
- app.appType === AppType.AppTypeCompose && app.specType === AppSpecType.OCI_IMAGE;
145
- export const isComposeInlineAppForm = (app: AppForm): app is ComposeInlineAppForm =>
146
- app.appType === AppType.AppTypeCompose && app.specType === AppSpecType.INLINE;
147
- export const isSingleContainerAppForm = (app: AppForm): app is SingleContainerAppForm =>
148
- app.appType === AppType.AppTypeContainer;
149
- export const isHelmImageAppForm = (app: AppForm): app is HelmImageAppForm =>
150
- app.appType === AppType.AppTypeHelm && app.specType === AppSpecType.OCI_IMAGE;
66
+ export const isImageVariantApp = (
67
+ app: ApplicationProviderSpec,
68
+ ): app is ApplicationProviderSpec & ImageApplicationProviderSpec => 'image' in app;
69
+ export const isInlineVariantApp = (
70
+ app: ApplicationProviderSpec,
71
+ ): app is ApplicationProviderSpec & InlineApplicationProviderSpec => 'inline' in app;
151
72
 
152
73
  export type ApplicationVolumeForm = {
153
74
  name: string;
154
- imageRef?: string;
155
- imagePullPolicy?: ImagePullPolicy;
156
- mountPath?: string;
75
+ imageRef: string;
76
+ imagePullPolicy: ImagePullPolicy;
77
+ mountPath: string;
157
78
  };
158
79
 
80
+ export type PortMapping = {
81
+ hostPort: string;
82
+ containerPort: string;
83
+ };
84
+
85
+ export type VariablesForm = { name: string; value: string }[];
86
+
87
+ export type InlineFileForm = { path: string; content?: string; base64?: boolean };
88
+
89
+ type InlineOrImageVariantForm = {
90
+ specType: AppSpecType;
91
+ image: string;
92
+ files: InlineFileForm[];
93
+ };
94
+
95
+ export type SingleContainerAppForm = Omit<ContainerApplication, 'ports' | 'resources' | 'envVars' | 'volumes'> & {
96
+ specType: AppSpecType.OCI_IMAGE;
97
+ ports: PortMapping[];
98
+ cpuLimit: string;
99
+ memoryLimit: string;
100
+ variables: VariablesForm;
101
+ volumes: ApplicationVolumeForm[];
102
+ };
103
+
104
+ export type HelmAppForm = Omit<HelmApplication, 'values'> & {
105
+ specType: AppSpecType.OCI_IMAGE;
106
+ valuesYaml?: string;
107
+ valuesFiles: string[];
108
+ };
109
+
110
+ export type QuadletAppForm = Omit<QuadletApplication, 'envVars' | 'volumes' | 'image' | 'inline'> &
111
+ InlineOrImageVariantForm & {
112
+ variables: VariablesForm;
113
+ volumes: ApplicationVolumeForm[];
114
+ };
115
+
116
+ export type ComposeAppForm = Omit<ComposeApplication, 'envVars' | 'volumes' | 'image' | 'inline'> &
117
+ InlineOrImageVariantForm & {
118
+ variables: VariablesForm;
119
+ volumes: ApplicationVolumeForm[];
120
+ };
121
+
122
+ export type AppForm = SingleContainerAppForm | HelmAppForm | QuadletAppForm | ComposeAppForm;
123
+
159
124
  const hasTemplateVariables = (str: string) => /{{.+?}}/.test(str);
160
125
 
161
- export const getAppIdentifier = (app: AppForm) => {
162
- if (isSingleContainerAppForm(app)) {
163
- return app.name || app.image;
164
- }
165
- if (isQuadletImageAppForm(app) || isComposeImageAppForm(app)) {
166
- return app.name || app.image;
167
- }
168
- // Name is mandatory for inline applications
169
- return app.name;
126
+ export const getAppIdentifier = (app: AppForm | ApplicationProviderSpec): string => {
127
+ if (app.name) return app.name;
128
+ if ('image' in app && app.image) return app.image;
129
+ return '';
170
130
  };
171
131
 
172
132
  const removeSlashes = (url: string | undefined) => (url || '').replace(/^\/+|\/+$/g, '');
@@ -214,7 +174,7 @@ export const isKubeProviderSpec = (providerSpec: ConfigProviderSpec): providerSp
214
174
 
215
175
  export type InlineConfigTemplate = ConfigTemplate & {
216
176
  type: ConfigType.INLINE;
217
- files: Array<InlineContent & { permissions?: string; user?: string; group?: string }>;
177
+ files: Array<InlineFileForm & { permissions?: string; user?: string; group?: string }>;
218
178
  };
219
179
 
220
180
  export const isInlineConfigTemplate = (configTemplate: ConfigTemplate): configTemplate is InlineConfigTemplate =>
@@ -1,7 +1,4 @@
1
1
  import {
2
- AppType,
3
- ApplicationEnvVars,
4
- ApplicationVolumeProviderSpec,
5
2
  AuthProvider,
6
3
  Condition,
7
4
  ConditionType,
@@ -9,7 +6,6 @@ import {
9
6
  EnrollmentRequest,
10
7
  FileContent,
11
8
  Fleet,
12
- ImageApplicationProviderSpec,
13
9
  OAuth2ProviderSpec,
14
10
  OIDCProviderSpec,
15
11
  RelativePath,
@@ -55,16 +51,10 @@ export type AnnotationType = DeviceAnnotation; // Add more types when they are a
55
51
 
56
52
  export const isFleet = (resource: ResourceSync | Fleet): resource is Fleet => resource.kind === 'Fleet';
57
53
 
58
- // ApplicationProviderSpec's definition for inline files adds a Record<string, any>. We use the fixed types to get full Typescript checks for the field
54
+ // ApplicationProviderSpec's definition for inline files adds a Record<string, any>.
55
+ // We use the fixed type to get proper Typescript checks for the field
59
56
  export type InlineApplicationFileFixed = FileContent & RelativePath;
60
57
 
61
- // "FixedApplicationProviderSpec" will need to be manually adjusted whenever the API definition changes
62
- export type ApplicationProviderSpecFixed = ApplicationEnvVars &
63
- ApplicationVolumeProviderSpec & {
64
- name?: string;
65
- appType: AppType;
66
- } & (ImageApplicationProviderSpec | { inline: InlineApplicationFileFixed[] });
67
-
68
58
  type CliArtifact = {
69
59
  os: string;
70
60
  arch: string;
package/src/types/rbac.ts CHANGED
@@ -21,4 +21,10 @@ export enum RESOURCE {
21
21
  ALERTS = 'alerts',
22
22
  AUTH_PROVIDER = 'authproviders',
23
23
  IMAGE_BUILD = 'imagebuilds',
24
+ IMAGE_BUILD_LOG = 'imagebuilds/log',
25
+ IMAGE_BUILD_CANCEL = 'imagebuilds/cancel',
26
+ IMAGE_EXPORT = 'imageexports',
27
+ IMAGE_EXPORT_LOG = 'imageexports/log',
28
+ IMAGE_EXPORT_CANCEL = 'imageexports/cancel',
29
+ IMAGE_EXPORT_DOWNLOAD = 'imageexports/download',
24
30
  }
@@ -99,6 +99,14 @@ export const isImageBuildActiveReason = (reason: ImageBuildConditionReason): boo
99
99
  );
100
100
  };
101
101
 
102
+ export const isImageBuildCancelable = (reason: ImageBuildConditionReason): boolean => {
103
+ return (
104
+ reason === ImageBuildConditionReason.ImageBuildConditionReasonPending ||
105
+ reason === ImageBuildConditionReason.ImageBuildConditionReasonBuilding ||
106
+ reason === ImageBuildConditionReason.ImageBuildConditionReasonPushing
107
+ );
108
+ };
109
+
102
110
  export const isImageExportActiveReason = (reason: ImageExportConditionReason): boolean => {
103
111
  return (
104
112
  reason === ImageExportConditionReason.ImageExportConditionReasonPending ||
@@ -108,17 +116,6 @@ export const isImageExportActiveReason = (reason: ImageExportConditionReason): b
108
116
  );
109
117
  };
110
118
 
111
- const isDownloadResultRedirect = (response: Response): boolean => {
112
- return (
113
- response.status === 302 ||
114
- response.status === 301 ||
115
- response.status === 307 ||
116
- response.status === 308 ||
117
- response.type === 'opaqueredirect' ||
118
- response.status === 0
119
- );
120
- };
121
-
122
119
  // Validate that a URL is safe to use for download (only http/https protocols)
123
120
  const isValidDownloadUrl = (url: string): boolean => {
124
121
  try {
@@ -129,37 +126,30 @@ const isValidDownloadUrl = (url: string): boolean => {
129
126
  }
130
127
  };
131
128
 
132
- const getRedirectUrl = (response: Response): string | undefined => {
133
- // If the Location header is present, it indicates a redirect.
134
- const redirectUrl = response.headers.get('Location');
135
- if (redirectUrl) {
136
- return redirectUrl;
137
- }
138
- if (isDownloadResultRedirect(response) && response.url) {
139
- return response.url;
140
- }
141
- return undefined;
142
- };
143
-
144
129
  export type ExportDownloadResult =
145
130
  | { type: 'redirect'; url: string }
146
131
  | { type: 'blob'; blob: Blob; filename: string | undefined };
147
132
 
148
- // The download endpoint returns two types of responses: a redirect URL or a blob.
149
- // If a redirect URL is found, we should use it to trigger the download in the browser.
150
- // If no redirect URL is found, we should download the blob directly.
133
+ // The ImageBuilder API download endpoint returns two types of responses: a redirect URL or a blob.
134
+ // When it returns a redirect URL, the UI proxy rewrites the response to 200 with { redirectUrl: CDN_URL }
135
+ // When no redirect URL is found, we should download the blob directly.
151
136
  export const getExportDownloadResult = async (response: Response): Promise<ExportDownloadResult | null> => {
152
- if (!response.ok && response.status !== 0) {
137
+ if (!response.ok || response.type === 'opaqueredirect' || response.status === 0) {
153
138
  return null;
154
139
  }
155
- const redirectUrl = getRedirectUrl(response);
156
- if (redirectUrl) {
157
- if (!isValidDownloadUrl(redirectUrl)) {
158
- throw new Error('Invalid redirect URL received from server');
140
+
141
+ // Extract the redirect URL returned by the UI proxy
142
+ const contentType = response.headers.get('Content-Type') || '';
143
+ if (response.ok && contentType.includes('application/json')) {
144
+ const data = (await response.json()) as { redirectUrl?: string };
145
+ const url = data?.redirectUrl;
146
+ if (url && isValidDownloadUrl(url)) {
147
+ return { type: 'redirect', url };
159
148
  }
160
- return { type: 'redirect', url: redirectUrl };
149
+ return null;
161
150
  }
162
151
 
152
+ // Download the blob directly
163
153
  const blob = await response.blob();
164
154
 
165
155
  let filename = '';
@@ -1,5 +1,5 @@
1
1
  import fuzzy from 'fuzzysearch';
2
- import { API_VERSION } from '../constants';
2
+ import { ApiVersion } from '@flightctl/types';
3
3
 
4
4
  // Must be an even number for "getSearchResultsCount" to work
5
5
  export const MAX_TOTAL_SEARCH_RESULTS = 10;
@@ -26,7 +26,7 @@ export const getSearchResultsCount = (labelCount: number, fleetCount: number) =>
26
26
  };
27
27
 
28
28
  export const getEmptyFleetSearch = () => ({
29
- apiVersion: API_VERSION,
29
+ apiVersion: ApiVersion.ApiVersionV1beta1,
30
30
  kind: 'Fleet',
31
31
  metadata: {},
32
32
  items: [],