@rancher/shell 3.0.7 → 3.0.8-rc.10

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 (375) hide show
  1. package/assets/brand/suse/banner.svg +1 -0
  2. package/assets/brand/suse/dark/banner.svg +1 -0
  3. package/assets/brand/suse/dark/login-landscape.svg +1 -0
  4. package/assets/brand/suse/dark/rancher-logo.svg +1 -1
  5. package/assets/brand/suse/favicon.png +0 -0
  6. package/assets/brand/suse/login-landscape.svg +1 -0
  7. package/assets/brand/suse/metadata.json +11 -1
  8. package/assets/brand/suse/rancher-logo.svg +1 -1
  9. package/assets/fonts/suse/suse-v2-latin-300.woff +0 -0
  10. package/assets/fonts/suse/suse-v2-latin-300.woff2 +0 -0
  11. package/assets/fonts/suse/suse-v2-latin-600.woff +0 -0
  12. package/assets/fonts/suse/suse-v2-latin-600.woff2 +0 -0
  13. package/assets/fonts/suse/suse-v2-latin-700.woff +0 -0
  14. package/assets/fonts/suse/suse-v2-latin-700.woff2 +0 -0
  15. package/assets/fonts/suse/suse-v2-latin-800.woff +0 -0
  16. package/assets/fonts/suse/suse-v2-latin-800.woff2 +0 -0
  17. package/assets/fonts/suse/suse-v2-latin-regular.woff +0 -0
  18. package/assets/fonts/suse/suse-v2-latin-regular.woff2 +0 -0
  19. package/assets/images/content/README.md +5 -0
  20. package/assets/images/content/cloud-native.svg +84 -0
  21. package/assets/images/content/dark/cloud-native.svg +21 -0
  22. package/assets/images/content/dark/shield.svg +59 -0
  23. package/assets/images/content/dark/suse.svg +10 -0
  24. package/assets/images/content/shield.svg +59 -0
  25. package/assets/images/content/suse.svg +10 -0
  26. package/assets/images/vendor/githubapp.svg +13 -0
  27. package/assets/styles/base/_typography.scss +2 -1
  28. package/assets/styles/fonts/_fontstack.scss +53 -1
  29. package/assets/styles/global/_cards.scss +0 -3
  30. package/assets/styles/global/_layout.scss +21 -35
  31. package/assets/styles/themes/_dark.scss +1 -1
  32. package/assets/styles/themes/_light.scss +1 -1
  33. package/assets/styles/themes/_modern.scss +16 -8
  34. package/assets/styles/themes/_suse.scss +116 -24
  35. package/assets/translations/en-us.yaml +185 -21
  36. package/assets/translations/zh-hans.yaml +0 -4
  37. package/components/AutoscalerCard.vue +113 -0
  38. package/components/AutoscalerTab.vue +94 -0
  39. package/components/BackLink.vue +8 -0
  40. package/components/BannerGraphic.vue +36 -21
  41. package/components/BrandImage.vue +17 -6
  42. package/components/ClusterIconMenu.vue +1 -1
  43. package/components/ClusterProviderIcon.vue +1 -1
  44. package/components/Cron/CronExpressionEditor.vue +1 -1
  45. package/components/Cron/CronExpressionEditorModal.vue +1 -1
  46. package/components/Drawer/Chrome.vue +2 -6
  47. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +4 -9
  48. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +3 -8
  49. package/components/Drawer/ResourceDetailDrawer/composables.ts +3 -4
  50. package/components/Drawer/ResourceDetailDrawer/index.vue +4 -9
  51. package/components/Drawer/ResourceDetailDrawer/types.ts +17 -0
  52. package/components/Drawer/types.ts +3 -0
  53. package/components/DynamicContent/DynamicContentBanner.vue +102 -0
  54. package/components/DynamicContent/DynamicContentCloseButton.vue +42 -0
  55. package/components/DynamicContent/DynamicContentIcon.vue +132 -0
  56. package/components/DynamicContent/DynamicContentPanel.vue +112 -0
  57. package/components/DynamicContent/content.ts +78 -0
  58. package/components/EmberPage.vue +1 -1
  59. package/components/IconOrSvg.vue +2 -2
  60. package/components/Inactivity.vue +222 -106
  61. package/components/InstallHelmCharts.vue +2 -2
  62. package/components/PaginatedResourceTable.vue +2 -6
  63. package/components/PopoverCard.vue +192 -0
  64. package/components/Questions/__tests__/index.test.ts +159 -0
  65. package/components/Resource/Detail/CopyToClipboard.vue +4 -1
  66. package/components/Resource/Detail/FetchLoader/composables.ts +18 -4
  67. package/components/Resource/Detail/Metadata/Annotations/index.vue +2 -2
  68. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +1 -1
  69. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +4 -0
  70. package/components/Resource/Detail/Metadata/KeyValueRow.vue +1 -1
  71. package/components/Resource/Detail/Metadata/Labels/index.vue +2 -2
  72. package/components/Resource/Detail/Metadata/composables.ts +9 -9
  73. package/components/Resource/Detail/Metadata/index.vue +3 -3
  74. package/components/Resource/Detail/ResourcePopover/ResourcePopoverCard.vue +2 -19
  75. package/components/Resource/Detail/ResourcePopover/__tests__/ResourcePopoverCard.test.ts +0 -29
  76. package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +132 -150
  77. package/components/Resource/Detail/ResourcePopover/index.vue +54 -159
  78. package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +0 -2
  79. package/components/Resource/Detail/TitleBar/composables.ts +2 -1
  80. package/components/Resource/Detail/TitleBar/index.vue +10 -6
  81. package/components/Resource/Detail/composables.ts +12 -0
  82. package/components/ResourceDetail/Masthead/latest.vue +29 -0
  83. package/components/ResourceDetail/index.vue +5 -2
  84. package/components/ResourceList/Masthead.vue +1 -1
  85. package/components/SortableTable/index.vue +18 -2
  86. package/components/Tabbed/__tests__/index.test.ts +86 -0
  87. package/components/{nav/WindowManager → Window}/ContainerLogs.vue +1 -1
  88. package/components/{nav/WindowManager → Window}/ContainerLogsActions.vue +1 -0
  89. package/components/{nav/WindowManager → Window}/__tests__/ContainerLogs.test.ts +1 -1
  90. package/components/{nav/WindowManager → Window}/__tests__/ContainerShell.test.ts +2 -2
  91. package/components/__tests__/AutoscalerCard.test.ts +154 -0
  92. package/components/__tests__/AutoscalerTab.test.ts +125 -0
  93. package/components/__tests__/PopoverCard.test.ts +204 -0
  94. package/components/auth/SelectPrincipal.vue +24 -6
  95. package/components/auth/__tests__/SelectPrincipal.test.ts +119 -0
  96. package/components/fleet/FleetConfigMapSelector.vue +117 -0
  97. package/components/fleet/FleetSecretSelector.vue +127 -0
  98. package/components/fleet/__tests__/FleetConfigMapSelector.test.ts +125 -0
  99. package/components/fleet/__tests__/FleetSecretSelector.test.ts +82 -0
  100. package/components/form/FileImageSelector.vue +13 -4
  101. package/components/form/FileSelector.vue +11 -2
  102. package/components/form/ResourceLabeledSelect.vue +1 -0
  103. package/components/form/__tests__/ResourceLabeledSelect.test.ts +90 -0
  104. package/components/formatter/Autoscaler.vue +97 -0
  105. package/components/formatter/InternalExternalIP.vue +198 -24
  106. package/components/formatter/__tests__/Autoscaler.test.ts +156 -0
  107. package/components/formatter/__tests__/InternalExternalIP.test.ts +133 -0
  108. package/components/google/util/__tests__/formatter.test.ts +47 -0
  109. package/components/google/util/formatter.ts +5 -2
  110. package/components/nav/Group.vue +12 -3
  111. package/components/nav/Header.vue +37 -16
  112. package/components/nav/NamespaceFilter.vue +13 -1
  113. package/components/nav/NotificationCenter/index.vue +2 -1
  114. package/components/nav/TopLevelMenu.helper.ts +16 -6
  115. package/components/nav/TopLevelMenu.vue +4 -2
  116. package/components/{DraggableZone.vue → nav/WindowManager/PinArea.vue} +47 -80
  117. package/components/nav/WindowManager/composables/useComponentsMount.ts +70 -0
  118. package/components/nav/WindowManager/composables/useDimensionsHandler.ts +105 -0
  119. package/components/nav/WindowManager/composables/useDragHandler.ts +99 -0
  120. package/components/nav/WindowManager/composables/usePanelHandler.ts +72 -0
  121. package/components/nav/WindowManager/composables/usePanelsHandler.ts +14 -0
  122. package/components/nav/WindowManager/composables/useResizeHandler.ts +167 -0
  123. package/components/nav/WindowManager/composables/useTabsHandler.ts +51 -0
  124. package/components/nav/WindowManager/constants.ts +23 -0
  125. package/components/nav/WindowManager/index.vue +61 -575
  126. package/components/nav/WindowManager/panels/HorizontalPanel.vue +265 -0
  127. package/components/nav/WindowManager/panels/TabBodyContainer.vue +39 -0
  128. package/components/nav/WindowManager/panels/VerticalPanel.vue +308 -0
  129. package/components/templates/default.vue +4 -40
  130. package/components/templates/home.vue +31 -5
  131. package/components/templates/plain.vue +30 -4
  132. package/components/templates/standalone.vue +1 -1
  133. package/composables/useI18n.ts +10 -1
  134. package/composables/useInterval.ts +15 -0
  135. package/config/__test__/uiplugins.test.ts +309 -0
  136. package/config/labels-annotations.js +9 -1
  137. package/config/product/auth.js +1 -0
  138. package/config/product/explorer.js +3 -1
  139. package/config/product/manager.js +20 -9
  140. package/config/query-params.js +1 -0
  141. package/config/router/routes.js +10 -2
  142. package/config/settings.ts +10 -2
  143. package/config/store.js +4 -2
  144. package/config/table-headers.js +8 -0
  145. package/config/types.js +11 -0
  146. package/config/uiplugins.js +46 -2
  147. package/config/version.js +1 -1
  148. package/core/__test__/extension-manager-impl.test.js +236 -0
  149. package/core/extension-manager-impl.js +23 -6
  150. package/core/plugin-helpers.ts +2 -0
  151. package/core/types-provisioning.ts +4 -1
  152. package/detail/pod.vue +1 -0
  153. package/detail/provisioning.cattle.io.cluster.vue +13 -1
  154. package/dialog/AddonConfigConfirmationDialog.vue +45 -1
  155. package/dialog/DeveloperLoadExtensionDialog.vue +12 -3
  156. package/dialog/RollbackWorkloadDialog.vue +2 -5
  157. package/directives/ui-context.ts +103 -0
  158. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +52 -11
  159. package/edit/auth/AuthProviderWarningBanners.vue +14 -1
  160. package/edit/auth/__tests__/oidc.test.ts +26 -0
  161. package/edit/auth/github-app-steps.vue +97 -0
  162. package/edit/auth/github-steps.vue +75 -0
  163. package/edit/auth/github.vue +99 -65
  164. package/edit/auth/oidc.vue +5 -1
  165. package/edit/autoscaling.horizontalpodautoscaler/index.vue +1 -0
  166. package/edit/cloudcredential.vue +1 -1
  167. package/edit/configmap.vue +1 -0
  168. package/edit/constraints.gatekeeper.sh.constraint/index.vue +1 -0
  169. package/edit/fleet.cattle.io.gitrepo.vue +0 -10
  170. package/edit/fleet.cattle.io.helmop.vue +51 -2
  171. package/edit/helm.cattle.io.projecthelmchart.vue +1 -0
  172. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +1 -0
  173. package/edit/logging-flow/index.vue +1 -0
  174. package/edit/logging.banzaicloud.io.output/index.vue +1 -0
  175. package/edit/management.cattle.io.fleetworkspace.vue +1 -1
  176. package/edit/management.cattle.io.project.vue +1 -0
  177. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +4 -1
  178. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +2 -1
  179. package/edit/monitoring.coreos.com.prometheusrule/index.vue +1 -0
  180. package/edit/monitoring.coreos.com.receiver/index.vue +2 -1
  181. package/edit/monitoring.coreos.com.route.vue +1 -1
  182. package/edit/namespace.vue +1 -0
  183. package/edit/networking.istio.io.destinationrule/index.vue +1 -0
  184. package/edit/networking.k8s.io.ingress/index.vue +1 -0
  185. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +15 -5
  186. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +1 -0
  187. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -0
  188. package/edit/node.vue +1 -0
  189. package/edit/persistentvolume/index.vue +27 -22
  190. package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +13 -14
  191. package/edit/persistentvolume/plugins/azureDisk.vue +49 -48
  192. package/edit/persistentvolume/plugins/azureFile.vue +15 -14
  193. package/edit/persistentvolume/plugins/cephfs.vue +15 -14
  194. package/edit/persistentvolume/plugins/cinder.vue +15 -14
  195. package/edit/persistentvolume/plugins/csi.vue +18 -16
  196. package/edit/persistentvolume/plugins/fc.vue +13 -14
  197. package/edit/persistentvolume/plugins/flexVolume.vue +15 -14
  198. package/edit/persistentvolume/plugins/flocker.vue +1 -3
  199. package/edit/persistentvolume/plugins/gcePersistentDisk.vue +13 -14
  200. package/edit/persistentvolume/plugins/glusterfs.vue +15 -14
  201. package/edit/persistentvolume/plugins/hostPath.vue +40 -39
  202. package/edit/persistentvolume/plugins/iscsi.vue +13 -14
  203. package/edit/persistentvolume/plugins/local.vue +1 -3
  204. package/edit/persistentvolume/plugins/longhorn.vue +23 -22
  205. package/edit/persistentvolume/plugins/nfs.vue +15 -14
  206. package/edit/persistentvolume/plugins/photonPersistentDisk.vue +1 -14
  207. package/edit/persistentvolume/plugins/portworxVolume.vue +15 -14
  208. package/edit/persistentvolume/plugins/quobyte.vue +15 -14
  209. package/edit/persistentvolume/plugins/rbd.vue +15 -14
  210. package/edit/persistentvolume/plugins/scaleIO.vue +15 -14
  211. package/edit/persistentvolume/plugins/storageos.vue +15 -14
  212. package/edit/persistentvolume/plugins/vsphereVolume.vue +1 -3
  213. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +32 -5
  214. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +35 -0
  215. package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +155 -0
  216. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +11 -9
  217. package/edit/provisioning.cattle.io.cluster/index.vue +25 -15
  218. package/edit/provisioning.cattle.io.cluster/rke2.vue +98 -17
  219. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +28 -2
  220. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +107 -5
  221. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +92 -4
  222. package/edit/secret/index.vue +1 -1
  223. package/edit/service.vue +9 -4
  224. package/edit/serviceaccount.vue +1 -0
  225. package/edit/storage.k8s.io.storageclass/index.vue +1 -0
  226. package/edit/workload/index.vue +2 -1
  227. package/edit/workload/mixins/workload.js +1 -1
  228. package/initialize/App.vue +4 -4
  229. package/initialize/install-directives.js +2 -0
  230. package/initialize/install-plugins.js +19 -2
  231. package/list/projectsecret.vue +1 -1
  232. package/list/provisioning.cattle.io.cluster.vue +15 -2
  233. package/machine-config/amazonec2.vue +42 -135
  234. package/machine-config/azure.vue +1 -1
  235. package/machine-config/components/EC2Networking.vue +490 -0
  236. package/machine-config/components/__tests__/EC2Networking.test.ts +148 -0
  237. package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +294 -0
  238. package/machine-config/digitalocean.vue +11 -0
  239. package/machine-config/google.vue +1 -1
  240. package/mixins/__tests__/brand.spec.ts +2 -2
  241. package/mixins/__tests__/chart.test.ts +21 -0
  242. package/mixins/brand.js +1 -7
  243. package/mixins/chart.js +8 -2
  244. package/mixins/create-edit-view/index.js +5 -0
  245. package/models/__tests__/chart.test.ts +49 -12
  246. package/models/__tests__/compliance.cattle.io.clusterscanprofile.spec.js +30 -0
  247. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +112 -5
  248. package/models/catalog.cattle.io.app.js +1 -1
  249. package/models/chart.js +28 -14
  250. package/models/cluster/node.js +13 -6
  251. package/models/cluster.x-k8s.io.machine.js +10 -20
  252. package/models/cluster.x-k8s.io.machinedeployment.js +5 -1
  253. package/models/compliance.cattle.io.clusterscanprofile.js +1 -1
  254. package/models/management.cattle.io.authconfig.js +1 -0
  255. package/models/management.cattle.io.cluster.js +21 -3
  256. package/models/management.cattle.io.kontainerdriver.js +1 -0
  257. package/models/provisioning.cattle.io.cluster.js +249 -33
  258. package/package.json +6 -5
  259. package/pages/auth/login.vue +43 -4
  260. package/pages/auth/verify.vue +1 -1
  261. package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +3 -2
  262. package/pages/c/_cluster/apps/charts/__tests__/chart.test.ts +135 -0
  263. package/pages/c/_cluster/apps/charts/chart.vue +35 -17
  264. package/pages/c/_cluster/apps/charts/index.vue +11 -13
  265. package/pages/c/_cluster/apps/charts/install.vue +1 -1
  266. package/pages/c/_cluster/explorer/EventsTable.vue +89 -3
  267. package/pages/c/_cluster/explorer/index.vue +8 -6
  268. package/pages/c/_cluster/explorer/tools/index.vue +3 -3
  269. package/pages/c/_cluster/manager/hostedprovider/index.vue +220 -0
  270. package/pages/c/_cluster/settings/brand.vue +1 -1
  271. package/pages/c/_cluster/settings/performance.vue +12 -25
  272. package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +7 -0
  273. package/pages/c/_cluster/uiplugins/catalogs.vue +147 -0
  274. package/pages/c/_cluster/uiplugins/index.vue +126 -184
  275. package/pages/home.vue +327 -16
  276. package/pkg/dynamic-importer.lib.js +4 -0
  277. package/plugins/axios.js +2 -1
  278. package/plugins/dashboard-client-init.js +3 -0
  279. package/plugins/dashboard-store/actions.js +1 -1
  280. package/plugins/dashboard-store/getters.js +18 -1
  281. package/plugins/dashboard-store/resource-class.js +21 -6
  282. package/plugins/dynamic-content.js +13 -0
  283. package/plugins/i18n.js +8 -0
  284. package/plugins/steve/__tests__/steve-pagination-utils.test.ts +333 -0
  285. package/plugins/steve/steve-pagination-utils.ts +41 -22
  286. package/plugins/steve/subscribe.js +17 -9
  287. package/plugins/subscribe-events.ts +4 -2
  288. package/rancher-components/Form/Checkbox/Checkbox.vue +1 -1
  289. package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.vue +6 -34
  290. package/rancher-components/Pill/RcStatusBadge/index.ts +0 -1
  291. package/rancher-components/Pill/RcStatusBadge/types.ts +1 -1
  292. package/rancher-components/Pill/RcStatusIndicator/RcStatusIndicator.vue +5 -28
  293. package/rancher-components/Pill/RcStatusIndicator/types.ts +2 -1
  294. package/rancher-components/Pill/types.ts +0 -1
  295. package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -0
  296. package/rancher-components/RcDropdown/RcDropdownItemSelect.vue +5 -1
  297. package/rancher-components/RcIcon/RcIcon.test.ts +51 -0
  298. package/rancher-components/RcIcon/RcIcon.vue +46 -0
  299. package/rancher-components/RcIcon/index.ts +1 -0
  300. package/rancher-components/RcIcon/types.ts +160 -0
  301. package/rancher-components/utils/status.test.ts +67 -0
  302. package/rancher-components/utils/status.ts +77 -0
  303. package/scripts/extension/publish +1 -1
  304. package/scripts/typegen.sh +1 -0
  305. package/store/action-menu.js +8 -0
  306. package/store/auth.js +11 -6
  307. package/store/aws.js +8 -6
  308. package/store/catalog.js +6 -0
  309. package/store/features.js +2 -0
  310. package/store/index.js +45 -20
  311. package/store/notifications.ts +51 -4
  312. package/store/plugins.js +7 -3
  313. package/store/prefs.js +12 -6
  314. package/store/type-map.js +3 -3
  315. package/store/ui-context.ts +86 -0
  316. package/store/wm.ts +244 -0
  317. package/types/kube/kube-api.ts +2 -1
  318. package/types/notifications/index.ts +27 -3
  319. package/types/rancher/index.d.ts +1 -0
  320. package/types/resources/settings.d.ts +29 -7
  321. package/types/shell/index.d.ts +138 -4
  322. package/types/store/__tests__/pagination.types.spec.ts +137 -0
  323. package/types/store/pagination.types.ts +157 -9
  324. package/types/store/subscribe-events.types.ts +8 -1
  325. package/types/store/subscribe.types.ts +1 -0
  326. package/types/window-manager.ts +24 -0
  327. package/utils/__tests__/cluster.test.ts +379 -1
  328. package/utils/__tests__/object.test.ts +19 -0
  329. package/utils/__tests__/provider.test.ts +98 -0
  330. package/utils/__tests__/selector-typed.test.ts +263 -0
  331. package/utils/__tests__/version.test.ts +19 -1
  332. package/utils/autoscaler-utils.ts +7 -0
  333. package/utils/back-off.ts +3 -3
  334. package/utils/brand.ts +29 -0
  335. package/utils/chart.js +18 -0
  336. package/utils/cluster.js +157 -3
  337. package/utils/color.js +1 -1
  338. package/utils/dynamic-content/__tests__/announcement.test.ts +498 -0
  339. package/utils/dynamic-content/__tests__/config.test.ts +187 -0
  340. package/utils/dynamic-content/__tests__/index.test.ts +390 -0
  341. package/utils/dynamic-content/__tests__/info.test.ts +275 -0
  342. package/utils/dynamic-content/__tests__/new-release.test.ts +216 -0
  343. package/utils/dynamic-content/__tests__/support-notice.test.ts +262 -0
  344. package/utils/dynamic-content/__tests__/util.test.ts +235 -0
  345. package/utils/dynamic-content/announcement.ts +142 -0
  346. package/utils/dynamic-content/config.ts +55 -0
  347. package/utils/dynamic-content/example.json +40 -0
  348. package/utils/dynamic-content/index.ts +277 -0
  349. package/utils/dynamic-content/info.ts +261 -0
  350. package/utils/dynamic-content/new-release.ts +126 -0
  351. package/utils/dynamic-content/notification-handler.ts +48 -0
  352. package/utils/dynamic-content/support-notice.ts +169 -0
  353. package/utils/dynamic-content/types.d.ts +153 -0
  354. package/utils/dynamic-content/util.ts +122 -0
  355. package/utils/dynamic-importer.js +2 -2
  356. package/utils/favicon.js +4 -4
  357. package/utils/inactivity.ts +104 -0
  358. package/utils/object.js +20 -2
  359. package/utils/pagination-utils.ts +19 -4
  360. package/utils/pagination-wrapper.ts +12 -8
  361. package/utils/provider.ts +14 -0
  362. package/utils/release-notes.ts +1 -1
  363. package/utils/scroll.js +7 -0
  364. package/utils/selector-typed.ts +6 -2
  365. package/utils/settings.ts +15 -0
  366. package/utils/validators/machine-pool.ts +13 -3
  367. package/utils/version.js +15 -0
  368. package/assets/images/icons/document.svg +0 -3
  369. package/plugins/nuxt-client-init.js +0 -3
  370. package/store/wm.js +0 -95
  371. /package/components/{nav/WindowManager → Window}/ChartReadme.vue +0 -0
  372. /package/components/{nav/WindowManager → Window}/ContainerShell.vue +0 -0
  373. /package/components/{nav/WindowManager → Window}/KubectlShell.vue +0 -0
  374. /package/components/{nav/WindowManager → Window}/MachineSsh.vue +0 -0
  375. /package/components/{nav/WindowManager → Window}/Window.vue +0 -0
