@rancher/shell 2.0.1 → 3.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/base/_variables.scss +1 -0
- package/assets/styles/global/_labeled-input.scss +22 -11
- package/assets/styles/global/_layout.scss +4 -4
- package/assets/styles/global/_select.scss +1 -1
- package/assets/styles/global/_tooltip.scss +39 -72
- package/assets/translations/en-us.yaml +26 -5
- package/chart/__tests__/S3.test.ts +21 -14
- package/chart/example.vue +1 -1
- package/chart/gatekeeper.vue +4 -4
- package/chart/istio.vue +11 -11
- package/chart/logging/index.vue +8 -8
- package/chart/monitoring/ClusterSelector.vue +13 -13
- package/chart/monitoring/alerting/index.vue +6 -6
- package/chart/monitoring/grafana/index.vue +14 -14
- package/chart/monitoring/index.vue +122 -108
- package/chart/monitoring/prometheus/index.vue +18 -18
- package/chart/rancher-backup/S3.vue +11 -11
- package/chart/rancher-backup/index.vue +68 -60
- package/cloud-credential/__tests__/azure.test.ts +7 -17
- package/cloud-credential/__tests__/harvester.test.ts +2 -2
- package/cloud-credential/aws.vue +3 -3
- package/cloud-credential/azure.vue +4 -4
- package/cloud-credential/digitalocean.vue +1 -1
- package/cloud-credential/gcp.vue +1 -1
- package/cloud-credential/generic.vue +1 -1
- package/cloud-credential/harvester.vue +1 -1
- package/cloud-credential/linode.vue +1 -1
- package/cloud-credential/pnap.vue +2 -2
- package/cloud-credential/s3.vue +8 -8
- package/cloud-credential/vmwarevsphere.vue +4 -4
- package/components/ActionDropdown.vue +12 -16
- package/components/ActionMenu.vue +2 -2
- package/components/AlertTable.vue +1 -1
- package/components/AppModal.vue +20 -9
- package/components/AssignTo.vue +38 -37
- package/components/AsyncButton.vue +4 -7
- package/components/ButtonDropdown.vue +22 -20
- package/components/ButtonGroup.vue +1 -1
- package/components/Carousel.vue +1 -1
- package/components/Certificates.vue +1 -1
- package/components/ChartReadme.vue +7 -7
- package/components/CodeMirror.vue +2 -2
- package/components/CommunityLinks.vue +2 -2
- package/components/ConsumptionGauge.vue +1 -1
- package/components/ContainerResourceLimit.vue +11 -11
- package/components/CountGauge.vue +1 -1
- package/components/CreateDriver.vue +4 -4
- package/components/CruResource.vue +36 -20
- package/components/DashboardMetrics.vue +3 -3
- package/components/DashboardOptions.vue +3 -3
- package/components/DetailTop.vue +3 -3
- package/components/DisableAuthProviderModal.vue +7 -8
- package/components/EmberPage.vue +1 -1
- package/components/EtcdInfoBanner.vue +1 -1
- package/components/ExplorerMembers.vue +8 -9
- package/components/ExplorerProjectsNamespaces.vue +6 -7
- package/components/FileDiff.vue +1 -1
- package/components/FixedBanner.vue +1 -0
- package/components/GlobalRoleBindings.vue +5 -6
- package/components/GradientBox.vue +1 -2
- package/components/GrafanaDashboard.vue +7 -7
- package/components/GrowlManager.vue +1 -1
- package/components/HarvesterServiceAddOnConfig.vue +2 -2
- package/components/IconOrSvg.vue +1 -2
- package/components/Import.vue +4 -3
- package/components/Inactivity.vue +2 -2
- package/components/IndentedPanel.vue +0 -1
- package/components/InputOrDisplay.vue +21 -32
- package/components/KeyValueView.vue +4 -3
- package/components/LandingPagePreference.vue +3 -2
- package/components/LazyImage.vue +1 -1
- package/components/Loading.vue +1 -1
- package/components/LocaleSelector.vue +4 -4
- package/components/Markdown.vue +1 -1
- package/components/ModalWithCard.vue +1 -4
- package/components/MoveModal.vue +10 -11
- package/components/PercentageBar.vue +7 -7
- package/components/PodSecurityAdmission.vue +13 -13
- package/components/PromptChangePassword.vue +9 -9
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +35 -38
- package/components/PromptRestore.vue +68 -69
- package/components/Questions/Array.vue +3 -4
- package/components/Questions/Boolean.vue +1 -1
- package/components/Questions/CloudCredential.vue +1 -1
- package/components/Questions/Enum.vue +1 -1
- package/components/Questions/Float.vue +1 -1
- package/components/Questions/Int.vue +1 -1
- package/components/Questions/Question.js +1 -1
- package/components/Questions/QuestionMap.vue +3 -4
- package/components/Questions/Radio.vue +1 -1
- package/components/Questions/Reference.vue +2 -2
- package/components/Questions/String.vue +1 -1
- package/components/Questions/Yaml.vue +1 -1
- package/components/Questions/__tests__/Boolean.test.ts +24 -12
- package/components/Questions/__tests__/Float.test.ts +24 -12
- package/components/Questions/__tests__/Int.test.ts +24 -12
- package/components/Questions/__tests__/String.test.ts +24 -12
- package/components/Questions/__tests__/Yaml.test.ts +25 -13
- package/components/Questions/__tests__/utils/questions-defaults.ts +2 -2
- package/components/Questions/index.vue +10 -10
- package/components/Random.vue +1 -1
- package/components/ResourceDetail/Masthead.vue +7 -2
- package/components/ResourceDetail/index.vue +6 -3
- package/components/ResourceList/Masthead.vue +4 -0
- package/components/ResourceList/index.vue +10 -4
- package/components/ResourceSummary.vue +1 -1
- package/components/ResourceTable.vue +4 -5
- package/components/ResourceYaml.vue +1 -2
- package/components/RoleBindings.vue +3 -3
- package/components/SideNav.vue +10 -8
- package/components/SimpleBox.vue +0 -1
- package/components/SortableTable/THead.vue +5 -5
- package/components/SortableTable/index.vue +21 -20
- package/components/SortableTable/sortable-config.ts +4 -0
- package/components/StatusTable.vue +1 -1
- package/components/TabTitle.vue +3 -9
- package/components/Tabbed/Tab.vue +1 -1
- package/components/Tabbed/index.vue +2 -4
- package/components/Wizard.vue +8 -3
- package/components/YamlEditor.vue +4 -4
- package/components/__tests__/AppModal.test.ts +33 -25
- package/components/__tests__/ApplicationCard.test.ts +1 -1
- package/components/__tests__/AsyncButton.test.ts +42 -34
- package/components/__tests__/BackLink.test.ts +3 -3
- package/components/__tests__/ButtonGroup.test.ts +5 -5
- package/components/__tests__/Carousel.test.ts +2 -2
- package/components/__tests__/Certificates.test.ts +10 -8
- package/components/__tests__/ClusterBadge.test.ts +2 -2
- package/components/__tests__/CodeMirror.test.ts +29 -23
- package/components/__tests__/Collapse.test.ts +3 -3
- package/components/__tests__/CollapsibleCard.test.ts +6 -6
- package/components/__tests__/ConsumptionGauge.test.ts +5 -5
- package/components/__tests__/CruResource.test.ts +67 -56
- package/components/__tests__/EtcdInfoBanner.test.ts +11 -9
- package/components/__tests__/FixedBanner.test.ts +8 -8
- package/components/__tests__/GrowlManager.test.ts +24 -25
- package/components/__tests__/NamespaceFilter.test.ts +49 -32
- package/components/__tests__/PercentageBar.test.ts +10 -10
- package/components/__tests__/PodSecurityAdmission.test.ts +80 -38
- package/components/__tests__/ProjectRow.test.ts +1 -5
- package/components/__tests__/PromptRestore.test.ts +15 -18
- package/components/__tests__/TabTitle.test.ts +21 -14
- package/components/auth/AllowedPrincipals.vue +6 -7
- package/components/auth/RoleDetailEdit.vue +44 -46
- package/components/auth/SelectPrincipal.vue +3 -5
- package/components/auth/__tests__/RoleDetailEdit.test.ts +18 -14
- package/components/auth/login/ldap.vue +2 -2
- package/components/fleet/FleetClusters.vue +0 -1
- package/components/fleet/FleetRepos.vue +0 -1
- package/components/fleet/FleetStatus.vue +15 -16
- package/components/fleet/__tests__/FleetSummary.test.ts +8 -2
- package/components/form/ArrayList.vue +6 -7
- package/components/form/ArrayListGrouped.vue +20 -7
- package/components/form/ArrayListSelect.vue +4 -4
- package/components/form/BannerSettings.vue +10 -10
- package/components/form/ChangePassword.vue +9 -9
- package/components/form/ColorInput.vue +2 -2
- package/components/form/Command.vue +13 -15
- package/components/form/EnvVars.vue +7 -7
- package/components/form/FileImageSelector.vue +1 -1
- package/components/form/GitPicker.vue +7 -7
- package/components/form/HealthCheck.vue +4 -4
- package/components/form/HookOption.vue +13 -13
- package/components/form/InputWithSelect.vue +19 -13
- package/components/form/KeyValue.vue +13 -14
- package/components/form/LabeledSelect.vue +61 -46
- package/components/form/Labels.vue +3 -3
- package/components/form/LifecycleHooks.vue +5 -7
- package/components/form/MatchExpressions.vue +7 -7
- package/components/form/Members/ClusterMembershipEditor.vue +1 -2
- package/components/form/Members/ClusterPermissionsEditor.vue +9 -9
- package/components/form/Members/MembershipEditor.vue +4 -5
- package/components/form/Members/ProjectMembershipEditor.vue +1 -2
- package/components/form/NameNsDescription.vue +12 -13
- package/components/form/Networking.vue +17 -17
- package/components/form/NodeAffinity.vue +9 -10
- package/components/form/NodeScheduling.vue +7 -7
- package/components/form/NotificationSettings.vue +2 -2
- package/components/form/Password.vue +2 -2
- package/components/form/PodAffinity.vue +21 -23
- package/components/form/PodSecurity.vue +6 -6
- package/components/form/Ports.vue +5 -5
- package/components/form/Probe.vue +20 -20
- package/components/form/ProjectMemberEditor.vue +9 -9
- package/components/form/ResourceLabeledSelect.vue +11 -4
- package/components/form/ResourceQuota/Namespace.vue +3 -3
- package/components/form/ResourceQuota/NamespaceRow.vue +3 -3
- package/components/form/ResourceQuota/Project.vue +7 -6
- package/components/form/ResourceQuota/ProjectRow.vue +113 -114
- package/components/form/ResourceSelector.vue +3 -3
- package/components/form/ResourceTabs/index.vue +1 -1
- package/components/form/RuleSelector.vue +7 -6
- package/components/form/SecretSelector.vue +5 -6
- package/components/form/Security.vue +14 -14
- package/components/form/Select.vue +38 -12
- package/components/form/SelectOrCreateAuthSecret.vue +30 -27
- package/components/form/ServiceNameSelect.vue +8 -5
- package/components/form/ServicePorts.vue +4 -4
- package/components/form/ShellInput.vue +3 -3
- package/components/form/SimpleSecretSelector.vue +2 -2
- package/components/form/Taints.vue +5 -4
- package/components/form/Tolerations.vue +12 -12
- package/components/form/UnitInput.vue +1 -1
- package/components/form/ValueFromResource.vue +17 -17
- package/components/form/WorkloadPorts.vue +21 -21
- package/components/form/__tests__/ArrayList.test.ts +14 -11
- package/components/form/__tests__/ArrayListGrouped.test.ts +4 -4
- package/components/form/__tests__/BannerSettings.test.ts +6 -5
- package/components/form/__tests__/Command.test.ts +14 -13
- package/components/form/__tests__/Error.test.ts +5 -5
- package/components/form/__tests__/FileImageSelector.test.ts +5 -5
- package/components/form/__tests__/FileSelector.test.ts +9 -9
- package/components/form/__tests__/InputWithSelect.test.ts +42 -0
- package/components/form/__tests__/KeyValue.test.ts +28 -18
- package/components/form/__tests__/LabeledSelect.test.ts +9 -9
- package/components/form/__tests__/MatchExpressions.test.ts +10 -10
- package/components/form/__tests__/NameNsDescription.test.ts +28 -25
- package/components/form/__tests__/NodeAffinity.test.ts +4 -3
- package/components/form/__tests__/PodAffinity.test.ts +4 -3
- package/components/form/__tests__/Probe.test.ts +6 -6
- package/components/form/__tests__/Security.test.ts +6 -6
- package/components/form/__tests__/Select.test.ts +30 -0
- package/components/form/__tests__/ServiceNameSelect.test.ts +42 -0
- package/components/form/__tests__/Taints.test.ts +18 -17
- package/components/form/__tests__/UnitInput.test.ts +20 -24
- package/components/form/labeled-select-utils/labeled-select.utils.ts +1 -1
- package/components/formatter/AppSummaryGraph.vue +5 -5
- package/components/formatter/ClusterLink.vue +1 -1
- package/components/formatter/Endpoints.vue +4 -1
- package/components/formatter/FleetSummaryGraph.vue +5 -5
- package/components/formatter/ListLink.vue +1 -1
- package/components/formatter/ListLinkDetail.vue +2 -2
- package/components/formatter/LiveExpiryBadgeState.vue +18 -5
- package/components/formatter/LiveExpiryDate.vue +1 -1
- package/components/formatter/MachineSummaryGraph.vue +5 -5
- package/components/formatter/PercentageBar.vue +1 -1
- package/components/formatter/Principal.vue +0 -1
- package/components/formatter/PrincipalGroupBindings.vue +5 -5
- package/components/formatter/ReceiverIcons.vue +5 -3
- package/components/formatter/Scale.vue +5 -5
- package/components/formatter/ServiceTargets.vue +1 -1
- package/components/formatter/VirtualServiceGateways.vue +1 -1
- package/components/formatter/Weight.vue +3 -3
- package/components/formatter/WorkloadDetailEndpoints.vue +4 -1
- package/components/formatter/WorkloadHealthScale.vue +5 -6
- package/components/formatter/__tests__/Checked.test.ts +2 -2
- package/components/formatter/__tests__/ClusterLink.test.ts +3 -3
- package/components/formatter/__tests__/Date.test.ts +8 -8
- package/components/formatter/__tests__/LinkDetail.test.ts +10 -10
- package/components/formatter/__tests__/LiveDate.test.ts +21 -15
- package/components/formatter/__tests__/PodsUsage.test.ts +5 -5
- package/components/formatter/__tests__/Si.test.ts +3 -3
- package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +5 -5
- package/components/graph/LinePlot.vue +1 -2
- package/components/nav/Group.vue +11 -6
- package/components/nav/Header.vue +182 -131
- package/components/nav/Jump.vue +1 -1
- package/components/nav/NamespaceFilter.vue +2 -2
- package/components/nav/TopLevelMenu.vue +18 -17
- package/components/nav/Type.vue +7 -7
- package/components/nav/WindowManager/ContainerLogs.vue +53 -38
- package/components/nav/WindowManager/ContainerShell.vue +45 -39
- package/components/nav/WindowManager/Window.vue +1 -1
- package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +34 -23
- package/components/nav/WindowManager/__tests__/ContainerShell.test.ts +41 -33
- package/components/nav/WindowManager/index.vue +4 -4
- package/components/nav/WorkspaceSwitcher.vue +16 -16
- package/components/nav/__tests__/TopLevelMenu.test.ts +354 -308
- package/components/nav/__tests__/Type.test.ts +194 -111
- package/components/nuxt/nuxt-build-indicator.vue +79 -52
- package/components/nuxt/nuxt-child.js +24 -25
- package/components/nuxt/nuxt-error.vue +48 -18
- package/components/nuxt/nuxt-link.client.js +4 -3
- package/components/nuxt/nuxt-loading.vue +96 -85
- package/components/templates/blank.vue +0 -1
- package/components/templates/default.vue +0 -4
- package/components/templates/home.vue +4 -4
- package/components/templates/plain.vue +3 -2
- package/composables/useI18n.ts +1 -1
- package/composables/useLabeledFormElement.ts +12 -1
- package/composables/useUserRetentionValidation.test.ts +178 -0
- package/composables/useUserRetentionValidation.ts +201 -0
- package/config/__test__/home-links.test.ts +2 -7
- package/config/pagination-table-headers.js +5 -4
- package/config/query-params.js +1 -0
- package/config/roles.ts +34 -19
- package/config/router/index.js +10 -7
- package/config/router/navigation-guards/attempt-first-login.js +1 -1
- package/config/router/navigation-guards/authentication.js +2 -1
- package/{middleware/authenticated.js → config/router/navigation-guards/clusters.js} +28 -67
- package/config/router/navigation-guards/history.js +13 -0
- package/config/router/navigation-guards/i18n.js +1 -1
- package/config/router/navigation-guards/index.js +8 -1
- package/config/router/navigation-guards/install-redirect.js +95 -0
- package/config/router/navigation-guards/load-initial-settings.js +1 -1
- package/config/router/navigation-guards/page-title.js +12 -0
- package/config/router/navigation-guards/products.js +15 -0
- package/config/router/navigation-guards/runtime-extension-route.js +31 -0
- package/config/router/navigation-guards/server-upgrade-growl.js +19 -0
- package/config/router/routes.js +49 -23
- package/config/settings.ts +1 -1
- package/config/store.js +2 -5
- package/config/types.js +18 -0
- package/config/uiplugins.js +2 -2
- package/core/plugin-routes.ts +40 -30
- package/core/plugin.ts +10 -10
- package/core/plugins-loader.js +3 -3
- package/core/plugins.js +7 -1
- package/core/types.ts +7 -7
- package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +16 -8
- package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +8 -8
- package/detail/__tests__/service.test.ts +6 -6
- package/detail/autoscaling.horizontalpodautoscaler/index.vue +6 -5
- package/detail/catalog.cattle.io.app.vue +2 -2
- package/detail/cis.cattle.io.clusterscan.vue +3 -3
- package/detail/configmap.vue +4 -1
- package/detail/fleet.cattle.io.cluster.vue +2 -1
- package/detail/fleet.cattle.io.clustergroup.vue +2 -1
- package/detail/fleet.cattle.io.gitrepo.vue +2 -1
- package/detail/harvesterhci.io.management.cluster.vue +2 -1
- package/detail/helm.cattle.io.projecthelmchart.vue +28 -29
- package/detail/management.cattle.io.user.vue +2 -1
- package/detail/namespace.vue +2 -1
- package/detail/networking.k8s.io.ingress.vue +4 -2
- package/detail/node.vue +2 -1
- package/detail/provisioning.cattle.io.cluster.vue +6 -7
- package/detail/secret.vue +3 -2
- package/detail/service.vue +2 -1
- package/detail/workload/index.vue +1 -19
- package/dialog/AddClusterMemberDialog.vue +30 -31
- package/dialog/AddCustomBadgeDialog.vue +101 -104
- package/dialog/AddProjectMemberDialog.vue +45 -46
- package/dialog/AddonConfigConfirmationDialog.vue +22 -24
- package/dialog/DeactivateDriverDialog.vue +5 -6
- package/dialog/DiagnosticTimingsDialog.vue +29 -29
- package/dialog/DrainNode.vue +245 -249
- package/dialog/ForceMachineRemoveDialog.vue +32 -34
- package/dialog/GenericPrompt.vue +23 -25
- package/dialog/RollbackWorkloadDialog.vue +68 -71
- package/dialog/RotateCertificatesDialog.vue +17 -18
- package/dialog/RotateEncryptionKeyDialog.vue +46 -47
- package/dialog/SaveAsRKETemplateDialog.vue +46 -47
- package/dialog/ScaleMachineDownDialog.vue +3 -3
- package/dialog/ScalePoolDownDialog.vue +22 -24
- package/dialog/SloDialog.vue +95 -0
- package/directives/clean-html.js +3 -3
- package/directives/clean-tooltip.js +1 -1
- package/directives/focus.js +17 -11
- package/directives/int-number.js +2 -2
- package/directives/positive-int-number.js +2 -2
- package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +7 -13
- package/edit/__tests__/kontainerDriver.test.ts +23 -20
- package/edit/__tests__/management.cattle.io.clusterroletemplatebinding.test.ts +31 -29
- package/edit/__tests__/management.cattle.io.setting.test.ts +20 -18
- package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +17 -15
- package/edit/__tests__/namespace.test.ts +28 -27
- package/edit/__tests__/nodeDriver.test.ts +35 -53
- package/edit/__tests__/service.test.ts +32 -17
- package/edit/__tests__/ui.cattle.io.navlink.test.ts +22 -20
- package/edit/auth/__tests__/AuthProviderWarningBanners.test.ts +2 -2
- package/edit/auth/__tests__/azuread.test.ts +43 -46
- package/edit/auth/__tests__/oidc.test.ts +36 -39
- package/edit/auth/azuread.vue +16 -23
- package/edit/auth/github.vue +6 -6
- package/edit/auth/googleoauth.vue +7 -7
- package/edit/auth/ldap/config.vue +29 -29
- package/edit/auth/ldap/index.vue +5 -5
- package/edit/auth/oidc.vue +18 -18
- package/edit/auth/saml.vue +94 -24
- package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +7 -7
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +18 -16
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +3 -3
- package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +3 -3
- package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +12 -12
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +5 -5
- package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +3 -3
- package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
- package/edit/catalog.cattle.io.clusterrepo.vue +31 -32
- package/edit/cis.cattle.io.clusterscan.vue +9 -9
- package/edit/cis.cattle.io.clusterscanbenchmark.vue +7 -7
- package/edit/cis.cattle.io.clusterscanprofile.vue +3 -3
- package/edit/cloudcredential.vue +13 -8
- package/edit/configmap.vue +7 -7
- package/edit/constraints.gatekeeper.sh.constraint/MatchKinds.vue +3 -3
- package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +1 -1
- package/edit/constraints.gatekeeper.sh.constraint/Scope.vue +1 -1
- package/edit/constraints.gatekeeper.sh.constraint/index.vue +21 -22
- package/edit/fleet.cattle.io.cluster.vue +2 -1
- package/edit/fleet.cattle.io.clustergroup.vue +6 -5
- package/edit/fleet.cattle.io.gitrepo.vue +18 -18
- package/edit/helm.cattle.io.projecthelmchart.vue +4 -4
- package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +3 -2
- package/edit/logging-flow/Match.vue +4 -4
- package/edit/logging-flow/index.vue +11 -10
- package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +79 -73
- package/edit/logging.banzaicloud.io.output/index.vue +4 -4
- package/edit/logging.banzaicloud.io.output/providers/__tests__/loki.test.ts +1 -1
- package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +5 -5
- package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/datadog.vue +4 -4
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +16 -16
- package/edit/logging.banzaicloud.io.output/providers/file.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +9 -9
- package/edit/logging.banzaicloud.io.output/providers/gcs.vue +5 -5
- package/edit/logging.banzaicloud.io.output/providers/gelf.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
- package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/logdna.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +5 -5
- package/edit/logging.banzaicloud.io.output/providers/loki.vue +10 -10
- package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +15 -15
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +5 -5
- package/edit/logging.banzaicloud.io.output/providers/s3.vue +7 -7
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
- package/edit/logging.banzaicloud.io.output/providers/syslog.vue +19 -19
- package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -1
- package/edit/management.cattle.io.fleetworkspace.vue +9 -7
- package/edit/management.cattle.io.node.vue +4 -3
- package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +3 -2
- package/edit/management.cattle.io.project.vue +13 -10
- package/edit/management.cattle.io.projectroletemplatebinding.vue +3 -3
- package/edit/management.cattle.io.setting.vue +6 -6
- package/edit/management.cattle.io.user.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +2 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +5 -5
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +11 -11
- package/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue +2 -2
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +10 -9
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +5 -5
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +9 -9
- package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +36 -36
- package/edit/monitoring.coreos.com.prometheusrule/RecordingRule.vue +4 -4
- package/edit/monitoring.coreos.com.prometheusrule/index.vue +9 -9
- package/edit/monitoring.coreos.com.receiver/auth.vue +9 -9
- package/edit/monitoring.coreos.com.receiver/index.vue +8 -8
- package/edit/monitoring.coreos.com.receiver/tls.vue +4 -4
- package/edit/monitoring.coreos.com.receiver/types/__tests__/email.test.ts +20 -16
- package/edit/monitoring.coreos.com.receiver/types/email.vue +12 -11
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +11 -11
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/webhook.vue +7 -7
- package/edit/monitoring.coreos.com.route.vue +10 -10
- package/edit/namespace.vue +10 -8
- package/edit/networking.istio.io.destinationrule/LoadBalancer.vue +12 -12
- package/edit/networking.istio.io.destinationrule/index.vue +15 -15
- package/edit/networking.k8s.io.ingress/Certificate.vue +5 -5
- package/edit/networking.k8s.io.ingress/Certificates.vue +2 -2
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +18 -18
- package/edit/networking.k8s.io.ingress/IngressClass.vue +1 -1
- package/edit/networking.k8s.io.ingress/Rule.vue +9 -7
- package/edit/networking.k8s.io.ingress/RulePath.vue +10 -10
- package/edit/networking.k8s.io.ingress/Rules.vue +3 -3
- package/edit/networking.k8s.io.ingress/index.vue +15 -10
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +4 -4
- package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +1 -1
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +47 -32
- package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.test.ts +27 -26
- package/edit/networking.k8s.io.networkpolicy/index.vue +18 -16
- package/edit/node.vue +6 -5
- package/edit/nodeDriver.vue +6 -1
- package/edit/persistentvolume/__tests__/persistentvolume.test.ts +60 -49
- package/edit/persistentvolume/index.vue +26 -26
- package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +8 -8
- package/edit/persistentvolume/plugins/azureDisk.vue +10 -10
- package/edit/persistentvolume/plugins/azureFile.vue +6 -6
- package/edit/persistentvolume/plugins/cephfs.vue +10 -10
- package/edit/persistentvolume/plugins/cinder.vue +8 -8
- package/edit/persistentvolume/plugins/csi.vue +18 -18
- package/edit/persistentvolume/plugins/fc.vue +9 -9
- package/edit/persistentvolume/plugins/flexVolume.vue +9 -9
- package/edit/persistentvolume/plugins/flocker.vue +3 -3
- package/edit/persistentvolume/plugins/gcePersistentDisk.vue +8 -8
- package/edit/persistentvolume/plugins/glusterfs.vue +5 -5
- package/edit/persistentvolume/plugins/hostPath.vue +4 -4
- package/edit/persistentvolume/plugins/iscsi.vue +18 -18
- package/edit/persistentvolume/plugins/local.vue +2 -2
- package/edit/persistentvolume/plugins/longhorn.vue +8 -8
- package/edit/persistentvolume/plugins/nfs.vue +5 -5
- package/edit/persistentvolume/plugins/photonPersistentDisk.vue +5 -5
- package/edit/persistentvolume/plugins/portworxVolume.vue +6 -6
- package/edit/persistentvolume/plugins/quobyte.vue +7 -7
- package/edit/persistentvolume/plugins/rbd.vue +12 -12
- package/edit/persistentvolume/plugins/scaleIO.vue +15 -15
- package/edit/persistentvolume/plugins/storageos.vue +9 -9
- package/edit/persistentvolume/plugins/vsphereVolume.vue +5 -5
- package/edit/persistentvolumeclaim.vue +29 -28
- package/edit/policy.poddisruptionbudget.vue +15 -14
- package/edit/provisioning.cattle.io.cluster/AgentEnv.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +10 -10
- package/edit/provisioning.cattle.io.cluster/Labels.vue +12 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +5 -5
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +40 -36
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +170 -79
- package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.test.ts +16 -14
- package/edit/provisioning.cattle.io.cluster/__tests__/DirectoryConfig.test.ts +38 -8
- package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +14 -12
- package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +18 -19
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +292 -84
- package/edit/provisioning.cattle.io.cluster/import.vue +7 -4
- package/edit/provisioning.cattle.io.cluster/index.vue +32 -13
- package/edit/provisioning.cattle.io.cluster/rke2.vue +155 -78
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +5 -5
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +10 -11
- package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +12 -11
- package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +62 -24
- package/edit/provisioning.cattle.io.cluster/tabs/DirectoryConfig.vue +9 -9
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +12 -12
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/S3Config.vue +15 -15
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +6 -6
- package/edit/provisioning.cattle.io.cluster/tabs/networking/ACE.vue +3 -3
- package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +18 -9
- package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +16 -12
- package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryMirrors.vue +4 -4
- package/edit/provisioning.cattle.io.cluster/tabs/registries/__tests__/RegistryConfigs.test.ts +63 -0
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +8 -6
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/DrainOptions.vue +15 -15
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +4 -4
- package/edit/resources.cattle.io.backup.vue +9 -9
- package/edit/resources.cattle.io.restore.vue +11 -11
- package/edit/secret/basic.vue +2 -2
- package/edit/secret/generic.vue +1 -1
- package/edit/secret/index.vue +12 -10
- package/edit/secret/registry.vue +4 -4
- package/edit/secret/ssh.vue +2 -2
- package/edit/secret/tls.vue +2 -2
- package/edit/service.vue +25 -25
- package/edit/serviceaccount.vue +7 -7
- package/edit/storage.k8s.io.storageclass/index.vue +16 -16
- package/edit/storage.k8s.io.storageclass/provisioners/custom.vue +1 -1
- package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +2 -2
- package/edit/storage.k8s.io.storageclass/provisioners/driver.longhorn.io.vue +4 -4
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +12 -12
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-disk.vue +3 -3
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/azure-file.vue +3 -3
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/cinder.vue +4 -4
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +6 -6
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/glusterfs.vue +9 -9
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/portworx-volume.vue +7 -7
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/quobyte.vue +8 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/rbd.vue +11 -11
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/scaleio.vue +8 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/storageos.vue +5 -5
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +7 -7
- package/edit/token.vue +4 -4
- package/edit/ui.cattle.io.navlink.vue +28 -27
- package/edit/workload/Job.vue +18 -18
- package/edit/workload/Upgrading.vue +16 -16
- package/edit/workload/VolumeClaimTemplate.vue +3 -3
- package/edit/workload/__tests__/Job.test.ts +10 -10
- package/edit/workload/__tests__/index.test.ts +32 -29
- package/edit/workload/index.vue +31 -30
- package/edit/workload/mixins/workload.js +30 -30
- package/edit/workload/storage/ContainerMountPaths.vue +3 -4
- package/edit/workload/storage/Mount.vue +10 -7
- package/edit/workload/storage/__tests__/Mount.test.ts +17 -13
- package/edit/workload/storage/__tests__/Storage.test.ts +26 -20
- package/edit/workload/storage/awsElasticBlockStore.vue +4 -4
- package/edit/workload/storage/azureDisk.vue +7 -7
- package/edit/workload/storage/azureFile.vue +5 -5
- package/edit/workload/storage/csi/driver.longhorn.io.vue +3 -3
- package/edit/workload/storage/csi/index.vue +4 -4
- package/edit/workload/storage/emptyDir.vue +4 -4
- package/edit/workload/storage/ephemeralVolume/index.vue +3 -3
- package/edit/workload/storage/gcePersistentDisk.vue +4 -4
- package/edit/workload/storage/hostPath.vue +4 -4
- package/edit/workload/storage/index.vue +13 -27
- package/edit/workload/storage/nfs.vue +4 -4
- package/edit/workload/storage/persistentVolumeClaim/__tests__/persistentvolumeclaim.test.ts +18 -16
- package/edit/workload/storage/persistentVolumeClaim/index.vue +5 -5
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +15 -15
- package/edit/workload/storage/secret.vue +9 -9
- package/edit/workload/storage/vsphereVolume.vue +4 -4
- package/initialize/App.vue +10 -8
- package/initialize/app-extended.js +14 -30
- package/initialize/entry-helpers.js +29 -428
- package/initialize/entry.js +11 -10
- package/initialize/install-plugins.js +15 -13
- package/list/__tests__/workload.test.ts +22 -20
- package/list/catalog.cattle.io.app.vue +1 -1
- package/list/cis.cattle.io.clusterscan.vue +1 -2
- package/list/fleet.cattle.io.clustergroup.vue +0 -1
- package/list/group.principal.vue +1 -1
- package/list/management.cattle.io.feature.vue +23 -29
- package/list/management.cattle.io.fleetworkspace.vue +0 -1
- package/list/management.cattle.io.setting.vue +2 -2
- package/list/management.cattle.io.user.vue +1 -1
- package/list/namespace.vue +0 -1
- package/list/node.vue +4 -5
- package/list/provisioning.cattle.io.cluster.vue +1 -1
- package/list/rbac.authorization.k8s.io.clusterrolebinding.vue +0 -1
- package/machine-config/__tests__/vmwarevsphere.test.ts +10 -7
- package/machine-config/amazonec2.vue +26 -26
- package/machine-config/azure.vue +31 -31
- package/machine-config/digitalocean.vue +8 -8
- package/machine-config/generic.vue +2 -1
- package/machine-config/linode.vue +4 -4
- package/machine-config/pnap.vue +11 -11
- package/machine-config/vmwarevsphere-config.ts +17 -0
- package/machine-config/vmwarevsphere.vue +400 -410
- package/mixins/__tests__/chart.test.ts +45 -24
- package/mixins/auth-config.js +37 -11
- package/mixins/chart.js +31 -15
- package/mixins/compact-input.ts +2 -3
- package/mixins/labeled-form-element.ts +8 -3
- package/mixins/page-actions.js +1 -1
- package/mixins/resource-fetch.js +4 -3
- package/models/__tests__/apps.deployment.test.ts +93 -0
- package/models/apps.deployment.js +18 -4
- package/models/apps.statefulset.js +1 -2
- package/models/batch.cronjob.js +1 -2
- package/models/catalog.cattle.io.clusterrepo.js +1 -2
- package/models/fleet.cattle.io.gitrepo.js +1 -2
- package/models/helm.cattle.io.projecthelmchart.js +2 -3
- package/models/management.cattle.io.cluster.js +2 -2
- package/models/management.cattle.io.roletemplate.js +2 -3
- package/models/namespace.js +1 -2
- package/models/networking.istio.io.destinationrule.js +2 -3
- package/models/persistentvolumeclaim.js +2 -3
- package/models/provisioning.cattle.io.cluster.js +4 -0
- package/models/workload.js +2 -2
- package/package.json +44 -43
- package/pages/404.vue +15 -0
- package/pages/__tests__/prefs.test.ts +44 -44
- package/pages/about.vue +4 -4
- package/pages/account/index.vue +1 -2
- package/pages/auth/login.vue +29 -9
- package/pages/auth/logout.vue +23 -1
- package/pages/auth/setup.vue +35 -31
- package/pages/auth/verify.vue +38 -5
- package/pages/c/_cluster/_product/namespaces.vue +1 -2
- package/pages/c/_cluster/apps/charts/chart.vue +4 -4
- package/pages/c/_cluster/apps/charts/index.vue +16 -16
- package/pages/c/_cluster/apps/charts/install.vue +46 -80
- package/pages/c/_cluster/auth/config/index.vue +2 -2
- package/pages/c/_cluster/auth/roles/index.vue +2 -2
- package/pages/c/_cluster/auth/user.retention/index.vue +34 -95
- package/pages/c/_cluster/explorer/EventsTable.vue +1 -1
- package/pages/c/_cluster/explorer/__tests__/index.test.ts +32 -34
- package/pages/c/_cluster/explorer/index.vue +9 -6
- package/pages/c/_cluster/explorer/tools/__tests__/index.test.ts +22 -20
- package/pages/c/_cluster/fleet/index.vue +5 -6
- package/pages/c/_cluster/gatekeeper/index.vue +4 -5
- package/pages/c/_cluster/istio/index.vue +6 -8
- package/pages/c/_cluster/logging/index.vue +9 -5
- package/pages/c/_cluster/longhorn/__tests__/longhorn.index.test.ts +7 -4
- package/pages/c/_cluster/longhorn/index.vue +2 -9
- package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +1 -1
- package/pages/c/_cluster/manager/jwt.authentication/index.vue +14 -5
- package/pages/c/_cluster/monitoring/alertmanagerconfig/_alertmanagerconfigid/receiver.vue +1 -1
- package/pages/c/_cluster/monitoring/index.vue +8 -10
- package/pages/c/_cluster/neuvector/index.vue +7 -10
- package/pages/c/_cluster/settings/DefaultLinksEditor.vue +7 -9
- package/pages/c/_cluster/settings/banners.vue +82 -84
- package/pages/c/_cluster/settings/brand.vue +21 -19
- package/pages/c/_cluster/settings/links.vue +6 -4
- package/pages/c/_cluster/settings/performance.vue +25 -21
- package/pages/c/_cluster/uiplugins/AddExtensionRepos.vue +2 -2
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +43 -45
- package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +5 -5
- package/pages/c/_cluster/uiplugins/InstallDialog.vue +1 -1
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +3 -3
- package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +17 -34
- package/pages/c/_cluster/uiplugins/__tests__/SetupUIPlugins.test.ts +12 -9
- package/pages/c/_cluster/uiplugins/index.vue +173 -176
- package/pages/diagnostic.vue +6 -9
- package/pages/fail-whale.vue +3 -1
- package/pages/home.vue +8 -17
- package/pages/index.vue +17 -16
- package/pages/prefs.vue +12 -12
- package/pages/support/index.vue +3 -3
- package/pkg/tsconfig.json +0 -1
- package/plugins/dashboard-store/actions.js +1 -1
- package/plugins/dashboard-store/getters.js +1 -1
- package/plugins/dashboard-store/index.js +2 -0
- package/plugins/dashboard-store/mutations.js +5 -5
- package/plugins/dashboard-store/resource-class.js +5 -5
- package/plugins/extend-router.js +62 -42
- package/plugins/floating-vue.js +1 -0
- package/plugins/formatters.js +1 -1
- package/plugins/global-formatters.js +3 -14
- package/plugins/i18n.js +17 -22
- package/plugins/shortkey.js +273 -0
- package/plugins/steve/__tests__/getters.test.ts +6 -3
- package/plugins/steve/getters.js +6 -4
- package/plugins/steve/hybrid-class.js +7 -12
- package/plugins/steve/mutations.js +1 -2
- package/plugins/steve/norman-class.js +10 -11
- package/plugins/steve/subscribe.js +3 -1
- package/promptRemove/management.cattle.io.globalrole.vue +1 -5
- package/promptRemove/management.cattle.io.project.vue +1 -1
- package/promptRemove/pod.vue +1 -1
- package/public/index.html +53 -52
- package/rancher-components/BadgeState/BadgeState.test.ts +1 -1
- package/rancher-components/BadgeState/BadgeState.vue +1 -1
- package/rancher-components/Banner/Banner.test.ts +2 -2
- package/rancher-components/Form/Checkbox/Checkbox.test.ts +5 -5
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -4
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +5 -5
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +15 -4
- package/rancher-components/Form/Radio/RadioButton.vue +3 -2
- package/rancher-components/Form/Radio/RadioGroup.test.ts +6 -9
- package/rancher-components/Form/Radio/RadioGroup.vue +4 -5
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +18 -1
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.test.ts +13 -13
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -1
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +1 -0
- package/rancher-components/StringList/StringList.test.ts +22 -22
- package/rancher-components/StringList/StringList.vue +10 -9
- package/scripts/extension/helm/charts/ui-plugin-server/Chart.yaml +1 -1
- package/scripts/publish-shell.sh +52 -58
- package/scripts/test-plugins-build.sh +44 -38
- package/scripts/vue-migrate.js +7 -4
- package/shell/types/shell/index.d.ts +2 -0
- package/store/__tests__/catalog.test.ts +4 -21
- package/store/auth.js +28 -10
- package/store/index.js +16 -8
- package/store/prefs.js +3 -4
- package/types/resources/settings.d.ts +54 -0
- package/types/store/pagination.types.ts +1 -1
- package/utils/auth.js +21 -6
- package/utils/axios.js +1 -1
- package/utils/download.js +1 -1
- package/utils/dynamic-importer.js +14 -12
- package/utils/error.js +4 -4
- package/utils/object.js +4 -5
- package/utils/router.js +7 -1
- package/utils/select.js +1 -1
- package/utils/settings.ts +3 -1
- package/utils/unit-tests/ChildRenderingRouterLinkStub.ts +4 -4
- package/vue.config.js +171 -145
- package/config/middleware.js +0 -6
- package/config/nuxt-paths.js +0 -7
- package/creators/app/app.package.json +0 -14
- package/creators/app/files/.eslintignore +0 -16
- package/creators/app/files/.eslintrc.js +0 -173
- package/creators/app/files/.gitignore +0 -70
- package/creators/app/files/.gitlab-ci.yml +0 -14
- package/creators/app/files/.vscode/settings.json +0 -21
- package/creators/app/files/babel.config.js +0 -1
- package/creators/app/files/tsconfig.json +0 -42
- package/creators/app/files/vue.config.js +0 -6
- package/creators/app/init +0 -120
- package/creators/app/package.json +0 -25
- package/creators/pkg/files/.github/workflows/build-extension-catalog.yml +0 -24
- package/creators/pkg/files/.github/workflows/build-extension-charts.yml +0 -22
- package/creators/pkg/files/babel.config.js +0 -1
- package/creators/pkg/files/index.ts +0 -14
- package/creators/pkg/files/tsconfig.json +0 -53
- package/creators/pkg/files/vue.config.js +0 -1
- package/creators/pkg/init +0 -286
- package/creators/pkg/package.json +0 -19
- package/creators/pkg/pkg.package.json +0 -21
- package/creators/pkg/vue-shim.ts +0 -4
- package/creators/update/init +0 -56
- package/creators/update/package.json +0 -20
- package/creators/update/upgrade +0 -56
- package/pages/c/_cluster/backup/index.vue +0 -11
- package/pages/c/_cluster/cis/index.vue +0 -11
- package/plugins/clean-html-directive.js +0 -9
- package/plugins/clean-tooltip-directive.js +0 -8
- package/plugins/directives.js +0 -8
- package/plugins/int-number.js +0 -8
- package/plugins/positive-int-number.js +0 -8
- package/plugins/trim-whitespace.js +0 -9
- package/plugins/vue-js-modal.js +0 -4
- package/types/shell/index.d.ts +0 -4585
- package/utils/install-redirect.js +0 -55
- /package/utils/{cookie-universal-nuxt.js → cookie-universal.js} +0 -0
package/scripts/publish-shell.sh
CHANGED
|
@@ -6,10 +6,16 @@ BASE_DIR="$(
|
|
|
6
6
|
pwd
|
|
7
7
|
)"
|
|
8
8
|
SHELL_DIR=$BASE_DIR/shell/
|
|
9
|
-
|
|
10
|
-
PUBLISH_ARGS="--no-git-tag-version --access public $
|
|
9
|
+
CREATORS_DIR=$BASE_DIR/creators/extension
|
|
10
|
+
PUBLISH_ARGS="--no-git-tag-version --access public --registry $NPM_REGISTRY $NPM_TAG"
|
|
11
11
|
FORCE_PUBLISH_TO_NPM="false"
|
|
12
|
-
|
|
12
|
+
DEFAULT_NPM_REGISTRY="https://registry.npmjs.org"
|
|
13
|
+
|
|
14
|
+
# if TAG doesn't exist, we can exit as it's needed for any type of publish.
|
|
15
|
+
if [ -z "$TAG" ]; then
|
|
16
|
+
echo "You need to set the TAG variable first!"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
13
19
|
|
|
14
20
|
if [ ! -d "${BASE_DIR}/node_modules" ]; then
|
|
15
21
|
echo "You need to run 'yarn install' first"
|
|
@@ -23,44 +29,28 @@ if [ "$1" == "--npm" ]; then
|
|
|
23
29
|
fi
|
|
24
30
|
|
|
25
31
|
if [ "$FORCE_PUBLISH_TO_NPM" == "true" ]; then
|
|
26
|
-
export
|
|
32
|
+
export NPM_REGISTRY=$DEFAULT_NPM_REGISTRY
|
|
27
33
|
fi
|
|
28
34
|
|
|
29
|
-
# We use the version from the shell package for the creator packages
|
|
30
|
-
# Need to copy them to a temporary location, so we can patch the version number
|
|
31
|
-
# before publishing
|
|
32
|
-
|
|
33
|
-
# To set a token for NPM registry auth: `npm config set //registry.npmjs.org/:_authToken <TOKEN>``
|
|
34
|
-
|
|
35
|
-
PKG_DIST=$BASE_DIR/dist-pkg/creators
|
|
36
|
-
mkdir -p ${PKG_DIST}
|
|
37
|
-
rm -rf ${PKG_DIST}/app
|
|
38
|
-
rm -rf ${PKG_DIST}/pkg
|
|
39
|
-
rm -rf ${PKG_DIST}/update
|
|
40
|
-
|
|
41
35
|
pushd ${SHELL_DIR} >/dev/null
|
|
42
36
|
|
|
43
|
-
PKG_VERSION=$(node -p "require('./package.json').version")
|
|
44
|
-
popd >/dev/null
|
|
45
|
-
|
|
46
|
-
echo "Publishing version: $PKG_VERSION"
|
|
47
|
-
|
|
48
|
-
cp -R ${SHELL_DIR}/creators/app ${PKG_DIST}
|
|
49
|
-
cp -R ${SHELL_DIR}/creators/pkg ${PKG_DIST}
|
|
50
|
-
cp -R ${SHELL_DIR}/creators/update ${PKG_DIST}
|
|
51
|
-
|
|
52
|
-
sed -i.bak -e "s/\"0.0.0/"\"$PKG_VERSION"/g" ${PKG_DIST}/app/package.json
|
|
53
|
-
sed -i.bak -e "s/\"0.0.0/"\"$PKG_VERSION"/g" ${PKG_DIST}/pkg/package.json
|
|
54
|
-
sed -i.bak -e "s/\"0.0.0/"\"$PKG_VERSION"/g" ${PKG_DIST}/update/package.json
|
|
55
|
-
|
|
56
|
-
rm ${PKG_DIST}/app/package.json.bak
|
|
57
|
-
rm ${PKG_DIST}/pkg/package.json.bak
|
|
58
|
-
rm ${PKG_DIST}/update/package.json.bak
|
|
59
|
-
|
|
60
37
|
function publish() {
|
|
61
38
|
NAME=$1
|
|
62
39
|
FOLDER=$2
|
|
63
40
|
|
|
41
|
+
# if we pass a third arg, that is the version number
|
|
42
|
+
# that we want to actually publish on NPM
|
|
43
|
+
# they should match with the package.json version stated
|
|
44
|
+
# because of the check in the "Check Tags Version Matching" step in the workflow
|
|
45
|
+
if [ -n "$3" ]; then
|
|
46
|
+
PKG_VERSION=$3
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# if the PKG_VERSION has a - it means it will be a pre-release
|
|
50
|
+
if [[ $PKG_VERSION == *"-"* ]]; then
|
|
51
|
+
PUBLISH_ARGS="--no-git-tag-version --access public --registry $NPM_REGISTRY --tag pre-release"
|
|
52
|
+
fi
|
|
53
|
+
|
|
64
54
|
echo "Publishing ${NAME} from ${FOLDER}"
|
|
65
55
|
pushd ${FOLDER} >/dev/null
|
|
66
56
|
|
|
@@ -71,25 +61,12 @@ function publish() {
|
|
|
71
61
|
cp -R ${BASE_DIR}/pkg/rancher-components/src/components ./rancher-components/
|
|
72
62
|
fi
|
|
73
63
|
|
|
74
|
-
if [ "$NAME" == "Update" ]; then
|
|
75
|
-
# Add files from the app and pkg creators to the update package
|
|
76
|
-
mkdir -p ./app
|
|
77
|
-
mkdir -p ./pkg
|
|
78
|
-
cp -R ${BASE_DIR}/shell/creators/app/* ./app
|
|
79
|
-
cp -R ${BASE_DIR}/shell/creators/pkg/* ./pkg
|
|
80
|
-
# Remove index.ts from pkg files, as we don't want to replace that
|
|
81
|
-
rm -f ./pkg/files/index.ts
|
|
82
|
-
|
|
83
|
-
# Update the package.json for the app
|
|
84
|
-
cd app
|
|
85
|
-
node ${SCRIPT_DIR}/record-deps.js
|
|
86
|
-
cd ..
|
|
87
|
-
fi
|
|
88
|
-
|
|
89
64
|
# Make a note of dependency versions, if required
|
|
90
65
|
node ${SCRIPT_DIR}/record-deps.js
|
|
91
66
|
|
|
92
|
-
|
|
67
|
+
echo "Publishing to registry: $NPM_REGISTRY"
|
|
68
|
+
|
|
69
|
+
npm publish ${PUBLISH_ARGS}
|
|
93
70
|
RET=$?
|
|
94
71
|
|
|
95
72
|
popd >/dev/null
|
|
@@ -100,15 +77,32 @@ function publish() {
|
|
|
100
77
|
fi
|
|
101
78
|
}
|
|
102
79
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
publish "Application creator" ${PKG_DIST}/app/
|
|
109
|
-
publish "Package creator" ${PKG_DIST}/pkg/
|
|
110
|
-
publish "Update" ${PKG_DIST}/update/
|
|
80
|
+
echo "TAG ${TAG}"
|
|
81
|
+
|
|
82
|
+
# let's get the package name and version from the tag
|
|
83
|
+
PKG_NAME=$(sed 's/-pkg-v.*//' <<< "$TAG")
|
|
84
|
+
PKG_V=$(sed 's/.*-pkg-v//'<<< "$TAG")
|
|
111
85
|
|
|
112
|
-
echo "
|
|
86
|
+
echo "PKG_NAME ${PKG_NAME}"
|
|
87
|
+
echo "PKG_V ${PKG_V}"
|
|
113
88
|
|
|
89
|
+
# Generate the type definitions for the shell
|
|
90
|
+
if [ ${PKG_NAME} == "shell" ]; then
|
|
91
|
+
${SCRIPT_DIR}/typegen.sh
|
|
92
|
+
fi
|
|
114
93
|
|
|
94
|
+
# version comparison checks
|
|
95
|
+
case $PKG_NAME in
|
|
96
|
+
"shell")
|
|
97
|
+
echo "Publishing only Shell pkg via tagged release"
|
|
98
|
+
publish "Shell" ${SHELL_DIR} ${PKG_V}
|
|
99
|
+
;;
|
|
100
|
+
"creators")
|
|
101
|
+
echo "Publishing only Creators pkg via tagged release"
|
|
102
|
+
publish "Extension creator" ${CREATORS_DIR} ${PKG_V}
|
|
103
|
+
;;
|
|
104
|
+
*)
|
|
105
|
+
echo "something went wrong with the tagging name => TAG: ${TAG} , PKG_NAME: ${PKG_NAME}. Admissable names are 'shell' and 'creator'"
|
|
106
|
+
exit 1
|
|
107
|
+
;;
|
|
108
|
+
esac
|
|
@@ -8,8 +8,8 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|
|
8
8
|
BASE_DIR="$( cd $SCRIPT_DIR && cd ../.. & pwd)"
|
|
9
9
|
SHELL_DIR=$BASE_DIR/shell/
|
|
10
10
|
SHELL_VERSION="99.99.99"
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
DEFAULT_NPM_REGISTRY="https://registry.npmjs.org/"
|
|
12
|
+
VERDACCIO_NPM_REGISTRY="http://localhost:4873"
|
|
13
13
|
|
|
14
14
|
echo ${SCRIPT_DIR}
|
|
15
15
|
|
|
@@ -69,11 +69,11 @@ else
|
|
|
69
69
|
rm -rf ~/.config/verdaccio/storage/@rancher/*
|
|
70
70
|
fi
|
|
71
71
|
|
|
72
|
-
export
|
|
72
|
+
export NPM_REGISTRY=$VERDACCIO_NPM_REGISTRY
|
|
73
73
|
export NUXT_TELEMETRY_DISABLED=1
|
|
74
74
|
|
|
75
75
|
# Remove test package from previous run, if present
|
|
76
|
-
if [ $TEST_PERSIST_BUILD != "true" ]; then
|
|
76
|
+
if [ "${TEST_PERSIST_BUILD}" != "true" ]; then
|
|
77
77
|
echo "Removing folder ${BASE_DIR}/pkg/test-pkg"
|
|
78
78
|
rm -rf ${BASE_DIR}/pkg/test-pkg
|
|
79
79
|
fi
|
|
@@ -81,20 +81,34 @@ fi
|
|
|
81
81
|
# We need to patch the version number of the shell, otherwise if we are running
|
|
82
82
|
# with the currently published version, things will fail as those versions
|
|
83
83
|
# are already published and Verdaccio will check, since it is a read-through cache
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
update_version_in_package_json() {
|
|
85
|
+
local package_json_path="$1"
|
|
86
|
+
local version="$2"
|
|
86
87
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
sed -i.bak -e "s/\"version\": \"[0-9]*.[0-9]*.[0-9]*\(-alpha\.[0-9]*\|-release[0-9]*.[0-9]*.[0-9]*\|-rc\.[0-9]*\)\{0,1\}\",/\"version\": \"${version}\",/g" "$package_json_path"
|
|
89
|
+
rm "${package_json_path}.bak"
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
update_version_in_package_json "${SHELL_DIR}/package.json" "${SHELL_VERSION}"
|
|
93
|
+
update_version_in_package_json "${BASE_DIR}/pkg/rancher-components/package.json" "${SHELL_VERSION}"
|
|
94
|
+
update_version_in_package_json "${BASE_DIR}/creators/extension/package.json" "${SHELL_VERSION}"
|
|
90
95
|
|
|
91
|
-
# Publish shell
|
|
92
|
-
echo "Publishing
|
|
96
|
+
# Publish shell pkg (tag is needed as publish-shell is optimized to work with release-shell-pkg workflow)
|
|
97
|
+
echo "Publishing Shell package to local registry"
|
|
93
98
|
yarn install
|
|
99
|
+
export TAG="shell-pkg-v${SHELL_VERSION}"
|
|
100
|
+
${SHELL_DIR}/scripts/publish-shell.sh
|
|
101
|
+
|
|
102
|
+
# Publish creators pkg (tag is needed as publish-shell is optimized to work with release-shell-pkg workflow)
|
|
103
|
+
echo "Publishing Creators package to local registry"
|
|
104
|
+
export TAG="creators-pkg-v${SHELL_VERSION}"
|
|
94
105
|
${SHELL_DIR}/scripts/publish-shell.sh
|
|
95
106
|
|
|
96
107
|
# Publish rancher components
|
|
97
108
|
yarn build:lib
|
|
109
|
+
|
|
110
|
+
npm set registry ${VERDACCIO_NPM_REGISTRY}
|
|
111
|
+
yarn config set registry ${VERDACCIO_NPM_REGISTRY}
|
|
98
112
|
yarn publish:lib
|
|
99
113
|
|
|
100
114
|
# We pipe into cat for cleaner logging - we need to set pipefail
|
|
@@ -107,26 +121,18 @@ if [ "${SKIP_STANDALONE}" == "false" ]; then
|
|
|
107
121
|
|
|
108
122
|
echo "Using temporary directory ${DIR}"
|
|
109
123
|
|
|
110
|
-
echo "Verifying
|
|
124
|
+
echo "Verifying extension creator"
|
|
111
125
|
|
|
112
|
-
yarn create @rancher/app test-app
|
|
113
|
-
pushd test-app
|
|
114
|
-
yarn install
|
|
126
|
+
FORCE_COLOR=true yarn create @rancher/extension test-pkg --app-name test-app | cat
|
|
115
127
|
|
|
116
|
-
|
|
128
|
+
pushd test-app > /dev/null
|
|
117
129
|
|
|
130
|
+
yarn install
|
|
118
131
|
FORCE_COLOR=true yarn build | cat
|
|
119
132
|
|
|
120
|
-
# Package creator
|
|
121
|
-
echo "Verifying package creator package"
|
|
122
|
-
yarn create @rancher/pkg test-pkg -i
|
|
123
|
-
|
|
124
|
-
echo "Building test package"
|
|
125
|
-
FORCE_COLOR=true yarn build-pkg test-pkg | cat
|
|
126
|
-
|
|
127
133
|
# Add test list component to the test package
|
|
128
134
|
# Validates rancher-components imports
|
|
129
|
-
mkdir pkg/test-pkg/list
|
|
135
|
+
mkdir -p pkg/test-pkg/list
|
|
130
136
|
cp ${SHELL_DIR}/list/catalog.cattle.io.clusterrepo.vue pkg/test-pkg/list
|
|
131
137
|
|
|
132
138
|
FORCE_COLOR=true yarn build-pkg test-pkg | cat
|
|
@@ -134,7 +140,7 @@ if [ "${SKIP_STANDALONE}" == "false" ]; then
|
|
|
134
140
|
echo "Cleaning temporary dir"
|
|
135
141
|
popd > /dev/null
|
|
136
142
|
|
|
137
|
-
if [ $TEST_PERSIST_BUILD != "true" ]; then
|
|
143
|
+
if [ "${TEST_PERSIST_BUILD}" != "true" ]; then
|
|
138
144
|
echo "Removing folder ${DIR}"
|
|
139
145
|
rm -rf ${DIR}
|
|
140
146
|
fi
|
|
@@ -147,15 +153,16 @@ echo "Validating in-tree package"
|
|
|
147
153
|
|
|
148
154
|
yarn install
|
|
149
155
|
|
|
150
|
-
if [ $TEST_PERSIST_BUILD != "true" ]; then
|
|
156
|
+
if [ "${TEST_PERSIST_BUILD}" != "true" ]; then
|
|
151
157
|
echo "Removing folder ./pkg/test-pkg"
|
|
152
158
|
rm -rf ./pkg/test-pkg
|
|
153
159
|
fi
|
|
154
160
|
|
|
155
|
-
yarn create @rancher/
|
|
161
|
+
yarn create @rancher/extension test-pkg -i
|
|
156
162
|
cp ${SHELL_DIR}/list/catalog.cattle.io.clusterrepo.vue ./pkg/test-pkg/list
|
|
157
163
|
FORCE_COLOR=true yarn build-pkg test-pkg | cat
|
|
158
|
-
|
|
164
|
+
|
|
165
|
+
if [ "${TEST_PERSIST_BUILD}" != "true" ]; then
|
|
159
166
|
echo "Removing folder ./pkg/test-pkg"
|
|
160
167
|
rm -rf ./pkg/test-pkg
|
|
161
168
|
fi
|
|
@@ -168,9 +175,9 @@ function clone_repo_test_extension_build() {
|
|
|
168
175
|
echo -e "\nSetting up $REPO_NAME repository locally\n"
|
|
169
176
|
|
|
170
177
|
# set registry to default (to install all of the other dependencies)
|
|
171
|
-
yarn config set registry ${
|
|
178
|
+
yarn config set registry ${DEFAULT_NPM_REGISTRY}
|
|
172
179
|
|
|
173
|
-
if [ $TEST_PERSIST_BUILD != "true" ]; then
|
|
180
|
+
if [ "${TEST_PERSIST_BUILD}" != "true" ]; then
|
|
174
181
|
echo "Removing folder ${BASE_DIR}/$REPO_NAME"
|
|
175
182
|
rm -rf ${BASE_DIR}/$REPO_NAME
|
|
176
183
|
fi
|
|
@@ -183,7 +190,7 @@ function clone_repo_test_extension_build() {
|
|
|
183
190
|
yarn install
|
|
184
191
|
|
|
185
192
|
# set registry to local verdaccio (to install new shell)
|
|
186
|
-
yarn config set registry ${
|
|
193
|
+
yarn config set registry ${VERDACCIO_NPM_REGISTRY}
|
|
187
194
|
|
|
188
195
|
# update package.json to use a specific version of shell
|
|
189
196
|
sed -i.bak -e "s/\"\@rancher\/shell\": \"[0-9]*.[0-9]*.[0-9]*\",/\"\@rancher\/shell\": \"${SHELL_VERSION}\",/g" package.json
|
|
@@ -209,16 +216,15 @@ function clone_repo_test_extension_build() {
|
|
|
209
216
|
popd
|
|
210
217
|
|
|
211
218
|
# delete folder
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
fi
|
|
216
|
-
yarn config set registry ${DEFAULT_YARN_REGISTRY}
|
|
219
|
+
echo "Removing folder ${BASE_DIR}/$REPO_NAME"
|
|
220
|
+
rm -rf ${BASE_DIR}/$REPO_NAME
|
|
221
|
+
yarn config set registry ${DEFAULT_NPM_REGISTRY}
|
|
217
222
|
}
|
|
218
223
|
|
|
219
224
|
# Here we just add the extension that we want to include as a check (all our official extensions should be included here)
|
|
220
225
|
# Don't forget to add the unit tests exception to clone_repo_test_extension_build function if a new extension has those
|
|
221
|
-
clone_repo_test_extension_build "kubewarden-ui" "kubewarden"
|
|
222
|
-
clone_repo_test_extension_build "elemental-ui" "elemental"
|
|
226
|
+
# clone_repo_test_extension_build "kubewarden-ui" "kubewarden"
|
|
227
|
+
# clone_repo_test_extension_build "elemental-ui" "elemental"
|
|
228
|
+
# clone_repo_test_extension_build "capi-ui-extension" "capi"
|
|
223
229
|
|
|
224
230
|
echo "All done"
|
package/scripts/vue-migrate.js
CHANGED
|
@@ -5,6 +5,7 @@ const fs = require('fs');
|
|
|
5
5
|
const glob = require('glob');
|
|
6
6
|
const semver = require('semver');
|
|
7
7
|
const path = require('path');
|
|
8
|
+
|
|
8
9
|
/**
|
|
9
10
|
* Init logger
|
|
10
11
|
*/
|
|
@@ -226,7 +227,7 @@ const packageUpdatesResolution = (file, oldContent) => {
|
|
|
226
227
|
* Verify GitHub Actions use of current node version, e.g. node-version: '<18'
|
|
227
228
|
*/
|
|
228
229
|
const gitHubActionsUpdates = () => {
|
|
229
|
-
const files = glob.sync(params.paths || '.github/workflows/**.{yml,yaml}', { ignore });
|
|
230
|
+
const files = glob.sync(params.paths || '.github/{actions,workflows}/**.{yml,yaml}', { ignore });
|
|
230
231
|
|
|
231
232
|
files.forEach((file) => {
|
|
232
233
|
let content = fs.readFileSync(file, 'utf8');
|
|
@@ -359,8 +360,10 @@ const vueSyntaxUpdates = () => {
|
|
|
359
360
|
// TODO: Add missing import
|
|
360
361
|
|
|
361
362
|
[/( {4,}default)\(\)\s*\{([\s\S]*?)this\.([\s\S]*?\}\s*\})/g, (_, before, middle, after) => `${ before }(props) {${ middle }props.${ after }`, 'https://v3-migration.vuejs.org/breaking-changes/props-default-this.html'],
|
|
362
|
-
[`value=`, `modelValue=`],
|
|
363
|
-
[`@input=`, `@update:modelValue=`],
|
|
363
|
+
// [`value=`, `modelValue=`],
|
|
364
|
+
// [`@input=`, `@update:modelValue=`],
|
|
365
|
+
[/\@input=\"((?!.*plainInputEvent).+)\"/g, (_, betweenQuotes) => `@update:value="${ betweenQuotes }"`], // Matches @input while avoiding `@input="($plainInputEvent) => onInput($plainInputEvent)"` which we used on plain <input elements since they differ in vue3
|
|
366
|
+
[`v-model=`, `v-model:value=`],
|
|
364
367
|
// [`v-bind.sync=`, `:modelValue=`, `https://v3-migration.vuejs.org/breaking-changes/v-model.html#using-v-bind-sync`],
|
|
365
368
|
// ['v-model=', ':modelValue=', ''],
|
|
366
369
|
[/:([a-z-0-9]+)\.sync/g, (_, propName) => `v-model:${ propName }`, `https://v3-migration.vuejs.org/breaking-changes/v-model.html#migration-strategy`],
|
|
@@ -524,7 +527,7 @@ const eslintUpdates = () => {
|
|
|
524
527
|
});
|
|
525
528
|
|
|
526
529
|
// Add the new rules if they don't exist
|
|
527
|
-
const eslintConfigPath = path.join(
|
|
530
|
+
const eslintConfigPath = path.join(process.cwd(), `${ file }`);
|
|
528
531
|
const eslintConfig = require(eslintConfigPath);
|
|
529
532
|
|
|
530
533
|
Object.keys(newRules).forEach((rule) => {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { CATALOG } from '@shell/config/types';
|
|
2
2
|
import { state, getters, actions, mutations } from '../catalog';
|
|
3
|
-
import
|
|
4
|
-
import { createLocalVue } from '@vue/test-utils';
|
|
3
|
+
import { createStore } from 'vuex';
|
|
5
4
|
|
|
6
5
|
const clusterRepo = { _key: 'testClusterRepo' };
|
|
7
6
|
const repoChartName = 'abc';
|
|
@@ -47,10 +46,6 @@ describe('catalog', () => {
|
|
|
47
46
|
actions,
|
|
48
47
|
};
|
|
49
48
|
|
|
50
|
-
const localVue = createLocalVue();
|
|
51
|
-
|
|
52
|
-
localVue.use(Vuex);
|
|
53
|
-
|
|
54
49
|
return {
|
|
55
50
|
modules: {
|
|
56
51
|
i18n: {
|
|
@@ -104,11 +99,7 @@ describe('catalog', () => {
|
|
|
104
99
|
};
|
|
105
100
|
|
|
106
101
|
it('no force', async() => {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
localVue.use(Vuex);
|
|
110
|
-
|
|
111
|
-
const store = new Vuex.Store(constructStore());
|
|
102
|
+
const store = createStore(constructStore());
|
|
112
103
|
|
|
113
104
|
// Validate initial state of store
|
|
114
105
|
expect(store.getters[`${ catalogStoreName }/rawCharts`]).toStrictEqual(initialRawCharts);
|
|
@@ -135,11 +126,7 @@ describe('catalog', () => {
|
|
|
135
126
|
});
|
|
136
127
|
|
|
137
128
|
it('force', async() => {
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
localVue.use(Vuex);
|
|
141
|
-
|
|
142
|
-
const store = new Vuex.Store(constructStore());
|
|
129
|
+
const store = createStore(constructStore());
|
|
143
130
|
|
|
144
131
|
// Validate initial state of store
|
|
145
132
|
let rawCharts = store.getters[`${ catalogStoreName }/rawCharts`];
|
|
@@ -181,11 +168,7 @@ describe('catalog', () => {
|
|
|
181
168
|
});
|
|
182
169
|
|
|
183
170
|
it('force + reset', async() => {
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
localVue.use(Vuex);
|
|
187
|
-
|
|
188
|
-
const store = new Vuex.Store(constructStore());
|
|
171
|
+
const store = createStore(constructStore());
|
|
189
172
|
|
|
190
173
|
// Validate initial state of store
|
|
191
174
|
expect(store.getters[`${ catalogStoreName }/rawCharts`]).toStrictEqual(initialRawCharts);
|
package/store/auth.js
CHANGED
|
@@ -345,9 +345,14 @@ export const actions = {
|
|
|
345
345
|
}
|
|
346
346
|
},
|
|
347
347
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
348
|
+
uiLogout({ commit, dispatch }) {
|
|
349
|
+
removeEmberPage();
|
|
350
|
+
|
|
351
|
+
commit('loggedOut');
|
|
352
|
+
dispatch('onLogout', null, { root: true });
|
|
353
|
+
},
|
|
354
|
+
|
|
355
|
+
async logout({ dispatch, getters, rootState }, options = {}) {
|
|
351
356
|
// So, we only do this check if auth has been initialized.
|
|
352
357
|
//
|
|
353
358
|
// It's possible to be logged in and visit auth/logout directly instead
|
|
@@ -367,20 +372,33 @@ export const actions = {
|
|
|
367
372
|
// Unload plugins - we will load again on login
|
|
368
373
|
await rootState.$plugin.logout();
|
|
369
374
|
|
|
375
|
+
let logoutAction = 'logout';
|
|
376
|
+
const data = {};
|
|
377
|
+
|
|
378
|
+
// SLO - Single-sign logout - will logout auth provider from all places where it's logged in
|
|
379
|
+
if (options.slo) {
|
|
380
|
+
logoutAction = 'logoutAll';
|
|
381
|
+
data.finalRedirectUrl = returnTo({ isSlo: true }, this);
|
|
382
|
+
}
|
|
383
|
+
|
|
370
384
|
try {
|
|
371
|
-
await dispatch('rancher/request', {
|
|
372
|
-
url:
|
|
385
|
+
const res = await dispatch('rancher/request', {
|
|
386
|
+
url: `/v3/tokens?action=${ logoutAction }`,
|
|
373
387
|
method: 'post',
|
|
374
|
-
data
|
|
388
|
+
data,
|
|
375
389
|
headers: { 'Content-Type': 'application/json' },
|
|
376
390
|
redirectUnauthorized: false,
|
|
377
391
|
}, { root: true });
|
|
392
|
+
|
|
393
|
+
// Single-sign logout for SAML providers that allow for it
|
|
394
|
+
if (res.baseType === 'samlConfigLogoutOutput' && res.idpRedirectUrl) {
|
|
395
|
+
window.location.href = res.idpRedirectUrl;
|
|
396
|
+
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
378
399
|
} catch (e) {
|
|
379
400
|
}
|
|
380
401
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
commit('loggedOut');
|
|
384
|
-
dispatch('onLogout', null, { root: true });
|
|
402
|
+
dispatch('uiLogout');
|
|
385
403
|
}
|
|
386
404
|
};
|
package/store/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { BACK_TO } from '@shell/config/local-storage';
|
|
|
2
2
|
import { setBrand, setVendor } from '@shell/config/private-label';
|
|
3
3
|
import { NAME as EXPLORER } from '@shell/config/product/explorer';
|
|
4
4
|
import {
|
|
5
|
-
LOGGED_OUT, IS_SSO, TIMED_OUT, UPGRADED, _FLAGGED
|
|
5
|
+
LOGGED_OUT, IS_SSO, IS_SLO, TIMED_OUT, UPGRADED, _FLAGGED
|
|
6
6
|
} from '@shell/config/query-params';
|
|
7
7
|
import { SETTING } from '@shell/config/settings';
|
|
8
8
|
import {
|
|
@@ -248,9 +248,9 @@ export const state = () => {
|
|
|
248
248
|
isRancherInHarvester: false,
|
|
249
249
|
targetRoute: null,
|
|
250
250
|
rootProduct: undefined,
|
|
251
|
-
$router: markRaw(
|
|
252
|
-
$route: markRaw(
|
|
253
|
-
$plugin: markRaw(
|
|
251
|
+
$router: markRaw({}),
|
|
252
|
+
$route: markRaw({}),
|
|
253
|
+
$plugin: markRaw({}),
|
|
254
254
|
};
|
|
255
255
|
};
|
|
256
256
|
|
|
@@ -696,6 +696,11 @@ export const mutations = {
|
|
|
696
696
|
},
|
|
697
697
|
|
|
698
698
|
setError(state, { error: obj, locationError }) {
|
|
699
|
+
// We don't want to clobber one error with another, doing so can hide the original cause of an error
|
|
700
|
+
if (obj && state.error) {
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
|
|
699
704
|
const err = new ApiError(obj);
|
|
700
705
|
|
|
701
706
|
console.log('Loading error', err); // eslint-disable-line no-console
|
|
@@ -729,15 +734,15 @@ export const mutations = {
|
|
|
729
734
|
},
|
|
730
735
|
|
|
731
736
|
setRouter(state, router) {
|
|
732
|
-
state.$router = markRaw(router);
|
|
737
|
+
state.$router = markRaw(router || {});
|
|
733
738
|
},
|
|
734
739
|
|
|
735
740
|
setRoute(state, route) {
|
|
736
|
-
state.$route = markRaw(route);
|
|
741
|
+
state.$route = markRaw(route || {});
|
|
737
742
|
},
|
|
738
743
|
|
|
739
744
|
setPlugin(state, pluginDefinition) {
|
|
740
|
-
state.$plugin = markRaw(pluginDefinition);
|
|
745
|
+
state.$plugin = markRaw(pluginDefinition || {});
|
|
741
746
|
}
|
|
742
747
|
};
|
|
743
748
|
|
|
@@ -1137,7 +1142,7 @@ export const actions = {
|
|
|
1137
1142
|
commit('catalog/reset');
|
|
1138
1143
|
|
|
1139
1144
|
const router = state.$router;
|
|
1140
|
-
const route = router.currentRoute;
|
|
1145
|
+
const route = router.currentRoute.value;
|
|
1141
1146
|
|
|
1142
1147
|
if ( route.name === 'index' ) {
|
|
1143
1148
|
router.replace('/auth/login');
|
|
@@ -1156,6 +1161,9 @@ export const actions = {
|
|
|
1156
1161
|
// adds IS_SSO query param to login route if logout came with an auth provider enabled
|
|
1157
1162
|
QUERY += (IS_SSO in route.query) ? `&${ IS_SSO }` : '';
|
|
1158
1163
|
|
|
1164
|
+
// adds IS_SLO query param to login route if logout came with an auth provider with Single Logout enabled
|
|
1165
|
+
QUERY += (IS_SLO in route.query) ? `&${ IS_SLO }` : '';
|
|
1166
|
+
|
|
1159
1167
|
// Go back to login and force a full page reload, this ensures we unload any dangling resources the user is no longer authorized to use (like extensions).
|
|
1160
1168
|
// We use document instead of router because router does a clunky job of visiting a new page and reloading. In this case it would cause the login page to flash before actually reloading.
|
|
1161
1169
|
const base = process.env.routerBase || '/';
|
package/store/prefs.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { SETTING } from '@shell/config/settings';
|
|
2
2
|
import { MANAGEMENT, STEVE } from '@shell/config/types';
|
|
3
3
|
import { clone } from '@shell/utils/object';
|
|
4
|
-
import Vue from 'vue';
|
|
5
4
|
|
|
6
5
|
const definitions = {};
|
|
7
6
|
/**
|
|
@@ -239,7 +238,7 @@ export const getters = {
|
|
|
239
238
|
|
|
240
239
|
export const mutations = {
|
|
241
240
|
load(state, { key, value }) {
|
|
242
|
-
|
|
241
|
+
state.data[key] = value;
|
|
243
242
|
},
|
|
244
243
|
|
|
245
244
|
cookiesLoaded(state) {
|
|
@@ -302,9 +301,9 @@ export const actions = {
|
|
|
302
301
|
}
|
|
303
302
|
|
|
304
303
|
if ( definition.parseJSON ) {
|
|
305
|
-
|
|
304
|
+
server.data[key] = JSON.stringify(value);
|
|
306
305
|
} else {
|
|
307
|
-
|
|
306
|
+
server.data[key] = value;
|
|
308
307
|
}
|
|
309
308
|
|
|
310
309
|
await server.save({ redirectUnauthorized: false });
|
|
@@ -30,3 +30,57 @@ export interface PaginationSettings {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
type Links = {
|
|
35
|
+
remove: string;
|
|
36
|
+
self: string;
|
|
37
|
+
update: string;
|
|
38
|
+
view: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type FieldsV1 = {
|
|
42
|
+
'f:customized': {};
|
|
43
|
+
'f:default': {};
|
|
44
|
+
'f:source': {};
|
|
45
|
+
'f:value': {};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
type ManagedFields = {
|
|
49
|
+
apiVersion: string;
|
|
50
|
+
fieldsType: string;
|
|
51
|
+
fieldsV1: FieldsV1;
|
|
52
|
+
manager: string;
|
|
53
|
+
operation: string;
|
|
54
|
+
time: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
type Metadata = {
|
|
58
|
+
creationTimestamp: string;
|
|
59
|
+
fields: string[];
|
|
60
|
+
generation: number;
|
|
61
|
+
managedFields: ManagedFields[];
|
|
62
|
+
name: string;
|
|
63
|
+
relationships: null;
|
|
64
|
+
resourceVersion: string;
|
|
65
|
+
state: {
|
|
66
|
+
error: boolean;
|
|
67
|
+
message: string;
|
|
68
|
+
name: string;
|
|
69
|
+
transitioning: boolean;
|
|
70
|
+
};
|
|
71
|
+
uid: string;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export type Setting = {
|
|
75
|
+
id: string;
|
|
76
|
+
type: string;
|
|
77
|
+
links: Links;
|
|
78
|
+
apiVersion: string;
|
|
79
|
+
customized: boolean;
|
|
80
|
+
default: string;
|
|
81
|
+
kind: string;
|
|
82
|
+
metadata: Metadata;
|
|
83
|
+
source: string;
|
|
84
|
+
value: string | null;
|
|
85
|
+
save: () => void;
|
|
86
|
+
};
|
|
@@ -227,7 +227,7 @@ export class PaginationParamFilter extends PaginationParam {
|
|
|
227
227
|
/**
|
|
228
228
|
* Convenience method when you just want an instance of {@link PaginationParamFilter} with a simple `filter=x=y` param
|
|
229
229
|
*/
|
|
230
|
-
static createSingleField(field: { field?: string; value: string; equals?: boolean; }): PaginationParam {
|
|
230
|
+
static createSingleField(field: { field?: string; value: string; equals?: boolean; exact?: boolean }): PaginationParam {
|
|
231
231
|
return new PaginationParamFilter({ fields: [new PaginationFilterField(field)] });
|
|
232
232
|
}
|
|
233
233
|
|