@@ -0,0 +1,51 @@
1
+ import { shallowMount } from '@vue/test-utils';
2
+ import RcIcon from './RcIcon.vue';
3
+
4
+ describe('rcIcon.vue', () => {
5
+ it('renders with the correct type class and size classes', () => {
6
+ const wrapper = shallowMount(RcIcon, {
7
+ props: {
8
+ size: 'medium',
9
+ type: 'search',
10
+ },
11
+ });
12
+
13
+ expect(wrapper.classes()).toContain('icon-search');
14
+ expect(wrapper.classes()).toContain('medium');
15
+ });
16
+
17
+ it('sets aria-hidden to true by default', () => {
18
+ const wrapper = shallowMount(RcIcon, {
19
+ props: {
20
+ size: 'medium',
21
+ type: 'search',
22
+ },
23
+ });
24
+
25
+ expect(wrapper.attributes('aria-hidden')).toBe('true');
26
+ });
27
+
28
+ it('sets aria-hidden to false when explicitly provided', () => {
29
+ const wrapper = shallowMount(RcIcon, {
30
+ props: {
31
+ size: 'medium',
32
+ type: 'search',
33
+ ariaHidden: false,
34
+ },
35
+ });
36
+
37
+ expect(wrapper.attributes('aria-hidden')).toBe('false');
38
+ });
39
+
40
+ it('sets aria-hidden to true when explicitly provided', () => {
41
+ const wrapper = shallowMount(RcIcon, {
42
+ props: {
43
+ size: 'medium',
44
+ type: 'search',
45
+ ariaHidden: true,
46
+ },
47
+ });
48
+
49
+ expect(wrapper.attributes('aria-hidden')).toBe('true');
50
+ });
51
+ });
@@ -0,0 +1,46 @@
1
+ <script setup lang="ts">
2
+ import { RcIconProps, RcIconType, RcIconSize } from '@components/RcIcon/types';
3
+ import { computed } from 'vue';
4
+ import { useStatusColors } from '@components/utils/status';
5
+ const props = withDefaults(defineProps<RcIconProps>(), { size: 'small', ariaHidden: true });
6
+ const fontSize = computed(() => {
7
+ return RcIconSize[props.size];
8
+ });
9
+
10
+ const iconClass = computed(() => {
11
+ return RcIconType[props.type];
12
+ });
13
+
14
+ const status = computed(() => {
15
+ if (props.status && props.status !== 'inherit') {
16
+ return props.status;
17
+ }
18
+
19
+ return 'none';
20
+ });
21
+
22
+ const { textColor } = useStatusColors({ status: status.value }, 'outlined');
23
+
24
+ const color = computed(() => {
25
+ if (props.status === 'inherit') {
26
+ return 'inherit';
27
+ }
28
+
29
+ return textColor.value;
30
+ });
31
+ </script>
32
+
33
+ <template>
34
+ <i
35
+ class="rc-icon"
36
+ :class="{[props.size]: true, [iconClass]: true}"
37
+ :aria-hidden="props.ariaHidden"
38
+ />
39
+ </template>
40
+
41
+ <style lang="scss" scoped>
42
+ .rc-icon {
43
+ font-size: v-bind(fontSize);
44
+ color: v-bind(color);
45
+ }
46
+ </style>
@@ -0,0 +1 @@
1
+ export { default as RcIcon } from './RcIcon.vue';
@@ -0,0 +1,160 @@
1
+ import { Status } from '../utils/status';
2
+
3
+ export const RcIconType = {
4
+ actions: 'icon-actions',
5
+ ai: 'icon-ai',
6
+ 'alert-alt': 'icon-alert-alt',
7
+ alert: 'icon-alert',
8
+ anchor: 'icon-anchor',
9
+ apple: 'icon-apple',
10
+ application: 'icon-application',
11
+ apps: 'icon-apps',
12
+ archive: 'icon-archive',
13
+ 'backup-restore': 'icon-backup-restore',
14
+ backup: 'icon-backup',
15
+ 'brush-icon': 'icon-brush-icon',
16
+ 'category-alt': 'icon-category-alt',
17
+ checkmark: 'icon-checkmark',
18
+ 'chevron-beginning': 'icon-chevron-beginning',
19
+ 'chevron-down': 'icon-chevron-down',
20
+ 'chevron-end': 'icon-chevron-end',
21
+ 'chevron-left': 'icon-chevron-left',
22
+ 'chevron-right': 'icon-chevron-right',
23
+ 'chevron-up': 'icon-chevron-up',
24
+ 'circle-plus': 'icon-circle-plus',
25
+ cis: 'icon-cis',
26
+ close: 'icon-close',
27
+ 'cluster-management': 'icon-cluster-management',
28
+ cluster: 'icon-cluster',
29
+ code: 'icon-code',
30
+ comment: 'icon-comment',
31
+ commit: 'icon-commit',
32
+ compass: 'icon-compass',
33
+ 'confirmation-alt': 'icon-confirmation-alt',
34
+ copy: 'icon-copy',
35
+ dashboard: 'icon-dashboard',
36
+ dock: 'icon-dock',
37
+ docker: 'icon-docker',
38
+ document: 'icon-document',
39
+ 'dot-half': 'icon-dot-half',
40
+ 'dot-open': 'icon-dot-open',
41
+ dot: 'icon-dot',
42
+ 'downgrade-alt': 'icon-downgrade-alt',
43
+ download: 'icon-download',
44
+ edit: 'icon-edit',
45
+ elemental: 'icon-elemental',
46
+ endpoints_connected: 'icon-endpoints_connected',
47
+ endpoints_disconnected: 'icon-endpoints_disconnected',
48
+ epinio: 'icon-epinio',
49
+ error: 'icon-error',
50
+ explore: 'icon-explore',
51
+ extension: 'icon-extension',
52
+ 'external-link': 'icon-external-link',
53
+ file: 'icon-file',
54
+ filter_alt: 'icon-filter_alt',
55
+ flask: 'icon-flask',
56
+ fleet: 'icon-fleet',
57
+ folder: 'icon-folder',
58
+ fork: 'icon-fork',
59
+ gatekeeper: 'icon-gatekeeper',
60
+ gear: 'icon-gear',
61
+ gemini: 'icon-gemini',
62
+ git: 'icon-git',
63
+ github: 'icon-github',
64
+ gitlab: 'icon-gitlab',
65
+ globe: 'icon-globe',
66
+ groups: 'icon-groups',
67
+ harvester: 'icon-harvester',
68
+ helm: 'icon-helm',
69
+ hide: 'icon-hide',
70
+ history: 'icon-history',
71
+ home: 'icon-home',
72
+ 'info-circle': 'icon-info-circle',
73
+ info: 'icon-info',
74
+ init_container: 'icon-init_container',
75
+ istio: 'icon-istio',
76
+ keyboard: 'icon-keyboard',
77
+ keyboard_tab: 'icon-keyboard_tab',
78
+ linux: 'icon-linux',
79
+ 'list-flat': 'icon-list-flat',
80
+ 'list-grouped': 'icon-list-grouped',
81
+ lock: 'icon-lock',
82
+ logging: 'icon-logging',
83
+ longhorn: 'icon-longhorn',
84
+ marketplace: 'icon-marketplace',
85
+ menu: 'icon-menu',
86
+ minus: 'icon-minus',
87
+ monitoring: 'icon-monitoring',
88
+ more: 'icon-more',
89
+ namespace: 'icon-namespace',
90
+ notifier: 'icon-notifier',
91
+ 'notify-announcement': 'icon-notify-announcement',
92
+ 'notify-bell': 'icon-notify-bell',
93
+ 'notify-busy': 'icon-notify-busy',
94
+ 'notify-error': 'icon-notify-error',
95
+ 'notify-info': 'icon-notify-info',
96
+ 'notify-tick': 'icon-notify-tick',
97
+ 'notify-warning': 'icon-notify-warning',
98
+ ollama: 'icon-ollama',
99
+ openai: 'icon-openai',
100
+ 'os-management': 'icon-os-management',
101
+ pause: 'icon-pause',
102
+ 'pin-outlined': 'icon-pin-outlined',
103
+ pin: 'icon-pin',
104
+ pipeline: 'icon-pipeline',
105
+ play: 'icon-play',
106
+ plus: 'icon-plus',
107
+ pod_security: 'icon-pod_security',
108
+ print: 'icon-print',
109
+ 'question-mark': 'icon-question-mark',
110
+ 'quick-action': 'icon-quick-action',
111
+ 'rancher-desktop': 'icon-rancher-desktop',
112
+ 'rancher-observability': 'icon-rancher-observability',
113
+ 'refresh-alt': 'icon-refresh-alt',
114
+ refresh: 'icon-refresh',
115
+ 'repository-alt': 'icon-repository-alt',
116
+ repository: 'icon-repository',
117
+ rio: 'icon-rio',
118
+ 'role-binding': 'icon-role-binding',
119
+ search: 'icon-search',
120
+ send: 'icon-send',
121
+ service: 'icon-service',
122
+ show: 'icon-show',
123
+ snapshot: 'icon-snapshot',
124
+ 'sort-down': 'icon-sort-down',
125
+ 'sort-up': 'icon-sort-up',
126
+ sort: 'icon-sort',
127
+ sources: 'icon-sources',
128
+ spinner: 'icon-spinner',
129
+ stackstate: 'icon-stackstate',
130
+ 'star-open': 'icon-star-open',
131
+ star: 'icon-star',
132
+ storage: 'icon-storage',
133
+ 'tag-alt': 'icon-tag-alt',
134
+ terminal: 'icon-terminal',
135
+ 'thinking-process': 'icon-thinking-process',
136
+ trash: 'icon-trash',
137
+ unlock: 'icon-unlock',
138
+ 'upgrade-alt': 'icon-upgrade-alt',
139
+ upload: 'icon-upload',
140
+ 'user-check': 'icon-user-check',
141
+ 'user-xmark': 'icon-user-xmark',
142
+ user: 'icon-user',
143
+ 'version-alt': 'icon-version-alt',
144
+ warning: 'icon-warning',
145
+ windows: 'icon-windows',
146
+ };
147
+
148
+ export const RcIconSize = {
149
+ large: '25px',
150
+ medium: '18px',
151
+ small: '14px',
152
+ none: undefined
153
+ };
154
+
155
+ export interface RcIconProps {
156
+ size: keyof typeof RcIconSize;
157
+ type: keyof typeof RcIconType;
158
+ ariaHidden?: boolean;
159
+ status?: Status | 'inherit';
160
+ }
@@ -0,0 +1,67 @@
1
+
2
+ import { reactive } from 'vue';
3
+ import { wrapIfVar, useStatusColors, Status } from './status';
4
+
5
+ describe('utils: status', () => {
6
+ describe('wrapIfVar', () => {
7
+ it('should wrap a CSS variable', () => {
8
+ const result = wrapIfVar('--rc-info');
9
+
10
+ expect(result).toBe('var(--rc-info)');
11
+ });
12
+
13
+ it('should not wrap a normal color', () => {
14
+ const result = wrapIfVar('red');
15
+
16
+ expect(result).toBe('red');
17
+ });
18
+ });
19
+
20
+ describe('useStatusColors', () => {
21
+ it.each([
22
+ 'info',
23
+ 'success',
24
+ 'warning',
25
+ 'error',
26
+ 'unknown',
27
+ 'none'
28
+ ])('solid: should return the correct colors for status: %p', (status: Status) => {
29
+ const props = reactive({ status });
30
+ const {
31
+ borderColor,
32
+ backgroundColor,
33
+ textColor
34
+ } = useStatusColors(props, 'solid');
35
+
36
+ expect(borderColor.value).toBe(`var(--rc-${ status })`);
37
+ if (status !== 'none') {
38
+ // eslint-disable-next-line jest/no-conditional-expect
39
+ expect(backgroundColor.value).toBe(`var(--rc-${ status })`);
40
+ }
41
+ expect(textColor.value).toBe(`var(--rc-${ status }-secondary)`);
42
+ });
43
+
44
+ it.each([
45
+ 'info',
46
+ 'success',
47
+ 'warning',
48
+ 'error',
49
+ 'unknown',
50
+ 'none'
51
+ ])('outlined: should return the correct colors for status: %p', (status: Status) => {
52
+ const props = reactive({ status });
53
+ const {
54
+ borderColor,
55
+ backgroundColor,
56
+ textColor
57
+ } = useStatusColors(props, 'outlined');
58
+
59
+ expect(borderColor.value).toBe(`var(--rc-${ status }-secondary)`);
60
+ if (status !== 'none') {
61
+ // eslint-disable-next-line jest/no-conditional-expect
62
+ expect(backgroundColor.value).toBe(`var(--rc-${ status }-secondary)`);
63
+ }
64
+ expect(textColor.value).toBe(`var(--rc-${ status })`);
65
+ });
66
+ });
67
+ });
@@ -0,0 +1,77 @@
1
+ import { computed } from 'vue';
2
+
3
+ export const StatusDefinitions = {
4
+ info: {
5
+ primary: '--rc-info',
6
+ secondary: '--rc-info-secondary'
7
+ },
8
+ success: {
9
+ primary: '--rc-success',
10
+ secondary: '--rc-success-secondary'
11
+ },
12
+ warning: {
13
+ primary: '--rc-warning',
14
+ secondary: '--rc-warning-secondary'
15
+ },
16
+ error: {
17
+ primary: '--rc-error',
18
+ secondary: '--rc-error-secondary'
19
+ },
20
+ unknown: {
21
+ primary: '--rc-unknown',
22
+ secondary: '--rc-unknown-secondary'
23
+ },
24
+ none: {
25
+ primary: '--rc-none',
26
+ secondary: '--rc-none-secondary'
27
+ },
28
+ };
29
+
30
+ export type Status = keyof typeof StatusDefinitions;
31
+ export type StatusObject = { status: Status };
32
+ export type Style = 'solid' | 'outlined';
33
+
34
+ export function wrapIfVar(colorVar: string) {
35
+ return colorVar.startsWith('--') ? `var(${ colorVar })` : colorVar;
36
+ }
37
+
38
+ /**
39
+ * A composable to make it easier to use status colors in multiple components
40
+ *
41
+ * @param propsWithStatus The props which contain a `status: Status` property. Ideally I'd prefer to just pass status but doing so either forces the consumer to wrap the values in a Ref or this code is no longer reactive.
42
+ * @param style {@link Style} Will the block of code being using the solid or outlined styling
43
+ * @returns An object containing the relevant style colors
44
+ */
45
+ export function useStatusColors(propsWithStatus: StatusObject, style: Style) {
46
+ const statusColors = computed(() => {
47
+ return StatusDefinitions[propsWithStatus.status];
48
+ });
49
+ const isOutlined = style === 'outlined';
50
+
51
+ const borderColor = computed(() => {
52
+ const colorVar = isOutlined ? statusColors.value.secondary : statusColors.value.primary;
53
+
54
+ return wrapIfVar(colorVar);
55
+ });
56
+
57
+ const backgroundColor = computed(() => {
58
+ if (propsWithStatus.status === 'none') {
59
+ return 'none';
60
+ }
61
+ const colorVar = isOutlined ? statusColors.value.secondary : statusColors.value.primary;
62
+
63
+ return wrapIfVar(colorVar);
64
+ });
65
+
66
+ const textColor = computed(() => {
67
+ const colorVar = isOutlined ? statusColors.value.primary : statusColors.value.secondary;
68
+
69
+ return wrapIfVar(colorVar);
70
+ });
71
+
72
+ return {
73
+ borderColor,
74
+ backgroundColor,
75
+ textColor
76
+ };
77
+ }
@@ -164,7 +164,7 @@ if [ "${HAVE_COMMANDS}" == "false" ]; then
164
164
  fi
165
165
 
166
166
  # --------------------------------------------------------------------------------
167
- # Only do conatiner args checks if not GitHub publish
167
+ # Only do container args checks if not GitHub publish
168
168
  # --------------------------------------------------------------------------------
169
169
  if [ "${GITHUB_BUILD}" == "false" ]; then
170
170
  BASE_EXT=$(jq -r .name ${BASE_DIR}/package.json)
@@ -29,6 +29,7 @@ ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/prefs.js --declaration --al
29
29
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/plugins.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/store > /dev/null
30
30
 
31
31
  # # plugins
32
+ ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/i18n.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/ > /dev/null
32
33
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/normalize.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
33
34
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/resource-class.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
34
35
  ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/classify.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
@@ -111,6 +111,14 @@ export const mutations = {
111
111
  state.modalData = data;
112
112
  },
113
113
 
114
+ updateModalData(state, data) {
115
+ state.modalData = state.modalData || {};
116
+
117
+ data.forEach(({ key, value }) => {
118
+ state.modalData[key] = value;
119
+ });
120
+ },
121
+
114
122
  clearCallbackData(state) {
115
123
  state.performCallbackData = undefined;
116
124
  },
package/store/auth.js CHANGED
@@ -17,6 +17,7 @@ const SLO_TOKENS_ENDPOINT_LOGOUT_RES_BASETYPE = ['authConfigLogoutOutput'];
17
17
 
18
18
  export const BASE_SCOPES = {
19
19
  github: ['read:org'],
20
+ githubapp: ['read:org'],
20
21
  googleoauth: ['openid profile email'],
21
22
  azuread: [],
22
23
  keycloakoidc: ['openid profile email'],
@@ -374,11 +375,11 @@ export const actions = {
374
375
  commit('cookies/remove', { key: KEY }, { root: true });
375
376
  },
376
377
 
377
- uiLogout({ commit, dispatch }) {
378
+ uiLogout({ commit, dispatch }, options = {}) {
378
379
  removeEmberPage();
379
380
 
380
381
  commit('loggedOut');
381
- dispatch('onLogout', null, { root: true });
382
+ dispatch('onLogout', options, { root: true });
382
383
 
383
384
  dispatch('uiplugins/setReady', false, { root: true });
384
385
  },
@@ -403,18 +404,18 @@ export const actions = {
403
404
  // Unload plugins - we will load again on login
404
405
  await rootState.$plugin.logout();
405
406
 
406
- let logoutAction = 'logout';
407
+ let logoutAction = '';
407
408
  const data = {};
408
409
 
409
410
  // SLO - Single-sign logout - will logout auth provider from all places where it's logged in
410
411
  if (options.slo) {
411
- logoutAction = 'logoutAll';
412
+ logoutAction = '?logoutAll';
412
413
  data.finalRedirectUrl = returnTo({ isSlo: true }, this);
413
414
  }
414
415
 
415
416
  try {
416
417
  const res = await dispatch('rancher/request', {
417
- url: `/v3/tokens?action=${ logoutAction }`,
418
+ url: `/v1/logout${ logoutAction }`,
418
419
  method: 'post',
419
420
  data,
420
421
  headers: { 'Content-Type': 'application/json' },
@@ -430,6 +431,10 @@ export const actions = {
430
431
  } catch (e) {
431
432
  }
432
433
 
433
- dispatch('uiLogout');
434
+ const propagateOptions = {};
435
+
436
+ propagateOptions.sessionIdle = options.sessionIdle;
437
+
438
+ dispatch('uiLogout', propagateOptions);
434
439
  }
435
440
  };
package/store/aws.js CHANGED
@@ -213,18 +213,20 @@ export const actions = {
213
213
 
214
214
  list.push({
215
215
  apiName,
216
- currentGeneration: row.CurrentGeneration || false,
216
+ currentGeneration: row.CurrentGeneration || false,
217
217
  groupLabel,
218
218
  instanceClass,
219
- memoryBytes: row.MemoryInfo.SizeInMiB * 1024 * 1024,
220
- supportedUsageClasses: row.SupportedUsageClasses,
221
- label: rootGetters['i18n/t']('cluster.machineConfig.aws.sizeLabel', {
219
+ memoryBytes: row.MemoryInfo.SizeInMiB * 1024 * 1024,
220
+ supportedUsageClasses: row.SupportedUsageClasses,
221
+ supportedArchitectures: row.ProcessorInfo.SupportedArchitectures || [],
222
+ label: rootGetters['i18n/t']('cluster.machineConfig.aws.sizeLabel', {
222
223
  apiName,
223
- cpu: row.VCpuInfo.DefaultVCpus,
224
- memory: row.MemoryInfo.SizeInMiB / 1024,
224
+ cpu: row.VCpuInfo.DefaultVCpus,
225
+ memory: row.MemoryInfo.SizeInMiB / 1024,
225
226
  storageSize,
226
227
  storageUnit,
227
228
  storageType,
229
+ architecture: (row.ProcessorInfo.SupportedArchitectures || []).map((a) => (a === 'arm64' ? 'ARM' : a)).join(', ')
228
230
  }),
229
231
  });
230
232
  }
package/store/catalog.js CHANGED
@@ -504,11 +504,16 @@ function addChart(ctx, map, chart, repo) {
504
504
 
505
505
  if ( !obj ) {
506
506
  if ( ctx ) { }
507
+
508
+ const primeOnly = chart.annotations?.[CATALOG_ANNOTATIONS.PRIME_ONLY] === 'true';
507
509
  const experimental = !!chart.annotations?.[CATALOG_ANNOTATIONS.EXPERIMENTAL];
508
510
  const windowsIncompatible = !(chart.annotations?.[CATALOG_ANNOTATIONS.PERMITTED_OS] || '').includes('windows');
509
511
  const deploysOnWindows = (chart.annotations?.[CATALOG_ANNOTATIONS.DEPLOYED_OS] || '').includes('windows');
510
512
  const tags = [];
511
513
 
514
+ if (primeOnly) {
515
+ tags.push(ctx.rootGetters['i18n/withFallback']('generic.primeOnly'));
516
+ }
512
517
  if (experimental) {
513
518
  tags.push(ctx.rootGetters['i18n/withFallback']('generic.experimental'));
514
519
  }
@@ -542,6 +547,7 @@ function addChart(ctx, map, chart, repo) {
542
547
  keywords: chart.keywords || [],
543
548
  categories: filterCategories(chart.keywords),
544
549
  deprecated: !!chart.deprecated,
550
+ primeOnly,
545
551
  experimental,
546
552
  hidden: !!chart.annotations?.[CATALOG_ANNOTATIONS.HIDDEN],
547
553
  targetNamespace: chart.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE],
package/store/features.js CHANGED
@@ -37,6 +37,8 @@ export const STEVE_CACHE = create('ui-sql-cache', false);
37
37
  export const UIEXTENSION = create('uiextension', true);
38
38
  export const PROVISIONING_PRE_BOOTSTRAP = create('provisioningprebootstrap', false);
39
39
  export const SCHEDULING_CUSTOMIZATION = create(SCHEDULING_CUSTOMIZATION_FEATURE, false);
40
+ export const SCC = create('rancher-scc-registration-extension', true);
41
+ export const AUTOSCALER = create('cluster-autoscaling', false);
40
42
 
41
43
  // Not currently used.. no point defining ones we don't use
42
44
  // export const EMBEDDED_CLUSTER_API = create('embedded-cluster-api', true);