diff --git a/ui/app/components/ui-wizard.js b/ui/app/components/ui-wizard.js
deleted file mode 100644
index 1e14b4391713..000000000000
--- a/ui/app/components/ui-wizard.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { service } from '@ember/service';
-import { alias, or } from '@ember/object/computed';
-import Component from '@ember/component';
-import { matchesState } from 'xstate';
-
-export default Component.extend({
- classNames: ['ui-wizard-container'],
- wizard: service(),
- auth: service(),
- router: service(),
-
- shouldRender: or('auth.currentToken', 'wizard.showWhenUnauthenticated'),
- currentState: alias('wizard.currentState'),
- featureState: alias('wizard.featureState'),
- featureComponent: alias('wizard.featureComponent'),
- tutorialComponent: alias('wizard.tutorialComponent'),
- componentState: alias('wizard.componentState'),
- nextFeature: alias('wizard.nextFeature'),
- nextStep: alias('wizard.nextStep'),
- currentRouteName: alias('router.currentRouteName'),
-
- actions: {
- dismissWizard() {
- this.wizard.transitionTutorialMachine(this.currentState, 'DISMISS');
- },
-
- advanceWizard() {
- const inInit = matchesState('init', this.wizard.currentState);
- const event = inInit ? this.wizard.initEvent || 'CONTINUE' : 'CONTINUE';
- this.wizard.transitionTutorialMachine(this.currentState, event);
- },
-
- advanceFeature() {
- this.wizard.transitionFeatureMachine(this.featureState, 'CONTINUE');
- },
-
- finishFeature() {
- this.wizard.transitionFeatureMachine(this.featureState, 'DONE');
- },
-
- repeatStep() {
- this.wizard.transitionFeatureMachine(this.featureState, 'REPEAT', this.componentState);
- },
-
- resetFeature() {
- this.wizard.transitionFeatureMachine(this.featureState, 'RESET', this.componentState);
- },
-
- pauseWizard() {
- this.wizard.transitionTutorialMachine(this.currentState, 'PAUSE');
- },
- },
-});
diff --git a/ui/app/components/wizard-content.js b/ui/app/components/wizard-content.js
deleted file mode 100644
index 0cb344d1d57f..000000000000
--- a/ui/app/components/wizard-content.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { alias, reads } from '@ember/object/computed';
-import { service } from '@ember/service';
-import Component from '@ember/component';
-import { computed } from '@ember/object';
-import { FEATURE_MACHINE_STEPS, INIT_STEPS } from 'vault/helpers/wizard-constants';
-
-export default Component.extend({
- wizard: service(),
- classNames: ['ui-wizard'],
- glyph: null,
- headerText: null,
- selectProgress: null,
- currentMachine: alias('wizard.currentMachine'),
- tutorialState: alias('wizard.currentState'),
- tutorialComponent: alias('wizard.tutorialComponent'),
- showProgress: computed(
- 'tutorialComponent',
- 'tutorialState',
- 'wizard.{featureComponent,featureMachineHistory}',
- function () {
- if (!this.tutorialComponent) return;
- return (
- this.tutorialComponent.includes('active') &&
- (this.tutorialState.includes('init.active') ||
- (this.wizard.featureComponent && this.wizard.featureMachineHistory))
- );
- }
- ),
- featureMachineHistory: alias('wizard.featureMachineHistory'),
- totalFeatures: reads('wizard.featureList.length'),
- completedFeatures: computed('wizard.currentMachine', function () {
- return this.wizard.getCompletedFeatures();
- }),
- currentFeatureProgress: computed(
- 'currentMachine',
- 'featureMachineHistory.[]',
- 'tutorialState',
- function () {
- if (this.tutorialState.includes('active.feature')) {
- let totalSteps = FEATURE_MACHINE_STEPS[this.currentMachine];
- if (this.currentMachine === 'secrets') {
- if (this.featureMachineHistory.includes('secret')) {
- totalSteps = totalSteps['secret']['secret'];
- }
- if (this.featureMachineHistory.includes('list')) {
- totalSteps = totalSteps['secret']['list'];
- }
- if (this.featureMachineHistory.includes('encryption')) {
- totalSteps = totalSteps['encryption'];
- }
- if (this.featureMachineHistory.includes('role') || typeof totalSteps === 'object') {
- totalSteps = totalSteps['role'];
- }
- }
- return {
- percentage: (this.featureMachineHistory.length / totalSteps) * 100,
- feature: this.currentMachine,
- text: `Step ${this.featureMachineHistory.length} of ${totalSteps}`,
- };
- }
- return null;
- }
- ),
- currentTutorialProgress: computed('tutorialState', function () {
- if (this.tutorialState.includes('init.active')) {
- const currentStepName = this.tutorialState.split('.')[2];
- const currentStepNumber = INIT_STEPS.indexOf(currentStepName) + 1;
- return {
- percentage: (currentStepNumber / INIT_STEPS.length) * 100,
- text: `Step ${currentStepNumber} of ${INIT_STEPS.length}`,
- };
- }
- return null;
- }),
- progressBar: computed(
- 'completedFeatures',
- 'currentFeature',
- 'currentFeatureProgress.percentage',
- 'currentMachine',
- 'currentTutorialProgress.percentage',
- 'wizard.featureList',
- function () {
- const bar = [];
- if (this.currentTutorialProgress) {
- bar.push({
- style: `width:${this.currentTutorialProgress.percentage}%;`,
- completed: false,
- showIcon: true,
- });
- } else {
- if (this.currentFeatureProgress) {
- this.completedFeatures.forEach((feature) => {
- bar.push({ style: 'width:100%;', completed: true, feature: feature, showIcon: true });
- });
- this.wizard.featureList.forEach((feature) => {
- if (feature === this.currentMachine) {
- bar.push({
- style: `width:${this.currentFeatureProgress.percentage}%;`,
- completed: this.currentFeatureProgress.percentage == 100 ? true : false,
- feature: feature,
- showIcon: true,
- });
- } else {
- bar.push({ style: 'width:0%;', completed: false, feature: feature, showIcon: true });
- }
- });
- }
- }
- return bar;
- }
- ),
-
- actions: {
- dismissWizard() {
- this.wizard.transitionTutorialMachine(this.wizard.currentState, 'DISMISS');
- },
- },
-});
diff --git a/ui/app/components/wizard/features-selection.js b/ui/app/components/wizard/features-selection.js
deleted file mode 100644
index 25f557f2025b..000000000000
--- a/ui/app/components/wizard/features-selection.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { or, not } from '@ember/object/computed';
-import { service } from '@ember/service';
-import Component from '@ember/component';
-import { computed } from '@ember/object';
-import { FEATURE_MACHINE_TIME } from 'vault/helpers/wizard-constants';
-
-export default Component.extend({
- wizard: service(),
- version: service(),
- permissions: service(),
-
- init() {
- this._super(...arguments);
- this.maybeHideFeatures();
- },
-
- maybeHideFeatures() {
- const features = this.allFeatures;
- features.forEach((feat) => {
- feat.disabled = this.doesNotHavePermission(feat.requiredPermissions);
- });
-
- if (this.showReplication === false) {
- const feature = this.allFeatures.find((f) => f.key === 'replication');
- feature.show = false;
- }
- },
-
- doesNotHavePermission(requiredPermissions) {
- // requiredPermissions is an object of paths and capabilities defined within allFeatures.
- // the expected shape is:
- // {
- // 'example/path': ['capability'],
- // 'second/example/path': ['update', 'sudo'],
- // }
- return !Object.keys(requiredPermissions).every((path) => {
- return this.permissions.hasPermission(path, requiredPermissions[path]);
- });
- },
-
- estimatedTime: computed('selectedFeatures', function () {
- let time = 0;
- for (const feature of Object.keys(FEATURE_MACHINE_TIME)) {
- if (this.selectedFeatures.includes(feature)) {
- time += FEATURE_MACHINE_TIME[feature];
- }
- }
- return time;
- }),
- selectProgress: computed('selectedFeatures', function () {
- let bar = this.selectedFeatures.map((feature) => {
- return { style: 'width:0%;', completed: false, showIcon: true, feature: feature };
- });
- if (bar.length === 0) {
- bar = [{ style: 'width:0%;', showIcon: false }];
- }
- return bar;
- }),
- allFeatures: computed(function () {
- return [
- {
- key: 'secrets',
- name: 'Secrets',
- steps: ['Enabling a Secrets Engine', 'Adding a secret'],
- selected: false,
- show: true,
- disabled: false,
- requiredPermissions: {
- 'sys/mounts/example': ['update'],
- },
- },
- {
- key: 'authentication',
- name: 'Authentication',
- steps: ['Enabling an Auth Method', 'Managing your Auth Method'],
- selected: false,
- show: true,
- disabled: false,
- requiredPermissions: {
- 'sys/auth': ['read'],
- 'sys/auth/foo': ['update', 'sudo'],
- },
- },
- {
- key: 'policies',
- name: 'Policies',
- steps: [
- 'Choosing a policy type',
- 'Creating a policy',
- 'Deleting your policy',
- 'Other types of policies',
- ],
- selected: false,
- show: true,
- disabled: false,
- requiredPermissions: {
- 'sys/policies/acl': ['list'],
- },
- },
- {
- key: 'replication',
- name: 'Replication',
- steps: ['Setting up replication', 'Your cluster information'],
- selected: false,
- show: true,
- disabled: false,
- requiredPermissions: {
- 'sys/replication/performance/primary/enable': ['update'],
- 'sys/replication/dr/primary/enable': ['update'],
- },
- },
- {
- key: 'tools',
- name: 'Tools',
- steps: ['Wrapping data', 'Lookup wrapped data', 'Rewrapping your data', 'Unwrapping your data'],
- selected: false,
- show: true,
- disabled: false,
- requiredPermissions: {
- 'sys/wrapping/wrap': ['update'],
- 'sys/wrapping/lookup': ['update'],
- 'sys/wrapping/unwrap': ['update'],
- 'sys/wrapping/rewrap': ['update'],
- },
- },
- ];
- }),
-
- showReplication: or('version.hasPerfReplication', 'version.hasDRReplication'),
-
- selectedFeatures: computed('allFeatures.@each.selected', function () {
- return this.allFeatures.filter((feature) => feature.selected).map((feature) => feature.key);
- }),
-
- cannotStartWizard: not('selectedFeatures.length'),
-
- actions: {
- saveFeatures() {
- const wizard = this.wizard;
- wizard.saveFeatures(this.selectedFeatures);
- wizard.transitionTutorialMachine('active.select', 'CONTINUE');
- },
- },
-});
diff --git a/ui/app/components/wizard/mounts-wizard.js b/ui/app/components/wizard/mounts-wizard.js
deleted file mode 100644
index e1ae26cf6d9a..000000000000
--- a/ui/app/components/wizard/mounts-wizard.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { service } from '@ember/service';
-import { alias, equal } from '@ember/object/computed';
-import Component from '@ember/component';
-import { computed } from '@ember/object';
-import { mountableEngines } from 'vault/helpers/mountable-secret-engines';
-import { methods } from 'vault/helpers/mountable-auth-methods';
-import { supportedSecretBackends } from 'vault/helpers/supported-secret-backends';
-const supportedSecrets = supportedSecretBackends();
-import { supportedAuthBackends } from 'vault/helpers/supported-auth-backends';
-const supportedAuth = supportedAuthBackends();
-
-export default Component.extend({
- wizard: service(),
- featureState: alias('wizard.featureState'),
- currentState: alias('wizard.currentState'),
- currentMachine: alias('wizard.currentMachine'),
- mountSubtype: alias('wizard.componentState'),
- fullNextStep: alias('wizard.nextStep'),
- nextFeature: alias('wizard.nextFeature'),
- nextStep: computed('fullNextStep', function () {
- return this.fullNextStep.split('.').lastObject;
- }),
- needsConnection: equal('mountSubtype', 'database'),
- needsEncryption: equal('mountSubtype', 'transit'),
- stepComponent: alias('wizard.stepComponent'),
- detailsComponent: computed('currentMachine', 'mountSubtype', function () {
- const suffix = this.currentMachine === 'secrets' ? 'engine' : 'method';
- return this.mountSubtype ? `wizard/${this.mountSubtype}-${suffix}` : null;
- }),
- isSupported: computed('currentMachine', 'mountSubtype', function () {
- if (this.currentMachine === 'secrets') {
- return supportedSecrets.includes(this.mountSubtype);
- } else {
- return supportedAuth.includes(this.mountSubtype);
- }
- }),
- mountName: computed('currentMachine', 'mountSubtype', function () {
- if (this.currentMachine === 'secrets') {
- const secret = mountableEngines().find((engine) => {
- return engine.type === this.mountSubtype;
- });
- if (secret) {
- return secret.displayName;
- }
- } else {
- var auth = methods().find((method) => {
- return method.type === this.mountSubtype;
- });
- if (auth) {
- return auth.displayName;
- }
- }
- return null;
- }),
- actionText: computed('mountSubtype', function () {
- switch (this.mountSubtype) {
- case 'aws':
- return 'Generate credential';
- case 'ssh':
- return 'Sign keys';
- case 'pki':
- return 'Generate certificate';
- default:
- return null;
- }
- }),
-
- onAdvance() {},
- onRepeat() {},
- onReset() {},
- onDone() {},
-});
diff --git a/ui/app/components/wizard/secrets-keymgmt.js b/ui/app/components/wizard/secrets-keymgmt.js
deleted file mode 100644
index e17b3f80f54a..000000000000
--- a/ui/app/components/wizard/secrets-keymgmt.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import Component from '@glimmer/component';
-
-export default class WizardSecretsKeymgmtComponent extends Component {
- get headerText() {
- return {
- provider: 'Creating a provider',
- displayProvider: 'Distributing a key',
- distribute: 'Creating a key',
- }[this.args.featureState];
- }
-
- get body() {
- return {
- provider: 'This process connects an external provider to Vault. You will need its credentials.',
- displayProvider: 'A key can now be created and distributed to this destination.',
- distribute: 'This process creates a key and distributes it to your provider.',
- }[this.args.featureState];
- }
-
- get instructions() {
- return {
- provider: 'Enter your provider details and click “Create provider“.',
- displayProvider: 'Click “Distribute key” in the toolbar.',
- distribute: 'Enter your key details and click “Distribute key”.',
- }[this.args.featureState];
- }
-}
diff --git a/ui/app/helpers/wizard-constants.js b/ui/app/helpers/wizard-constants.js
deleted file mode 100644
index 0b9321f957df..000000000000
--- a/ui/app/helpers/wizard-constants.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import TutorialMachineConfig from 'vault/machines/tutorial-machine';
-import SecretsMachineConfig from 'vault/machines/secrets-machine';
-import PoliciesMachineConfig from 'vault/machines/policies-machine';
-import ReplicationMachineConfig from 'vault/machines/replication-machine';
-import ToolsMachineConfig from 'vault/machines/tools-machine';
-import AuthMachineConfig from 'vault/machines/auth-machine';
-
-export const STORAGE_KEYS = {
- TUTORIAL_STATE: 'vault:ui-tutorial-state',
- FEATURE_LIST: 'vault:ui-feature-list',
- FEATURE_STATE: 'vault:ui-feature-state',
- FEATURE_STATE_HISTORY: 'vault:ui-feature-state-history',
- COMPLETED_FEATURES: 'vault:ui-completed-list',
- COMPONENT_STATE: 'vault:ui-component-state',
- RESUME_URL: 'vault:ui-tutorial-resume-url',
- RESUME_ROUTE: 'vault:ui-tutorial-resume-route',
-};
-
-export const MACHINES = {
- tutorial: TutorialMachineConfig,
- secrets: SecretsMachineConfig,
- policies: PoliciesMachineConfig,
- replication: ReplicationMachineConfig,
- tools: ToolsMachineConfig,
- authentication: AuthMachineConfig,
-};
-
-export const DEFAULTS = {
- currentState: null,
- featureList: null,
- featureState: null,
- currentMachine: null,
- tutorialComponent: null,
- featureComponent: null,
- stepComponent: null,
- detailsComponent: null,
- componentState: null,
- nextFeature: null,
- nextStep: null,
- featureMachineHistory: null,
-};
-
-export const FEATURE_MACHINE_STEPS = {
- secrets: {
- encryption: 5,
- secret: {
- list: 4,
- secret: 5,
- },
- role: 7,
- provider: 8,
- },
- policies: 5,
- replication: 2,
- tools: 8,
- authentication: 4,
-};
-
-export const INIT_STEPS = ['setup', 'save', 'unseal', 'login'];
-
-export const FEATURE_MACHINE_TIME = {
- secrets: 7,
- policies: 5,
- replication: 5,
- tools: 8,
- authentication: 5,
-};
diff --git a/ui/app/machines/auth-machine.js b/ui/app/machines/auth-machine.js
deleted file mode 100644
index a77f7d7ef7cd..000000000000
--- a/ui/app/machines/auth-machine.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-export default {
- key: 'auth',
- initial: 'idle',
- on: {
- RESET: 'idle',
- DONE: 'complete',
- },
- states: {
- idle: {
- onEntry: [
- { type: 'routeTransition', params: ['vault.cluster.settings.auth.enable'] },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/auth-idle' },
- ],
- on: {
- CONTINUE: 'enable',
- },
- },
- enable: {
- onEntry: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/auth-enable' },
- ],
- on: {
- CONTINUE: 'config',
- },
- },
- config: {
- onEntry: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/auth-config' },
- ],
- on: {
- CONTINUE: 'details',
- },
- },
- details: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/auth-details' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'complete',
- },
- },
- complete: {
- onEntry: ['completeFeature'],
- },
- },
-};
diff --git a/ui/app/machines/policies-machine.js b/ui/app/machines/policies-machine.js
deleted file mode 100644
index c24736310476..000000000000
--- a/ui/app/machines/policies-machine.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-export default {
- key: 'policies',
- initial: 'idle',
- states: {
- idle: {
- onEntry: [
- { type: 'routeTransition', params: ['vault.cluster.policies.index', 'acl'] },
- { type: 'render', level: 'feature', component: 'wizard/policies-intro' },
- ],
- on: {
- CONTINUE: 'create',
- },
- },
- create: {
- on: {
- CONTINUE: 'details',
- },
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/policies-create' }],
- },
- details: {
- on: {
- CONTINUE: 'delete',
- },
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/policies-details' }],
- },
- delete: {
- on: {
- CONTINUE: 'others',
- },
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/policies-delete' }],
- },
- others: {
- on: {
- CONTINUE: 'complete',
- },
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/policies-others' }],
- },
- complete: {
- onEntry: ['completeFeature'],
- },
- },
-};
diff --git a/ui/app/machines/replication-machine.js b/ui/app/machines/replication-machine.js
deleted file mode 100644
index 4b95e70f7806..000000000000
--- a/ui/app/machines/replication-machine.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-export default {
- key: 'replication',
- initial: 'setup',
- states: {
- setup: {
- on: {
- ENABLEREPLICATION: 'details',
- },
- onEntry: [
- { type: 'routeTransition', params: ['vault.cluster.replication'] },
- { type: 'render', level: 'feature', component: 'wizard/replication-setup' },
- ],
- },
- details: {
- on: {
- CONTINUE: 'complete',
- },
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/replication-details' }],
- },
- complete: {
- onEntry: ['completeFeature'],
- },
- },
-};
diff --git a/ui/app/machines/secrets-machine.js b/ui/app/machines/secrets-machine.js
deleted file mode 100644
index b47ce124e62b..000000000000
--- a/ui/app/machines/secrets-machine.js
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { supportedSecretBackends } from 'vault/helpers/supported-secret-backends';
-const supportedBackends = supportedSecretBackends();
-
-export default {
- key: 'secrets',
- initial: 'idle',
- on: {
- RESET: 'idle',
- DONE: 'complete',
- ERROR: 'error',
- },
- states: {
- idle: {
- onEntry: [
- { type: 'routeTransition', params: ['vault.cluster.settings.mount-secret-backend'] },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/secrets-idle' },
- ],
- on: {
- CONTINUE: 'enable',
- },
- },
- enable: {
- onEntry: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/secrets-enable' },
- ],
- on: {
- CONTINUE: {
- details: { cond: (type) => supportedBackends.includes(type) },
- list: { cond: (type) => !supportedBackends.includes(type) },
- },
- },
- },
- details: {
- onEntry: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/secrets-details' },
- ],
- on: {
- CONTINUE: {
- connection: {
- cond: (type) => type === 'database',
- },
- role: {
- cond: (type) => ['pki', 'aws', 'ssh'].includes(type),
- },
- secret: {
- cond: (type) => ['kv'].includes(type),
- },
- encryption: {
- cond: (type) => type === 'transit',
- },
- provider: {
- cond: (type) => type === 'keymgmt',
- },
- },
- },
- },
- connection: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-connection' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'displayConnection',
- },
- },
- encryption: {
- onEntry: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/secrets-encryption' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- credentials: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-credentials' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- role: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-role' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'displayRole',
- },
- },
- displayRole: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-display-role' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'credentials',
- },
- },
- displayConnection: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-connection-show' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'displayRoleDatabase',
- },
- },
- displayRoleDatabase: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-display-database-role' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- secret: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-secret' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- provider: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-keymgmt' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'displayProvider',
- },
- },
- displayProvider: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-keymgmt' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'distribute',
- },
- },
- distribute: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-keymgmt' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- display: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-display' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- REPEAT: {
- connection: {
- cond: (type) => type === 'database',
- actions: [{ type: 'routeTransition', params: ['vault.cluster.secrets.backend.create-root'] }],
- },
- role: {
- cond: (type) => ['pki', 'aws', 'ssh'].includes(type),
- actions: [{ type: 'routeTransition', params: ['vault.cluster.secrets.backend.create-root'] }],
- },
- secret: {
- cond: (type) => ['kv'].includes(type),
- actions: [{ type: 'routeTransition', params: ['vault.cluster.secrets.backend.create-root'] }],
- },
- encryption: {
- cond: (type) => type === 'transit',
- actions: [{ type: 'routeTransition', params: ['vault.cluster.secrets.backend.create-root'] }],
- },
- provider: {
- cond: (type) => type === 'keymgmt',
- actions: [
- {
- type: 'routeTransition',
- params: [
- 'vault.cluster.secrets.backend.create-root',
- { queryParams: { itemType: 'provider' } },
- ],
- },
- ],
- },
- },
- },
- },
- list: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'display',
- },
- },
- error: {
- onEntry: [
- { type: 'render', level: 'step', component: 'wizard/tutorial-error' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- on: {
- CONTINUE: 'complete',
- },
- },
- complete: {
- onEntry: ['completeFeature'],
- },
- },
-};
diff --git a/ui/app/machines/tools-machine.js b/ui/app/machines/tools-machine.js
deleted file mode 100644
index 9c76ad8b797f..000000000000
--- a/ui/app/machines/tools-machine.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-export default {
- key: 'tools',
- initial: 'wrap',
- states: {
- wrap: {
- onEntry: [
- { type: 'routeTransition', params: ['vault.cluster.tools'] },
- { type: 'render', level: 'feature', component: 'wizard/tools-wrap' },
- ],
- on: {
- CONTINUE: 'wrapped',
- },
- },
- wrapped: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-wrapped' }],
- on: {
- LOOKUP: 'lookup',
- },
- },
- lookup: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-lookup' }],
- on: {
- CONTINUE: 'info',
- },
- },
- info: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-info' }],
- on: {
- REWRAP: 'rewrap',
- },
- },
- rewrap: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-rewrap' }],
- on: {
- CONTINUE: 'rewrapped',
- },
- },
- rewrapped: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-rewrapped' }],
- on: {
- UNWRAP: 'unwrap',
- },
- },
- unwrap: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-unwrap' }],
- on: {
- CONTINUE: 'unwrapped',
- },
- },
- unwrapped: {
- onEntry: [{ type: 'render', level: 'feature', component: 'wizard/tools-unwrapped' }],
- on: {
- CONTINUE: 'complete',
- },
- },
- complete: {
- onEntry: ['completeFeature'],
- },
- },
-};
diff --git a/ui/app/machines/tutorial-machine.js b/ui/app/machines/tutorial-machine.js
deleted file mode 100644
index 03e8eddf8bef..000000000000
--- a/ui/app/machines/tutorial-machine.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-export default {
- key: 'tutorial',
- initial: 'idle',
- on: {
- DISMISS: 'dismissed',
- DONE: 'complete',
- PAUSE: 'paused',
- },
- states: {
- init: {
- key: 'init',
- initial: 'idle',
- on: { INITDONE: 'active.select' },
- onEntry: [
- 'showTutorialAlways',
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-idle' },
- { type: 'render', level: 'feature', component: null },
- ],
- onExit: ['showTutorialWhenAuthenticated', 'clearFeatureData'],
- states: {
- idle: {
- on: {
- START: 'active.setup',
- SAVE: 'active.save',
- UNSEAL: 'active.unseal',
- LOGIN: 'active.login',
- },
- },
- active: {
- onEntry: { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- states: {
- setup: {
- on: { TOSAVE: 'save' },
- onEntry: { type: 'render', level: 'feature', component: 'wizard/init-setup' },
- },
- save: {
- on: {
- TOUNSEAL: 'unseal',
- TOLOGIN: 'login',
- },
- onEntry: { type: 'render', level: 'feature', component: 'wizard/init-save-keys' },
- },
- unseal: {
- on: { TOLOGIN: 'login' },
- onEntry: { type: 'render', level: 'feature', component: 'wizard/init-unseal' },
- },
- login: {
- onEntry: { type: 'render', level: 'feature', component: 'wizard/init-login' },
- },
- },
- },
- },
- },
- active: {
- key: 'feature',
- initial: 'select',
- onEntry: { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- states: {
- select: {
- on: {
- CONTINUE: 'feature',
- },
- onEntry: { type: 'render', level: 'feature', component: 'wizard/features-selection' },
- },
- feature: {},
- },
- },
- idle: {
- on: {
- INIT: 'init.idle',
- AUTH: 'active.select',
- CONTINUE: 'active',
- },
- onEntry: [
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-idle' },
- ],
- },
- dismissed: {
- onEntry: [
- { type: 'render', level: 'tutorial', component: null },
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- 'handleDismissed',
- ],
- },
- paused: {
- on: {
- CONTINUE: 'active.feature',
- },
- onEntry: [
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-paused' },
- 'handlePaused',
- ],
- onExit: ['handleResume'],
- },
- complete: {
- onEntry: [
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-complete' },
- ],
- },
- },
-};
diff --git a/ui/app/services/wizard.js b/ui/app/services/wizard.js
deleted file mode 100644
index 8f34e1aa3b0f..000000000000
--- a/ui/app/services/wizard.js
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { next } from '@ember/runloop';
-import { typeOf } from '@ember/utils';
-import Service, { inject as service } from '@ember/service';
-import { Machine } from 'xstate';
-import { capitalize } from '@ember/string';
-
-import getStorage from 'vault/lib/token-storage';
-import { STORAGE_KEYS, DEFAULTS, MACHINES } from 'vault/helpers/wizard-constants';
-import { addToArray } from 'vault/helpers/add-to-array';
-const {
- TUTORIAL_STATE,
- COMPONENT_STATE,
- FEATURE_STATE,
- FEATURE_LIST,
- FEATURE_STATE_HISTORY,
- COMPLETED_FEATURES,
- RESUME_URL,
- RESUME_ROUTE,
-} = STORAGE_KEYS;
-const TutorialMachine = Machine(MACHINES.tutorial);
-let FeatureMachine = null;
-
-export default Service.extend(DEFAULTS, {
- router: service(),
- showWhenUnauthenticated: false,
- featureMachineHistory: null,
- init() {
- this._super(...arguments);
- this.initializeMachines();
- },
-
- initializeMachines() {
- if (!this.storageHasKey(TUTORIAL_STATE)) {
- const state = TutorialMachine.initialState;
- this.saveState('currentState', state.value);
- this.saveExtState(TUTORIAL_STATE, state.value);
- }
- this.saveState('currentState', this.getExtState(TUTORIAL_STATE));
- if (this.storageHasKey(COMPONENT_STATE)) {
- this.set('componentState', this.getExtState(COMPONENT_STATE));
- }
- const stateNodes = TutorialMachine.getStateNodes(this.currentState);
- this.executeActions(
- stateNodes.reduce((acc, node) => acc.concat(node.onEntry), []),
- null,
- 'tutorial'
- );
-
- if (this.storageHasKey(FEATURE_LIST)) {
- this.set('featureList', this.getExtState(FEATURE_LIST));
- if (this.storageHasKey(FEATURE_STATE_HISTORY)) {
- this.set('featureMachineHistory', this.getExtState(FEATURE_STATE_HISTORY));
- }
- this.saveState(
- 'featureState',
- this.getExtState(FEATURE_STATE) || (FeatureMachine ? FeatureMachine.initialState : null)
- );
- this.saveExtState(FEATURE_STATE, this.featureState);
- this.buildFeatureMachine();
- }
- },
-
- clearFeatureData() {
- const storage = this.storage();
- // empty storage
- [FEATURE_LIST, FEATURE_STATE, FEATURE_STATE_HISTORY, COMPLETED_FEATURES].forEach((key) =>
- storage.removeItem(key)
- );
-
- this.set('currentMachine', null);
- this.set('featureMachineHistory', null);
- this.set('featureState', null);
- this.set('featureList', null);
- },
-
- restartGuide() {
- this.clearFeatureData();
- const storage = this.storage();
- // empty storage
- [TUTORIAL_STATE, COMPONENT_STATE, RESUME_URL, RESUME_ROUTE].forEach((key) => storage.removeItem(key));
- // reset wizard state
- this.setProperties(DEFAULTS);
- // restart machines from blank state
- this.initializeMachines();
- // progress machine to 'active.select'
- this.transitionTutorialMachine('idle', 'AUTH');
- },
-
- saveFeatureHistory(state) {
- if (
- this.getCompletedFeatures().length === 0 &&
- this.featureMachineHistory === null &&
- (state === 'idle' || state === 'wrap')
- ) {
- const newHistory = [state];
- this.set('featureMachineHistory', newHistory);
- } else {
- if (this.featureMachineHistory) {
- if (!this.featureMachineHistory.includes(state)) {
- const newHistory = addToArray(this.featureMachineHistory, state);
- this.set('featureMachineHistory', newHistory);
- } else {
- //we're repeating steps
- const stepIndex = this.featureMachineHistory.indexOf(state);
- const newHistory = this.featureMachineHistory.splice(0, stepIndex + 1);
- this.set('featureMachineHistory', newHistory);
- }
- }
- }
- if (this.featureMachineHistory) {
- this.saveExtState(FEATURE_STATE_HISTORY, this.featureMachineHistory);
- }
- },
-
- saveState(stateType, state) {
- if (state.value) {
- state = state.value;
- }
- let stateKey = '';
- while (typeOf(state) === 'object') {
- const newState = Object.keys(state);
- stateKey += newState + '.';
- state = state[newState];
- }
- stateKey += state;
- this.set(stateType, stateKey);
- if (stateType === 'featureState') {
- //only track progress if we are on the first step of the first feature
- this.saveFeatureHistory(state);
- }
- },
-
- transitionTutorialMachine(currentState, event, extendedState) {
- if (extendedState) {
- this.set('componentState', extendedState);
- this.saveExtState(COMPONENT_STATE, extendedState);
- }
- const { actions, value } = TutorialMachine.transition(currentState, event);
- this.saveState('currentState', value);
- this.saveExtState(TUTORIAL_STATE, this.currentState);
- this.executeActions(actions, event, 'tutorial');
- },
-
- transitionFeatureMachine(currentState, event, extendedState) {
- if (!FeatureMachine || !this.currentState.includes('active')) {
- return;
- }
- if (extendedState) {
- this.set('componentState', extendedState);
- this.saveExtState(COMPONENT_STATE, extendedState);
- }
-
- const { actions, value } = FeatureMachine.transition(currentState, event, this.componentState);
- this.saveState('featureState', value);
- this.saveExtState(FEATURE_STATE, value);
- this.executeActions(actions, event, 'feature');
- // if all features were completed, the FeatureMachine gets nulled
- // out and won't exist here as there is no next step
- if (FeatureMachine) {
- let next;
- if (this.currentMachine === 'secrets' && value === 'display') {
- next = FeatureMachine.transition(value, 'REPEAT', this.componentState);
- } else {
- next = FeatureMachine.transition(value, 'CONTINUE', this.componentState);
- }
- this.saveState('nextStep', next.value);
- }
- },
-
- saveExtState(key, value) {
- this.storage().setItem(key, value);
- },
-
- getExtState(key) {
- return this.storage().getItem(key);
- },
-
- storageHasKey(key) {
- return Boolean(this.getExtState(key));
- },
-
- executeActions(actions, event, machineType) {
- let transitionURL;
- let expectedRouteName;
- const router = this.router;
-
- for (const action of actions) {
- let type = action;
- if (action.type) {
- type = action.type;
- }
- switch (type) {
- case 'render':
- this.set(`${action.level}Component`, action.component);
- break;
- case 'routeTransition':
- expectedRouteName = action.params[0];
- transitionURL = router.urlFor(...action.params).replace(/^\/ui/, '');
- next(() => {
- router.transitionTo(...action.params);
- });
- break;
- case 'saveFeatures':
- this.saveFeatures(event.features);
- break;
- case 'completeFeature':
- this.completeFeature();
- break;
- case 'handleDismissed':
- this.handleDismissed();
- break;
- case 'handlePaused':
- this.handlePaused();
- return;
- case 'handleResume':
- this.handleResume();
- break;
- case 'showTutorialWhenAuthenticated':
- this.set('showWhenUnauthenticated', false);
- break;
- case 'showTutorialAlways':
- this.set('showWhenUnauthenticated', true);
- break;
- case 'clearFeatureData':
- this.clearFeatureData();
- break;
- case 'continueFeature':
- this.transitionFeatureMachine(this.featureState, 'CONTINUE', this.componentState);
- break;
- default:
- break;
- }
- }
- if (machineType === 'tutorial') {
- return;
- }
- // if we're transitioning in the actions, we want that url,
- // else we want the URL we land on in didTransition in the
- // application route - we'll notify the application route to
- // update the route
- if (transitionURL) {
- this.set('expectedURL', transitionURL);
- this.set('expectedRouteName', expectedRouteName);
- this.set('setURLAfterTransition', false);
- } else {
- this.set('setURLAfterTransition', true);
- }
- },
-
- handlePaused() {
- const expected = this.expectedURL;
- if (expected) {
- this.saveExtState(RESUME_URL, this.expectedURL);
- this.saveExtState(RESUME_ROUTE, this.expectedRouteName);
- }
- },
-
- handleResume() {
- const resumeURL = this.storage().getItem(RESUME_URL);
- if (!resumeURL) {
- return;
- }
- this.router
- .transitionTo(resumeURL)
- .followRedirects()
- .then(() => {
- this.set('expectedRouteName', this.storage().getItem(RESUME_ROUTE));
- this.set('expectedURL', resumeURL);
- this.initializeMachines();
- this.storage().removeItem(RESUME_URL);
- });
- },
-
- handleDismissed() {
- this.storage().removeItem(FEATURE_STATE);
- this.storage().removeItem(FEATURE_LIST);
- this.storage().removeItem(FEATURE_STATE_HISTORY);
- this.storage().removeItem(COMPONENT_STATE);
- },
-
- saveFeatures(features) {
- this.set('featureList', features);
- this.saveExtState(FEATURE_LIST, this.featureList);
- this.buildFeatureMachine();
- },
-
- buildFeatureMachine() {
- if (this.featureList === null) {
- return;
- }
- this.startFeature();
- const nextFeature = this.featureList.length > 1 ? capitalize(this.featureList[1]) : 'Finish';
- this.set('nextFeature', nextFeature);
- let next;
- if (this.currentMachine === 'secrets' && this.featureState === 'display') {
- next = FeatureMachine.transition(this.featureState, 'REPEAT', this.componentState);
- } else {
- next = FeatureMachine.transition(this.featureState, 'CONTINUE', this.componentState);
- }
- this.saveState('nextStep', next.value);
- const stateNodes = FeatureMachine.getStateNodes(this.featureState);
- this.executeActions(
- stateNodes.reduce((acc, node) => acc.concat(node.onEntry), []),
- null,
- 'feature'
- );
- },
-
- startFeature() {
- const FeatureMachineConfig = MACHINES[this.featureList[0]];
- FeatureMachine = Machine(FeatureMachineConfig);
- this.set('currentMachine', this.featureList[0]);
- if (this.storageHasKey(FEATURE_STATE)) {
- this.saveState('featureState', this.getExtState(FEATURE_STATE));
- } else {
- this.saveState('featureState', FeatureMachine.initialState);
- }
- this.saveExtState(FEATURE_STATE, this.featureState);
- },
-
- getCompletedFeatures() {
- if (this.storageHasKey(COMPLETED_FEATURES)) {
- return this.getExtState(COMPLETED_FEATURES);
- }
- return [];
- },
-
- completeFeature() {
- const features = this.featureList;
- const done = features.shift();
- if (!this.getExtState(COMPLETED_FEATURES)) {
- const completed = [];
- completed.push(done);
- this.saveExtState(COMPLETED_FEATURES, completed);
- } else {
- this.saveExtState(COMPLETED_FEATURES, addToArray(this.getExtState(COMPLETED_FEATURES), done));
- }
-
- this.saveExtState(FEATURE_LIST, features.length ? features : null);
- this.storage().removeItem(FEATURE_STATE);
- if (this.featureMachineHistory) {
- this.set('featureMachineHistory', []);
- this.saveExtState(FEATURE_STATE_HISTORY, []);
- }
- if (features.length > 0) {
- this.buildFeatureMachine();
- } else {
- this.storage().removeItem(FEATURE_LIST);
- FeatureMachine = null;
- this.transitionTutorialMachine(this.currentState, 'DONE');
- }
- },
-
- storage() {
- return getStorage();
- },
-});
diff --git a/ui/app/styles/components/features-selection.scss b/ui/app/styles/components/features-selection.scss
deleted file mode 100644
index aa12b31dbb58..000000000000
--- a/ui/app/styles/components/features-selection.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-.feature-header {
- font-size: $size-6;
- font-weight: $font-weight-semibold;
- color: $grey;
-}
-
-.access-information {
- display: flex;
- padding: $spacing-12 0px;
- font-size: $size-8;
-}
-
-.feature-box {
- box-shadow: $box-shadow;
- border-radius: $radius;
- padding: $spacing-12;
- margin: $spacing-12 0;
-
- &.is-active {
- box-shadow: 0 0 0 1px $grey-light;
- }
-
- &.is-disabled {
- background-color: $ui-gray-010;
- color: $ui-gray-300;
- }
-}
-
-.feature-box label {
- font-weight: $font-weight-semibold;
- padding-left: $spacing-8;
-
- &::before {
- top: 3px;
- }
-
- &::after {
- top: 5px;
- }
-}
-
-.feature-steps {
- font-size: $size-8;
- color: $grey;
- line-height: 1.5;
- margin-left: $spacing-24;
- margin-top: $spacing-8;
-
- li::before {
- // bullet
- content: '\2022';
- position: relative;
- right: $size-11;
- }
-}
diff --git a/ui/app/styles/components/popup-menu.scss b/ui/app/styles/components/popup-menu.scss
index 96c15608255b..2e279cd112e7 100644
--- a/ui/app/styles/components/popup-menu.scss
+++ b/ui/app/styles/components/popup-menu.scss
@@ -140,8 +140,7 @@
}
.list-item-row,
-.info-table-row,
-.wizard-dismiss-menu {
+.info-table-row {
.popup-menu-trigger {
height: 2.5rem;
min-width: 0;
diff --git a/ui/app/styles/components/ui-wizard.scss b/ui/app/styles/components/ui-wizard.scss
deleted file mode 100644
index fc1af827d826..000000000000
--- a/ui/app/styles/components/ui-wizard.scss
+++ /dev/null
@@ -1,250 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-// This file is not being used. https://github.com/hashicorp/vault/pull/19220
-.ui-wizard-container {
- display: flex;
- flex-direction: column;
- flex-grow: 1;
-}
-
-.ui-wizard-container .app-content {
- display: flex;
- flex-direction: column;
- flex-grow: 1;
- transition: padding $speed;
- will-change: padding;
- padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom)
- env(safe-area-inset-left);
-}
-
-.ui-wizard-container .app-content.wizard-open {
- padding-right: 324px;
- padding-right: calc(324px + env(safe-area-inset-right));
-
- @include until($mobile) {
- padding-right: 0;
- padding-bottom: 50vh;
- }
-}
-
-.ui-wizard {
- z-index: 300;
- padding: $spacing-18;
- width: $drawer-width;
- background: $white;
- box-shadow: $box-shadow, $box-shadow-highest;
- position: fixed;
- right: $size-8;
- bottom: $size-8;
- top: calc(#{4rem} + #{$size-8});
- overflow: auto;
-
- p {
- line-height: 1.33;
- }
-
- @include until($mobile) {
- box-shadow: $box-shadow, 0 0 20px rgba($black, 0.24);
- bottom: 0;
- left: 0;
- right: 0;
- top: 50%;
- width: auto;
- }
-
- .doc-link {
- margin-top: $spacing-18;
- display: block;
- }
-
- pre code {
- background: $ui-gray-050;
- margin: $spacing-12 0;
- }
-}
-
-.wizard-header {
- border-bottom: $light-border;
- padding: 0 $spacing-20 $spacing-12 0;
- margin: $spacing-20 0;
- position: relative;
-
- @include until($mobile) {
- margin-top: 0;
- padding-top: 0;
- }
-}
-
-.wizard-dismiss-menu {
- position: absolute;
- right: 0;
- top: -$size-11;
- z-index: 10;
-}
-
-.ui-wizard.collapsed {
- animation: drop-fade-above $speed-slow;
- color: $white;
- background: $black;
- bottom: auto;
- box-shadow: $box-shadow-middle;
- height: auto;
- min-height: 0;
- padding-bottom: $spacing-4;
- position: fixed;
- right: $size-8;
- top: calc(#{4rem} + #{$size-8});
-
- @include until($mobile) {
- box-shadow: $box-shadow, 0 0 20px rgba($black, 0.24);
- bottom: 0;
- left: 0;
- right: 0;
- top: auto;
- width: auto;
- }
-
- .title {
- color: $white;
- }
-
- .wizard-header {
- border-bottom: 0;
- margin: 0 0 $spacing-8;
- padding-top: 0;
- }
-
- .wizard-dismiss-menu {
- svg {
- color: $white;
- }
-
- &:hover svg {
- color: $black;
- }
- }
-}
-
-.wizard-divider-box {
- background: none;
- box-shadow: none;
- margin: $spacing-12 0 0;
- padding: 0 $spacing-12;
- border-top: solid 1px $white;
- border-image: linear-gradient(to right, $grey-dark, $grey) 1;
- border-width: 1px 0 0;
- button {
- font-size: $size-7;
- font-weight: $font-weight-semibold;
- }
-}
-
-.wizard-section:last-of-type {
- margin-bottom: $spacing-18;
-}
-
-.wizard-section button:not(:last-of-type) {
- margin-bottom: $spacing-8;
-}
-
-.wizard-details {
- padding-top: $spacing-20;
- margin-top: $spacing-20;
- border-top: 1px solid $grey-light;
-}
-
-.wizard-instructions {
- margin: $spacing-20 0;
-}
-
-.selection-summary {
- display: flex;
- align-items: center;
- width: 100%;
- justify-content: space-between;
-}
-
-.time-estimate {
- align-items: center;
- color: $grey;
- display: flex;
- font-size: 12px;
-}
-
-.progress-container {
- align-items: center;
- background: $white;
- bottom: 0;
- height: $wizard-progress-bar-height;
- display: flex;
- left: 0;
- padding: 0;
- position: absolute;
- right: 0;
- transform: translateY(50%);
- width: 100%;
-}
-
-.progress-bar {
- background: $ui-gray-050;
- box-shadow: inset $box-link-shadow;
- display: flex;
- height: $wizard-progress-bar-height;
- position: relative;
- width: 100%;
-}
-
-.feature-progress-container {
- align-items: center;
- flex: 1 0 auto;
- padding: 0 ($wizard-progress-check-size / 4);
- position: relative;
-}
-
-.feature-progress {
- background: $green;
- border-radius: $wizard-progress-bar-height;
- height: $wizard-progress-bar-height;
-}
-
-.feature-check {
- height: $wizard-progress-check-size;
- left: $wizard-progress-check-size / 2;
- position: absolute;
- top: 50%;
- transform: translate(-50%, -50%);
- width: $wizard-progress-check-size;
- z-index: 10;
- margin: 0 !important;
-}
-
-.feature-progress-container .feature-check {
- left: 100%;
-}
-
-.feature-progress-container:first-child {
- padding-left: 0;
-
- .progress-bar,
- .feature-progress {
- border-radius: $wizard-progress-bar-height 0 0 $wizard-progress-bar-height;
- }
-}
-
-.feature-progress-container:first-child:last-child {
- .progress-bar,
- .feature-progress {
- border-radius: $wizard-progress-bar-height;
- }
-}
-
-.incomplete-check {
- color: $ui-gray-200;
-}
-
-.completed-check {
- color: $green;
-}
diff --git a/ui/app/styles/core.scss b/ui/app/styles/core.scss
index 702b795ab535..84882a7bd34c 100644
--- a/ui/app/styles/core.scss
+++ b/ui/app/styles/core.scss
@@ -66,7 +66,6 @@
@import './components/doc-link';
@import './components/empty-state-component';
@import './components/env-banner';
-@import './components/features-selection';
@import './components/form-section';
@import './components/global-flash';
@import './components/icon';
@@ -112,5 +111,4 @@
@import './components/transit-card';
@import './components/ttl-picker';
@import './components/unseal-warning';
-// @import './components/ui-wizard'; // remove, see PR https://github.com/hashicorp/vault/pull/19220
@import './components/vault-loading';
diff --git a/ui/app/styles/utils/_size_variables.scss b/ui/app/styles/utils/_size_variables.scss
index 97d1a5320339..aaeb869d43c2 100644
--- a/ui/app/styles/utils/_size_variables.scss
+++ b/ui/app/styles/utils/_size_variables.scss
@@ -52,8 +52,3 @@ $easing: ease-out;
/* Nav */
$drawer-width: 300px;
-
-// Wizard
-// Not being used: https://github.com/hashicorp/vault/pull/19220
-// $wizard-progress-bar-height: 6px;
-// $wizard-progress-check-size: 16px;
diff --git a/ui/app/templates/components/ui-wizard.hbs b/ui/app/templates/components/ui-wizard.hbs
deleted file mode 100644
index 6a5e155bd448..000000000000
--- a/ui/app/templates/components/ui-wizard.hbs
+++ /dev/null
@@ -1,25 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
- {{yield}}
-
-{{#if this.featureComponent}}
- {{#component
- (if this.shouldRender this.tutorialComponent) onAdvance=(action "advanceWizard") onDismiss=(action "dismissWizard")
- }}
- {{component
- this.featureComponent
- componentState=this.componentState
- nextFeature=this.nextFeature
- nextStep=this.nextStep
- onDone=(action "finishFeature")
- onRepeat=(action "repeatStep")
- onReset=(action "resetFeature")
- onAdvance=(action "advanceFeature")
- currentRouteName=this.currentRouteName
- }}
- {{/component}}
-{{/if}}
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard-content.hbs b/ui/app/templates/components/wizard-content.hbs
deleted file mode 100644
index 61a50dd5c4bd..000000000000
--- a/ui/app/templates/components/wizard-content.hbs
+++ /dev/null
@@ -1,39 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-{{yield}}
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard-progress.hbs b/ui/app/templates/components/wizard-progress.hbs
deleted file mode 100644
index d3730e236e16..000000000000
--- a/ui/app/templates/components/wizard-progress.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
- {{#each @progressBar as |bar|}}
-
-
-
-
- {{#if bar.showIcon}}
-
- {{/if}}
-
- {{/each}}
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard-section.hbs b/ui/app/templates/components/wizard-section.hbs
deleted file mode 100644
index 50f4dfdf060c..000000000000
--- a/ui/app/templates/components/wizard-section.hbs
+++ /dev/null
@@ -1,26 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- {{#if @headerIcon}}
-
- {{/if}}
- {{@headerText}}
-
- {{yield}}
- {{#if @instructions}}
-
-
What to do
-
{{@instructions}}
-
- {{/if}}
- {{#if @docText}}
-
-
- {{@docText}}
-
- {{/if}}
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/alicloud-engine.hbs b/ui/app/templates/components/wizard/alicloud-engine.hbs
deleted file mode 100644
index 89b7d9c3fb40..000000000000
--- a/ui/app/templates/components/wizard/alicloud-engine.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The AliCloud Secrets Engine dynamically generates AliCloud access tokens based on RAM policies, or AliCloud STS
- credentials based on RAM roles. This generally makes working with AliCloud easier, since it does not involve clicking in
- the web UI. The AliCloud access tokens are time-based and are automatically revoked when the Vault lease expires. STS
- credentials are short-lived, non-renewable, and expire on their own.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/alicloud-method.hbs b/ui/app/templates/components/wizard/alicloud-method.hbs
deleted file mode 100644
index f8890ec6f036..000000000000
--- a/ui/app/templates/components/wizard/alicloud-method.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The AliCloud Auth Method provides an automated mechanism to retrieve a Vault token for AliCloud entities.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/approle-method.hbs b/ui/app/templates/components/wizard/approle-method.hbs
deleted file mode 100644
index 3d5cbdd3164c..000000000000
--- a/ui/app/templates/components/wizard/approle-method.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Approle Auth Method allows machines or apps to authenticate with Vault-defined roles. The open design of AppRole
- enables a varied set of workflows and configurations to handle large numbers of apps. This Auth Method is oriented to
- automated workflows (machines and services), and is less useful for human operators.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-config.hbs b/ui/app/templates/components/wizard/auth-config.hbs
deleted file mode 100644
index 02035cf47b55..000000000000
--- a/ui/app/templates/components/wizard/auth-config.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- You can update your new Auth Method configuration here.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-details.hbs b/ui/app/templates/components/wizard/auth-details.hbs
deleted file mode 100644
index f0d4757a7a39..000000000000
--- a/ui/app/templates/components/wizard/auth-details.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Fantastic! Now you're ready to use your new
- {{@mountName}}
- Auth Method!
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-edit.hbs b/ui/app/templates/components/wizard/auth-edit.hbs
deleted file mode 100644
index 305c0f853c23..000000000000
--- a/ui/app/templates/components/wizard/auth-edit.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- You can update your new Auth Method configuration here.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-enable.hbs b/ui/app/templates/components/wizard/auth-enable.hbs
deleted file mode 100644
index d5f0e8238276..000000000000
--- a/ui/app/templates/components/wizard/auth-enable.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Great! Now you can customize this method with a name and fill out general configuration under "Method Options".
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-idle.hbs b/ui/app/templates/components/wizard/auth-idle.hbs
deleted file mode 100644
index ce4c61696711..000000000000
--- a/ui/app/templates/components/wizard/auth-idle.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- Controlling who can see your secrets is important. Let's set up a an Authentication Method for you and your team to use.
- Don't worry, you can add more methods later.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/auth-list.hbs b/ui/app/templates/components/wizard/auth-list.hbs
deleted file mode 100644
index 47e776eb6e98..000000000000
--- a/ui/app/templates/components/wizard/auth-list.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- Awesome! Now you can see your new Auth Method in the list.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/aws-engine.hbs b/ui/app/templates/components/wizard/aws-engine.hbs
deleted file mode 100644
index 239aba6a598f..000000000000
--- a/ui/app/templates/components/wizard/aws-engine.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The AWS Secrets Engine generates AWS access credentials dynamically based on IAM policies. This generally makes working
- with AWS IAM easier, since it does not involve clicking in the web UI. Additionally, the process is codified and mapped
- to internal Auth Methods (such as LDAP). The AWS IAM credentials are time-based and are automatically revoked when the
- Vault lease expires.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/aws-method.hbs b/ui/app/templates/components/wizard/aws-method.hbs
deleted file mode 100644
index 39a03ad6fe78..000000000000
--- a/ui/app/templates/components/wizard/aws-method.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The AWS Auth Method provides an automated mechanism to retrieve a Vault token for AWS EC2 instances and IAM principals.
- Unlike most Vault Auth Methods, this method does not require manual first-deploying, or provisioning security-sensitive
- credentials (tokens, username/password, client certificates, etc), by operators under many circumstances.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/azure-engine.hbs b/ui/app/templates/components/wizard/azure-engine.hbs
deleted file mode 100644
index 52d6b65b3c5a..000000000000
--- a/ui/app/templates/components/wizard/azure-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Azure Secrets Engine dynamically generates Azure service principals and role assignments. Vault roles can be mapped
- to one or more Azure roles, providing a simple, flexible way to manage the permissions granted to generated service
- principals.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/azure-method.hbs b/ui/app/templates/components/wizard/azure-method.hbs
deleted file mode 100644
index 3bb07bdd632a..000000000000
--- a/ui/app/templates/components/wizard/azure-method.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Azure Auth Method allows authentication against Vault using Azure Active Directory credentials.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/cert-method.hbs b/ui/app/templates/components/wizard/cert-method.hbs
deleted file mode 100644
index 76c81144cc0b..000000000000
--- a/ui/app/templates/components/wizard/cert-method.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The TLS Certificates Auth Method allows authentication using SSL/TLS client certificates which are either signed by a CA
- or self-signed. CA certificates are associated with a role.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/ch-engine.hbs b/ui/app/templates/components/wizard/ch-engine.hbs
deleted file mode 100644
index 42895655f479..000000000000
--- a/ui/app/templates/components/wizard/ch-engine.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The cubbyhole Secrets Engine is used to store arbitrary secrets within the configured physical storage for Vault
- namespaced to a token. In cubbyhole, paths are scoped per token. No token can access another token's cubbyhole. When the
- token expires, its cubbyhole is destroyed.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/consul-engine.hbs b/ui/app/templates/components/wizard/consul-engine.hbs
deleted file mode 100644
index e3efa845a870..000000000000
--- a/ui/app/templates/components/wizard/consul-engine.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Consul Secrets Engine generates Consul API tokens dynamically based on Consul ACL policies.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/database-engine.hbs b/ui/app/templates/components/wizard/database-engine.hbs
deleted file mode 100644
index 57031d266dcc..000000000000
--- a/ui/app/templates/components/wizard/database-engine.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The database Secrets Engine generates database credentials dynamically based on configured roles.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/features-selection.hbs b/ui/app/templates/components/wizard/features-selection.hbs
deleted file mode 100644
index 4d9f030c654d..000000000000
--- a/ui/app/templates/components/wizard/features-selection.hbs
+++ /dev/null
@@ -1,75 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Choosing where to go
-
-
- You did it! You now have access to your Vault and can start entering your data. We can help you get started with any of
- the options below.
-
-
- {{#if (or (has-feature "Performance Replication") (has-feature "DR Replication"))}}{{/if}}
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/gcp-engine.hbs b/ui/app/templates/components/wizard/gcp-engine.hbs
deleted file mode 100644
index ce60ae54fbbe..000000000000
--- a/ui/app/templates/components/wizard/gcp-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Google Cloud Vault Secrets Engine dynamically generates Google Cloud service account keys and OAuth tokens based on
- IAM policies. This enables users to gain access to Google Cloud resources without needing to create or manage a dedicated
- service account.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/gcp-method.hbs b/ui/app/templates/components/wizard/gcp-method.hbs
deleted file mode 100644
index 1645c2197d0d..000000000000
--- a/ui/app/templates/components/wizard/gcp-method.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The GCP Auth Method allows authentication against Vault using Google credentials.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/gcpkms-engine.hbs b/ui/app/templates/components/wizard/gcpkms-engine.hbs
deleted file mode 100644
index defc018ac922..000000000000
--- a/ui/app/templates/components/wizard/gcpkms-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Google Cloud KMS Vault Secrets Engine provides encryption and key management via Google Cloud KMS. It supports
- management of keys, including creation, rotation, and revocation, as well as encrypting and decrypting data with managed
- keys. This enables management of KMS keys through Vault's policies and IAM system.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/github-method.hbs b/ui/app/templates/components/wizard/github-method.hbs
deleted file mode 100644
index 708eda4516a3..000000000000
--- a/ui/app/templates/components/wizard/github-method.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Github Auth Method can be used to authenticate with Vault using a GitHub personal access token.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/init-login.hbs b/ui/app/templates/components/wizard/init-login.hbs
deleted file mode 100644
index 66cf830931ea..000000000000
--- a/ui/app/templates/components/wizard/init-login.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- Vault is unsealed, but we still need to authenticate using the Initial Root Token that was generated. We recommend
- setting up an Authentication Method such as Username & Password for regular use, and only using a root token for
- initial setup or for emergencies.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/init-save-keys.hbs b/ui/app/templates/components/wizard/init-save-keys.hbs
deleted file mode 100644
index 2d13ae76b836..000000000000
--- a/ui/app/templates/components/wizard/init-save-keys.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- Now that Vault is initialized, you'll want to save your root token and root key portions in a safe place. Distribute
- your keys to responsible people on your team. If these keys are lost, you may not be able to access your data again.
- Keep them safe!
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/init-setup.hbs b/ui/app/templates/components/wizard/init-setup.hbs
deleted file mode 100644
index cc60b2143b4c..000000000000
--- a/ui/app/templates/components/wizard/init-setup.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- This is the very first step of setting up a Vault server. Vault comes with an important security feature called a
- "seal", which lets you shut down and secure your Vault installation if there is a security breach. This is the default
- state of Vault, so it is currently sealed since it was just installed. To unseal the vault, you will need to provide
- the key(s) that you generate here.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/init-unseal.hbs b/ui/app/templates/components/wizard/init-unseal.hbs
deleted file mode 100644
index ae6d8bd572db..000000000000
--- a/ui/app/templates/components/wizard/init-unseal.hbs
+++ /dev/null
@@ -1,30 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- Now we will provide the
- {{pluralize this.componentState.threshold "key"}}
- that you copied or downloaded to unseal the vault so that we can get started using it. You'll need
- {{pluralize this.componentState.threshold "key"}}
- total, and
- {{#let (pluralize this.componentState.progress "key" without-count=true) as |word|}}
- {{if
- (eq word "key")
- (concat this.componentState.progress " " word " has ")
- (concat this.componentState.progress " " word " have ")
- }}
- {{/let}}
- already been provided. Please provide
- {{pluralize (dec this.componentState.progress this.componentState.threshold) "more key"}}
- to unseal.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/keymgmt-engine.hbs b/ui/app/templates/components/wizard/keymgmt-engine.hbs
deleted file mode 100644
index e32d00213d61..000000000000
--- a/ui/app/templates/components/wizard/keymgmt-engine.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Key Management is a secrets engine that allows key generation, lifecycle management, and secure distribution of
- cryptographic keys into cloud key management services.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/kmip-engine.hbs b/ui/app/templates/components/wizard/kmip-engine.hbs
deleted file mode 100644
index 6b5398e8affa..000000000000
--- a/ui/app/templates/components/wizard/kmip-engine.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The KMIP secrets engine allows Vault to act as a KMIP server provider and handle the lifecycle of KMIP managed objects.
- KMIP, which stands for Key Management Interoperability Protocol, is a standardized protocol that allows services and
- applications to perform cryptographic operations without having to manage cryptographic material, otherwise known as
- manage objects, by delegating its storage and lifecycle to a key management server.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/kubernetes-method.hbs b/ui/app/templates/components/wizard/kubernetes-method.hbs
deleted file mode 100644
index 75eab8ad860a..000000000000
--- a/ui/app/templates/components/wizard/kubernetes-method.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Kubernetes Auth Method can be used to authenticate with Vault using a Kubernetes Service Account Token. This method
- of authentication makes it easy to introduce a Vault token into a Kubernetes Pod.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/kv-engine.hbs b/ui/app/templates/components/wizard/kv-engine.hbs
deleted file mode 100644
index f0bc73e03ee2..000000000000
--- a/ui/app/templates/components/wizard/kv-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The KV Secrets Engine is used to store arbitrary secrets within the configured physical storage for Vault. This backend
- can be run in one of two modes. It can be a generic key-value store that stores one value for a key. Versioning can be
- enabled and a configurable number of versions for each key will be stored.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/ldap-method.hbs b/ui/app/templates/components/wizard/ldap-method.hbs
deleted file mode 100644
index d0c9b942ac8d..000000000000
--- a/ui/app/templates/components/wizard/ldap-method.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The LDAP Auth Method allows authentication using an existing LDAP server and user/password credentials. This allows Vault
- to be integrated into environments using LDAP without duplicating the user/pass configuration in multiple places.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/mount-info.hbs b/ui/app/templates/components/wizard/mount-info.hbs
deleted file mode 100644
index f329c5e0b261..000000000000
--- a/ui/app/templates/components/wizard/mount-info.hbs
+++ /dev/null
@@ -1,34 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
-
-
-
- {{titleize this.model.methodType}}
-
-
-
- {{#if (eq this.section "configuration")}}
-
- {{/if}}
-
-
-
-{{component (concat "auth-method/" this.section) model=this.model}}
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/mounts-wizard.hbs b/ui/app/templates/components/wizard/mounts-wizard.hbs
deleted file mode 100644
index 8642aae74406..000000000000
--- a/ui/app/templates/components/wizard/mounts-wizard.hbs
+++ /dev/null
@@ -1,25 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
- {{component
- this.stepComponent
- mountSubtype=this.mountSubtype
- mountName=this.mountName
- actionText=this.actionText
- nextFeature=this.nextFeature
- nextStep=this.nextStep
- featureState=this.wizard.featureState
- needsConnection=this.needsConnection
- needsEncryption=this.needsEncryption
- isSupported=this.isSupported
- onDone=this.onDone
- onAdvance=this.onAdvance
- onRepeat=this.onRepeat
- onReset=this.onReset
- class="wizard-step"
- }}
- {{component this.detailsComponent onAdvance=this.onAdvance onRepeat=this.onRepeat class="wizard-details"}}
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/nomad-engine.hbs b/ui/app/templates/components/wizard/nomad-engine.hbs
deleted file mode 100644
index fa8a8e762215..000000000000
--- a/ui/app/templates/components/wizard/nomad-engine.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Nomad secret backend for Vault generates Nomad API tokens dynamically based on pre-existing Nomad ACL policies.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/okta-method.hbs b/ui/app/templates/components/wizard/okta-method.hbs
deleted file mode 100644
index 03a3878358e2..000000000000
--- a/ui/app/templates/components/wizard/okta-method.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Okta Auth Method allows authentication using Okta and user/password credentials. This allows Vault to be integrated
- into environments using Okta.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/pki-engine.hbs b/ui/app/templates/components/wizard/pki-engine.hbs
deleted file mode 100644
index bfd9629cbff2..000000000000
--- a/ui/app/templates/components/wizard/pki-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The PKI Secrets Engine generates dynamic X.509 certificates. With this Secrets Engine, services can get certificates
- without going through the usual manual process of generating a private key and CSR, submitting to a CA, and waiting for a
- verification and signing process to complete.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/policies-create.hbs b/ui/app/templates/components/wizard/policies-create.hbs
deleted file mode 100644
index d7b6c94bd40c..000000000000
--- a/ui/app/templates/components/wizard/policies-create.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Let's use "my-new-policy
" for your policy name. Copy the policy below to try it out:
-
- path "secret/foo" { capabilities = ["read"] }
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/policies-delete.hbs b/ui/app/templates/components/wizard/policies-delete.hbs
deleted file mode 100644
index 5e51d841f67d..000000000000
--- a/ui/app/templates/components/wizard/policies-delete.hbs
+++ /dev/null
@@ -1,22 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- {{#if (eq @currentRouteName "vault.cluster.policies.index")}}
- You can delete your test policy by clicking the "..." icon to the right of the policy name.
- {{else}}
- You can delete your test policy by clicking "Delete" in the toolbar.
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/policies-details.hbs b/ui/app/templates/components/wizard/policies-details.hbs
deleted file mode 100644
index abd78ca1f3f9..000000000000
--- a/ui/app/templates/components/wizard/policies-details.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Good job! Here you can see your new policy. If you'd like to edit it, you'd just click "Edit policy" in the toolbar.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/policies-intro.hbs b/ui/app/templates/components/wizard/policies-intro.hbs
deleted file mode 100644
index 478c5cd4b4f9..000000000000
--- a/ui/app/templates/components/wizard/policies-intro.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Policies in Vault are a way for you to control what data can be accessed, including things like creating new secrets,
- listing users, or even entire Vault features.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/policies-others.hbs b/ui/app/templates/components/wizard/policies-others.hbs
deleted file mode 100644
index 22c0e8a30919..000000000000
--- a/ui/app/templates/components/wizard/policies-others.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- Good! Now you're ready to go writing your own policies. We only explored ACL policies, but there are two other types of
- policies available to Enterprise customers that might be what you need. RGP (Role Governing Policies) are policies tied
- to particular tokens, entities, or groups. EGP (Endpoint Governing Policies) are tied to specific paths instead of
- tokens.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/rabbitmq-engine.hbs b/ui/app/templates/components/wizard/rabbitmq-engine.hbs
deleted file mode 100644
index c731f1e06156..000000000000
--- a/ui/app/templates/components/wizard/rabbitmq-engine.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The RabbitMQ Secrets Engine generates user credentials dynamically based on configured permissions and virtual hosts.
- This means that services that need to access a virtual host no longer need to hardcode credentials.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/radius-method.hbs b/ui/app/templates/components/wizard/radius-method.hbs
deleted file mode 100644
index 472357b1a16e..000000000000
--- a/ui/app/templates/components/wizard/radius-method.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The RADIUS Auth Method allows users to authenticate with Vault using an existing RADIUS server that accepts the PAP
- authentication scheme.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/replication-setup.hbs b/ui/app/templates/components/wizard/replication-setup.hbs
deleted file mode 100644
index 71185ad2b4d0..000000000000
--- a/ui/app/templates/components/wizard/replication-setup.hbs
+++ /dev/null
@@ -1,37 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Vault has two kinds of replication, each for a different purpose. Do you want to keep a backup of your data, or are you
- more interested in speed of access?
-
-
-
-
- Learn: Setting Up Performance Replication
-
-
-
-
- Learn: Setting up Disaster Recovery
-
-
-
-
-
- A cluster is set as either a primary or secondary. The primary cluster is authoritative, and is the only cluster
- allowed to perform actions that write to the underlying data storage, such as modifying policies or secrets. Secondary
- clusters can service all other operations and forward any writes to the primary cluster.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-connection-show.hbs b/ui/app/templates/components/wizard/secrets-connection-show.hbs
deleted file mode 100644
index 510de20ba1c5..000000000000
--- a/ui/app/templates/components/wizard/secrets-connection-show.hbs
+++ /dev/null
@@ -1,10 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Now that we've setup a database let's connect a role.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-connection.hbs b/ui/app/templates/components/wizard/secrets-connection.hbs
deleted file mode 100644
index 7a7a3dda80c6..000000000000
--- a/ui/app/templates/components/wizard/secrets-connection.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Here you can specify the details of your database plugin and include any root rotation statements.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-credentials.hbs b/ui/app/templates/components/wizard/secrets-credentials.hbs
deleted file mode 100644
index 3415408b5379..000000000000
--- a/ui/app/templates/components/wizard/secrets-credentials.hbs
+++ /dev/null
@@ -1,10 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Enter details and generate your credential.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-details.hbs b/ui/app/templates/components/wizard/secrets-details.hbs
deleted file mode 100644
index c83ae970e24e..000000000000
--- a/ui/app/templates/components/wizard/secrets-details.hbs
+++ /dev/null
@@ -1,22 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- {{#if (eq @mountSubtype "keymgmt")}}
- This secrets engine manages keys and distributes them to external destinations. We recommend that you create a provider
- to which you can distribute keys.
- {{else}}
- {{#if @needsEncryption}}
- The Transit Secrets Engine uses encryption keys to provide "encryption as a service". Click on "Create Encryption
- Key" at the top to create one.
- {{/if}}
- {{#if @needsConnection}}
- Now that the engine has been mounted, let’s connect a
- {{@mountSubtype}}.
- {{/if}}
- {{/if}}
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-display-database-role.hbs b/ui/app/templates/components/wizard/secrets-display-database-role.hbs
deleted file mode 100644
index b17c2ab98ba8..000000000000
--- a/ui/app/templates/components/wizard/secrets-display-database-role.hbs
+++ /dev/null
@@ -1,10 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Roles are what generate database credentials. They can be static or dynamic.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-display-role.hbs b/ui/app/templates/components/wizard/secrets-display-role.hbs
deleted file mode 100644
index 276da158c839..000000000000
--- a/ui/app/templates/components/wizard/secrets-display-role.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- With our new role, we can generate a credential that has the same permissions as that role. Click on "Generate
- credentials" links at the top of the page.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-display.hbs b/ui/app/templates/components/wizard/secrets-display.hbs
deleted file mode 100644
index 5b50135828df..000000000000
--- a/ui/app/templates/components/wizard/secrets-display.hbs
+++ /dev/null
@@ -1,50 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{#if @isSupported}}
-
-
- {{#if (eq @mountSubtype "keymgmt")}}
- Your key and your provider have been created and connected. From here, you can click the key name to view the key
- You’re now ready to start using the secrets engine.
- {{else if @actionText}}
- Here is your generated credential. As you can see, we can only show the credential once, so you'll want to be sure to
- save it. If you need another credential in the future, just come back and generate a new one.
- {{else}}
- Well done!
- {{/if}}
- You're now ready to start using your new
- {{@mountName}}
- Secrets Engine.
-
-
-{{else}}
-
-
- Here you can see all the details of your new engine. This can be useful to get information for things like TTL or Seal
- Wrap settings.
-
-
-{{/if}}
-
-
- {{#if @isSupported}}
-
- {{/if}}
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-enable.hbs b/ui/app/templates/components/wizard/secrets-enable.hbs
deleted file mode 100644
index c22f9660ae10..000000000000
--- a/ui/app/templates/components/wizard/secrets-enable.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- Good choice! Now you can customize your engine with a name and description that makes sense for your team, as well as
- options for replication and caching.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-encryption.hbs b/ui/app/templates/components/wizard/secrets-encryption.hbs
deleted file mode 100644
index d1c21ebc0d5a..000000000000
--- a/ui/app/templates/components/wizard/secrets-encryption.hbs
+++ /dev/null
@@ -1,10 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Enter the details about your encryption key and save it.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-idle.hbs b/ui/app/templates/components/wizard/secrets-idle.hbs
deleted file mode 100644
index fdde9d39a317..000000000000
--- a/ui/app/templates/components/wizard/secrets-idle.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- Vault is all about managing secrets, so let's set up your first Secrets Engine. You can use a static engine to store your
- secrets locally in Vault, or connect to a cloud backend with one of the dynamic engines.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-keymgmt.hbs b/ui/app/templates/components/wizard/secrets-keymgmt.hbs
deleted file mode 100644
index cb42b1c41718..000000000000
--- a/ui/app/templates/components/wizard/secrets-keymgmt.hbs
+++ /dev/null
@@ -1,10 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- {{this.body}}
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-list.hbs b/ui/app/templates/components/wizard/secrets-list.hbs
deleted file mode 100644
index c8358374412a..000000000000
--- a/ui/app/templates/components/wizard/secrets-list.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- This engine isn't fully supported in the Vault UI yet, but you can view and edit the configuration and use the Vault Web
- REPL to interact with the engine just like you would on the command-line.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-role.hbs b/ui/app/templates/components/wizard/secrets-role.hbs
deleted file mode 100644
index 5216d82d6673..000000000000
--- a/ui/app/templates/components/wizard/secrets-role.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- A role grants permissions that specify what an identity can and cannot do. A role is typically shared among many users
- who are then granted credentials with that are granted the policy permissions.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/secrets-secret.hbs b/ui/app/templates/components/wizard/secrets-secret.hbs
deleted file mode 100644
index 9db1e3e6ddfc..000000000000
--- a/ui/app/templates/components/wizard/secrets-secret.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
- Here you can specify the path of your secret and include the key/value pairs to include.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/ssh-engine.hbs b/ui/app/templates/components/wizard/ssh-engine.hbs
deleted file mode 100644
index 141262e96e54..000000000000
--- a/ui/app/templates/components/wizard/ssh-engine.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Vault SSH Secrets Engine provides secure authentication and authorization for access to machines via the SSH
- protocol. The Vault SSH Secrets Engine helps manage access to machine infrastructure, providing several ways to issue SSH
- credentials.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-info.hbs b/ui/app/templates/components/wizard/tools-info.hbs
deleted file mode 100644
index e7f1f782f61d..000000000000
--- a/ui/app/templates/components/wizard/tools-info.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Good job! You can see some basic information about your wrapped data, including the expiration time. Next up, we'll
- take the token you still have in your clipboard and rewrap it to keep it active and extend that expiration time.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-lookup.hbs b/ui/app/templates/components/wizard/tools-lookup.hbs
deleted file mode 100644
index bdd92d21457a..000000000000
--- a/ui/app/templates/components/wizard/tools-lookup.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Lookup lets you see information about your token without unwrapping it or changing it. Paste your token here and click
- "Lookup". If you find that your data didn't copy for some reason, you can always go back and do it again.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-rewrap.hbs b/ui/app/templates/components/wizard/tools-rewrap.hbs
deleted file mode 100644
index 9d502660f0c8..000000000000
--- a/ui/app/templates/components/wizard/tools-rewrap.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- You can rewrap your data to rotate the token, but it will still have the same creation time and TTL. Don't worry, the
- new token will still have the same data.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-rewrapped.hbs b/ui/app/templates/components/wizard/tools-rewrapped.hbs
deleted file mode 100644
index 2fcf6b6eaafb..000000000000
--- a/ui/app/templates/components/wizard/tools-rewrapped.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- It's a subtle transformation, but your old token has been revoked and this new one has taken its place.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-unwrap.hbs b/ui/app/templates/components/wizard/tools-unwrap.hbs
deleted file mode 100644
index 171e32d8eb56..000000000000
--- a/ui/app/templates/components/wizard/tools-unwrap.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- We saved this step for the end because unwrapping the token will revoke it, so we can only do this once.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-unwrapped.hbs b/ui/app/templates/components/wizard/tools-unwrapped.hbs
deleted file mode 100644
index 557562821806..000000000000
--- a/ui/app/templates/components/wizard/tools-unwrapped.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
-
- Here you can see that your data survived intact. These tools are mostly handy for applications to use, but if you ever
- do need to wrap data or handle the wrapped token, now you know how.
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-wrap.hbs b/ui/app/templates/components/wizard/tools-wrap.hbs
deleted file mode 100644
index 5615af98bcba..000000000000
--- a/ui/app/templates/components/wizard/tools-wrap.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Vault provides several ways to create or wrap data, and manage it from there. Here you can wrap a token (or anything
- you like) in JSON format. Give it a try.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tools-wrapped.hbs b/ui/app/templates/components/wizard/tools-wrapped.hbs
deleted file mode 100644
index c85730bfbbae..000000000000
--- a/ui/app/templates/components/wizard/tools-wrapped.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable quotes }}
-
-
-
- Your data is now encrypted. You can recover the data using the token on this page, but be careful because if you lose
- the token you won't be able to retrieve your data! We will use this token for the next few steps.
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/totp-engine.hbs b/ui/app/templates/components/wizard/totp-engine.hbs
deleted file mode 100644
index 29bd08dc080f..000000000000
--- a/ui/app/templates/components/wizard/totp-engine.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The TOTP Secrets Engine generates time-based credentials according to the TOTP standard.
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/transit-engine.hbs b/ui/app/templates/components/wizard/transit-engine.hbs
deleted file mode 100644
index 67b280092237..000000000000
--- a/ui/app/templates/components/wizard/transit-engine.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Transit Secrets Engine handles cryptographic functions on data in-transit. Vault doesn't store the data sent to the
- Secrets Engine. It can also be viewed as "cryptography as a service" or "encryption as a service".
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tutorial-active.hbs b/ui/app/templates/components/wizard/tutorial-active.hbs
deleted file mode 100644
index 64ac0317eeb2..000000000000
--- a/ui/app/templates/components/wizard/tutorial-active.hbs
+++ /dev/null
@@ -1,7 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-{{! template-lint-disable no-yield-only }}
-{{yield}}
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tutorial-complete.hbs b/ui/app/templates/components/wizard/tutorial-complete.hbs
deleted file mode 100644
index 229a2afd385a..000000000000
--- a/ui/app/templates/components/wizard/tutorial-complete.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- We hope you enjoyed using Vault. You can get back to the guide in the user menu in the upper right.
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tutorial-error.hbs b/ui/app/templates/components/wizard/tutorial-error.hbs
deleted file mode 100644
index 0c4e99176554..000000000000
--- a/ui/app/templates/components/wizard/tutorial-error.hbs
+++ /dev/null
@@ -1,16 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Something went wrong and you can't complete this step.
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tutorial-idle.hbs b/ui/app/templates/components/wizard/tutorial-idle.hbs
deleted file mode 100644
index 5b3c89be69b8..000000000000
--- a/ui/app/templates/components/wizard/tutorial-idle.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Want a tour? Our helpful guide will introduce you to the Vault Web UI.
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/tutorial-paused.hbs b/ui/app/templates/components/wizard/tutorial-paused.hbs
deleted file mode 100644
index a3b00ad9939a..000000000000
--- a/ui/app/templates/components/wizard/tutorial-paused.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- Feel free to explore Vault. Click below to get back to the guide or close this window.
-
-
-
-
\ No newline at end of file
diff --git a/ui/app/templates/components/wizard/userpass-method.hbs b/ui/app/templates/components/wizard/userpass-method.hbs
deleted file mode 100644
index de1b80d843e3..000000000000
--- a/ui/app/templates/components/wizard/userpass-method.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-{{!
- Copyright (c) HashiCorp, Inc.
- SPDX-License-Identifier: BUSL-1.1
-~}}
-
-
-
- The Username & Password Auth Method allows users to authenticate with Vault using a username and password combination.
-
-
\ No newline at end of file
diff --git a/ui/codemods.log b/ui/codemods.log
deleted file mode 100644
index b71a455d478e..000000000000
--- a/ui/codemods.log
+++ /dev/null
@@ -1,281 +0,0 @@
-2021-12-03T16:39:04.778Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.959Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-show-transformation.hbs
-2021-12-03T16:39:04.989Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/namespace-picker.hbs
-2021-12-03T16:39:05.089Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/wizard/init-unseal.hbs
-2021-12-03T16:39:05.091Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/wizard/init-unseal.hbs
-2021-12-03T16:39:05.091Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/wizard/init-unseal.hbs
-2021-12-03T16:39:05.115Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/wizard/mounts-wizard.hbs
-2021-12-03T16:39:05.277Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-alias/alias-details.hbs
-2021-12-03T16:39:05.362Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-policies.hbs
-2021-12-03T16:39:05.366Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backends.hbs
-2021-12-03T16:39:05.283Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-alias/alias-details.hbs
-2021-12-03T16:39:05.350Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/control-groups.hbs
-2021-12-03T16:39:05.422Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policy/edit.hbs
-2021-12-03T16:39:05.456Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/create.hbs
-2021-12-03T16:39:05.456Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/create.hbs
-2021-12-03T16:39:05.456Z [warn] WARNING: {{toggle-action}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/create.hbs
-2021-12-03T16:39:05.558Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.558Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.558Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.559Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.559Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.559Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.559Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policies/index.hbs
-2021-12-03T16:39:05.589Z [warn] WARNING: {{uppercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/policy/show.hbs
-2021-12-03T16:39:04.961Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-show-transformation.hbs
-2021-12-03T16:39:04.961Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-show-transformation.hbs
-2021-12-03T16:39:04.961Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-show-transformation.hbs
-2021-12-03T16:39:04.961Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-show-transformation.hbs
-2021-12-03T16:39:05.026Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-edit-form.hbs
-2021-12-03T16:39:05.116Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-role-edit.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-role-edit.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-role-edit.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-role-edit.hbs
-2021-12-03T16:39:05.132Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-role-edit.hbs
-2021-12-03T16:39:05.275Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-template-edit.hbs
-2021-12-03T16:39:05.276Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-template-edit.hbs
-2021-12-03T16:39:05.276Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-template-edit.hbs
-2021-12-03T16:39:05.276Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-template-edit.hbs
-2021-12-03T16:39:05.276Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transform-template-edit.hbs
-2021-12-03T16:39:05.346Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.346Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.347Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-create.hbs
-2021-12-03T16:39:05.449Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/wizard-content.hbs
-2021-12-03T16:39:05.553Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-show.hbs
-2021-12-03T16:39:05.553Z [warn] WARNING: {{humanize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-show.hbs
-2021-12-03T16:39:05.553Z [warn] WARNING: {{date-from-now}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-show.hbs
-2021-12-03T16:39:05.554Z [warn] WARNING: {{date-from-now}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-show.hbs
-2021-12-03T16:39:05.554Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-show.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/history.hbs
-2021-12-03T16:39:05.753Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/config.hbs
-2021-12-03T16:39:05.753Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/config.hbs
-2021-12-03T16:39:05.754Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/config.hbs
-2021-12-03T16:39:05.754Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/clients/config.hbs
-2021-12-03T16:39:05.756Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/console/log-json.hbs
-2021-12-03T16:39:05.756Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/console/log-json.hbs
-2021-12-03T16:39:05.761Z [warn] WARNING: {{multi-line-join}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/console/log-list.hbs
-2021-12-03T16:39:05.793Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-edit.hbs
-2021-12-03T16:39:05.793Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-edit.hbs
-2021-12-03T16:39:05.793Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-form-edit.hbs
-2021-12-03T16:39:05.832Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-method/configuration.hbs
-2021-12-03T16:39:05.833Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-method/configuration.hbs
-2021-12-03T16:39:05.833Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-method/configuration.hbs
-2021-12-03T16:39:05.833Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-method/configuration.hbs
-2021-12-03T16:39:05.833Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-method/configuration.hbs
-2021-12-03T16:39:05.845Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/edit-form.hbs
-2021-12-03T16:39:05.973Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.973Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.973Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.973Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.974Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.974Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.974Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/entity-nav.hbs
-2021-12-03T16:39:05.982Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-aliases.hbs
-2021-12-03T16:39:06.007Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-details.hbs
-2021-12-03T16:39:06.007Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-details.hbs
-2021-12-03T16:39:06.031Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-groups.hbs
-2021-12-03T16:39:06.048Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-metadata.hbs
-2021-12-03T16:39:06.048Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-metadata.hbs
-2021-12-03T16:39:06.048Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-metadata.hbs
-2021-12-03T16:39:06.061Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-members.hbs
-2021-12-03T16:39:06.062Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-members.hbs
-2021-12-03T16:39:06.075Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/item-parent-groups.hbs
-2021-12-03T16:39:05.367Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backends.hbs
-2021-12-03T16:39:05.493Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/index.hbs
-2021-12-03T16:39:05.493Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/index.hbs
-2021-12-03T16:39:05.494Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/index.hbs
-2021-12-03T16:39:05.494Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/index.hbs
-2021-12-03T16:39:05.494Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/index.hbs
-2021-12-03T16:39:05.526Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/show.hbs
-2021-12-03T16:39:05.527Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/show.hbs
-2021-12-03T16:39:05.558Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/tools/tool.hbs
-2021-12-03T16:39:05.586Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/list.hbs
-2021-12-03T16:39:05.587Z [warn] WARNING: {{compact}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/list.hbs
-2021-12-03T16:39:05.640Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/show.hbs
-2021-12-03T16:39:05.640Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/show.hbs
-2021-12-03T16:39:05.640Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/show.hbs
-2021-12-03T16:39:05.640Z [warn] WARNING: {{date-from-now}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/leases/show.hbs
-2021-12-03T16:39:05.651Z [warn] WARNING: {{section-tabs}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/method/section.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/configuration.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/configuration.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/configuration.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{and}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/configuration.hbs
-2021-12-03T16:39:05.679Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/configuration.hbs
-2021-12-03T16:39:05.884Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.885Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.885Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.885Z [warn] WARNING: {{compact}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.885Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.885Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/list.hbs
-2021-12-03T16:39:05.912Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/overview.hbs
-2021-12-03T16:39:05.968Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/sign.hbs
-2021-12-03T16:39:05.968Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/sign.hbs
-2021-12-03T16:39:05.968Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/sign.hbs
-2021-12-03T16:39:05.991Z [warn] WARNING: {{humanize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/transit-actions-layout.hbs
-2021-12-03T16:39:06.040Z [warn] WARNING: {{reverse}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/versions.hbs
-2021-12-03T16:39:06.040Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/versions.hbs
-2021-12-03T16:39:06.052Z [warn] WARNING: {{section-tabs}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/settings/auth/configure.hbs
-2021-12-03T16:39:06.117Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/roles.hbs
-2021-12-03T16:39:06.117Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/roles.hbs
-2021-12-03T16:39:06.118Z [warn] WARNING: {{compact}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/roles.hbs
-2021-12-03T16:39:06.118Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/secrets/backend/roles.hbs
-2021-12-03T16:39:06.144Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/index.hbs
-2021-12-03T16:39:06.148Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/index.hbs
-2021-12-03T16:39:06.148Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/index.hbs
-2021-12-03T16:39:06.160Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/show.hbs
-2021-12-03T16:39:06.161Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/show.hbs
-2021-12-03T16:39:06.161Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/show.hbs
-2021-12-03T16:39:06.166Z [warn] WARNING: {{lowercase}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/access/identity/aliases/add.hbs
-2021-12-03T16:39:06.170Z [warn] WARNING: {{auth-config-form/options}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/settings/auth/configure/section.hbs
-2021-12-03T16:39:06.170Z [warn] WARNING: {{auth-config-form/config}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/settings/auth/configure/section.hbs
-2021-12-03T16:39:04.788Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.788Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.788Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.788Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.788Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/alphabet-edit.hbs
-2021-12-03T16:39:04.798Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault.hbs
-2021-12-03T16:39:04.798Z [warn] WARNING: {{changelog-url-for}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault.hbs
-2021-12-03T16:39:04.889Z [warn] WARNING: {{date-from-now}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-info.hbs
-2021-12-03T16:39:04.890Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-info.hbs
-2021-12-03T16:39:04.956Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-jwt.hbs
-2021-12-03T16:39:05.130Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.130Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.131Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.132Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/config-pki-ca.hbs
-2021-12-03T16:39:05.352Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/cluster-info.hbs
-2021-12-03T16:39:05.352Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/cluster-info.hbs
-2021-12-03T16:39:05.352Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/cluster-info.hbs
-2021-12-03T16:39:05.525Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-form.hbs
-2021-12-03T16:39:05.526Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-form.hbs
-2021-12-03T16:39:05.526Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/auth-form.hbs
-2021-12-03T16:39:05.771Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.771Z [warn] WARNING: {{fn}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.771Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.771Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.772Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.772Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.772Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.772Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.772Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-connection.hbs
-2021-12-03T16:39:05.781Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/file-to-array-buffer.hbs
-2021-12-03T16:39:05.781Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/file-to-array-buffer.hbs
-2021-12-03T16:39:05.805Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/control-group-success.hbs
-2021-12-03T16:39:05.805Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/control-group-success.hbs
-2021-12-03T16:39:05.805Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/control-group-success.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.881Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.882Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/form-field-from-model.hbs
-2021-12-03T16:39:05.927Z [warn] WARNING: {{format-duration}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials-database.hbs
-2021-12-03T16:39:05.927Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials-database.hbs
-2021-12-03T16:39:05.927Z [warn] WARNING: {{format-duration}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials-database.hbs
-2021-12-03T16:39:05.927Z [warn] WARNING: {{format-duration}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials-database.hbs
-2021-12-03T16:39:06.019Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.020Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generate-credentials.hbs
-2021-12-03T16:39:06.050Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generated-item.hbs
-2021-12-03T16:39:06.050Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generated-item.hbs
-2021-12-03T16:39:06.050Z [warn] WARNING: {{singularize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generated-item.hbs
-2021-12-03T16:39:06.050Z [warn] WARNING: {{singularize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generated-item.hbs
-2021-12-03T16:39:06.050Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/generated-item.hbs
-2021-12-03T16:39:06.128Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/license-banners.hbs
-2021-12-03T16:39:06.128Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/license-banners.hbs
-2021-12-03T16:39:06.128Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/license-banners.hbs
-2021-12-03T16:39:06.181Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-role-edit.hbs
-2021-12-03T16:39:06.181Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-role-edit.hbs
-2021-12-03T16:39:06.181Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-role-edit.hbs
-2021-12-03T16:39:06.182Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-role-edit.hbs
-2021-12-03T16:39:06.182Z [warn] WARNING: {{await}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/database-role-edit.hbs
-2021-12-03T16:39:06.192Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/license-info.hbs
-2021-12-03T16:39:06.192Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/license-info.hbs
-2021-12-03T16:39:04.991Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/namespace-picker.hbs
-2021-12-03T16:39:05.065Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.065Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.066Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.066Z [warn] WARNING: {{queue}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.083Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.083Z [warn] WARNING: {{not}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-backend-form.hbs
-2021-12-03T16:39:05.139Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-accessor-select.hbs
-2021-12-03T16:39:05.179Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-info.hbs
-2021-12-03T16:39:05.180Z [warn] WARNING: {{section-tabs}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/mount-info.hbs
-2021-12-03T16:39:05.249Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/not-found.hbs
-2021-12-03T16:39:05.307Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.307Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.308Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pki-cert-show.hbs
-2021-12-03T16:39:05.375Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pricing-metrics-dates.hbs
-2021-12-03T16:39:05.375Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/pricing-metrics-dates.hbs
-2021-12-03T16:39:05.426Z [warn] WARNING: {{queue}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/raft-storage-overview.hbs
-2021-12-03T16:39:05.426Z [warn] WARNING: {{queue}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/raft-storage-overview.hbs
-2021-12-03T16:39:05.517Z [warn] WARNING: {{join}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-aws-edit.hbs
-2021-12-03T16:39:05.517Z [warn] WARNING: {{join}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-aws-edit.hbs
-2021-12-03T16:39:05.517Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-aws-edit.hbs
-2021-12-03T16:39:05.517Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-aws-edit.hbs
-2021-12-03T16:39:05.518Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-aws-edit.hbs
-2021-12-03T16:39:05.578Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-ssh-edit.hbs
-2021-12-03T16:39:05.578Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-ssh-edit.hbs
-2021-12-03T16:39:05.578Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-ssh-edit.hbs
-2021-12-03T16:39:05.623Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-pki-edit.hbs
-2021-12-03T16:39:05.623Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/role-pki-edit.hbs
-2021-12-03T16:39:05.753Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-create-or-update.hbs
-2021-12-03T16:39:05.754Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-create-or-update.hbs
-2021-12-03T16:39:05.766Z [warn] WARNING: {{compute}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/raft-join.hbs
-2021-12-03T16:39:05.907Z [warn] WARNING: {{and}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-edit-toolbar.hbs
-2021-12-03T16:39:05.907Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-edit-toolbar.hbs
-2021-12-03T16:39:05.942Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-form-show.hbs
-2021-12-03T16:39:05.985Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list-header.hbs
-2021-12-03T16:39:05.985Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list-header.hbs
-2021-12-03T16:39:05.985Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list-header.hbs
-2021-12-03T16:39:06.174Z [warn] WARNING: {{date-format}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/token-expire-warning.hbs
-2021-12-03T16:39:06.228Z [warn] WARNING: {{date-from-now}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/tool-lookup.hbs
-2021-12-03T16:39:06.280Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/tool-unwrap.hbs
-2021-12-03T16:39:06.280Z [warn] WARNING: {{stringify}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/tool-unwrap.hbs
-2021-12-03T16:39:05.385Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/lookup-input.hbs
-2021-12-03T16:39:05.385Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/identity/lookup-input.hbs
-2021-12-03T16:39:05.449Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/aws-role-item.hbs
-2021-12-03T16:39:05.518Z [warn] WARNING: {{secret-query-params}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/database-list-item.hbs
-2021-12-03T16:39:05.518Z [warn] WARNING: {{secret-query-params}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/database-list-item.hbs
-2021-12-03T16:39:05.524Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/pki-cert-item.hbs
-2021-12-03T16:39:05.596Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/item.hbs
-2021-12-03T16:39:05.653Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/pki-role-item.hbs
-2021-12-03T16:39:05.691Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/transform-list-item.hbs
-2021-12-03T16:39:05.774Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/ssh-role-item.hbs
-2021-12-03T16:39:05.834Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-key-action/datakey.hbs
-2021-12-03T16:39:05.835Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-key-action/datakey.hbs
-2021-12-03T16:39:05.875Z [warn] WARNING: {{linked-block}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/secret-list/transform-transformation-item.hbs
-2021-12-03T16:39:06.019Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-key-action/export.hbs
-2021-12-03T16:39:06.021Z [warn] WARNING: {{eq}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-key-action/export.hbs
-2021-12-03T16:39:06.203Z [warn] WARNING: {{queue}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/components/transit-key-action/verify.hbs
-2021-12-03T16:39:06.307Z [warn] WARNING: {{pluralize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/init.hbs
-2021-12-03T16:39:06.307Z [warn] WARNING: {{add}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/init.hbs
-2021-12-03T16:39:06.358Z [warn] WARNING: {{capitalize}} was not converted as it has positional parameters which can't be automatically converted. Source: app/templates/vault/cluster/unseal.hbs
diff --git a/ui/package.json b/ui/package.json
index 9186f7c6b942..4bc9bdfcd332 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -175,8 +175,7 @@
"tracked-built-ins": "^3.3.0",
"typescript": "^4.9.5",
"walk-sync": "^2.0.2",
- "webpack": "5.89.0",
- "xstate": "^3.3.3"
+ "webpack": "5.89.0"
},
"resolutions": {
"ansi-html": "^0.0.8",
diff --git a/ui/tests/integration/components/features-selection-test.js b/ui/tests/integration/components/features-selection-test.js
deleted file mode 100644
index ca49cd68e953..000000000000
--- a/ui/tests/integration/components/features-selection-test.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { setupRenderingTest } from 'ember-qunit';
-import { render } from '@ember/test-helpers';
-import { create } from 'ember-cli-page-object';
-import featuresSelection from 'vault/tests/pages/components/wizard/features-selection';
-import hbs from 'htmlbars-inline-precompile';
-import Service from '@ember/service';
-
-const component = create(featuresSelection);
-
-const permissionsService = Service.extend({
- hasPermission(path) {
- // This enables the Secrets and Authentication wizard items and disables the others.
- const allowedPaths = ['sys/mounts/example', 'sys/auth', 'sys/auth/foo', 'sys/wrapping/wrap'];
- if (allowedPaths.includes(path)) {
- return true;
- }
- return false;
- },
-});
-
-module('Integration | Component | features-selection', function (hooks) {
- setupRenderingTest(hooks);
-
- hooks.beforeEach(function () {
- this.owner.register('service:permissions', permissionsService);
- });
-
- test('it disables and enables wizard items according to user permissions', async function (assert) {
- assert.expect(4);
- const enabled = { Secrets: true, Authentication: true, Policies: false, Tools: false };
- await render(hbs``);
-
- component.wizardItems.forEach((i) => {
- assert.strictEqual(
- i.hasDisabledTooltip,
- !enabled[i.text],
- 'shows a tooltip only when the wizard item is not enabled'
- );
- });
- });
-
- test('it disables the start button if no wizard items are checked', async function (assert) {
- await render(hbs``);
- assert.true(component.hasDisabledStartButton);
- });
-
- test('it enables the start button when user has permission and wizard items are checked', async function (assert) {
- await render(hbs``);
- await component.selectSecrets();
- assert.false(component.hasDisabledStartButton);
- });
-});
diff --git a/ui/tests/pages/components/wizard/features-selection.js b/ui/tests/pages/components/wizard/features-selection.js
deleted file mode 100644
index 487cc828e3bb..000000000000
--- a/ui/tests/pages/components/wizard/features-selection.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { collection, isPresent, property, clickable } from 'ember-cli-page-object';
-
-export default {
- wizardItems: collection('[data-test-select-input]', {
- hasDisabledTooltip: isPresent('[data-test-tooltip]'),
- }),
- hasDisabledStartButton: property('disabled', '[data-test-start-button]'),
- selectSecrets: clickable('[data-test-checkbox=Secrets]'),
-};
diff --git a/ui/tests/unit/machines/auth-machine-test.js b/ui/tests/unit/machines/auth-machine-test.js
deleted file mode 100644
index c5bf6531a2a8..000000000000
--- a/ui/tests/unit/machines/auth-machine-test.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { Machine } from 'xstate';
-import AuthMachineConfig from 'vault/machines/auth-machine';
-
-module('Unit | Machine | auth-machine', function () {
- const authMachine = Machine(AuthMachineConfig);
-
- const testCases = [
- {
- currentState: authMachine.initialState,
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'enable',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/auth-enable', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'config',
- actions: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/auth-config' },
- ],
- },
- },
- {
- currentState: 'config',
- event: 'CONTINUE',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/auth-details', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'details',
- event: 'RESET',
- params: null,
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.auth.enable'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/auth-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- test(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = authMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.strictEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/machines/policies-machine-test.js b/ui/tests/unit/machines/policies-machine-test.js
deleted file mode 100644
index cfffea3e377c..000000000000
--- a/ui/tests/unit/machines/policies-machine-test.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { Machine } from 'xstate';
-import PoliciesMachineConfig from 'vault/machines/policies-machine';
-
-module('Unit | Machine | policies-machine', function () {
- const policiesMachine = Machine(PoliciesMachineConfig);
-
- const testCases = [
- {
- currentState: policiesMachine.initialState,
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'create',
- actions: [{ component: 'wizard/policies-create', level: 'feature', type: 'render' }],
- },
- },
- {
- currentState: 'create',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'details',
- actions: [{ component: 'wizard/policies-details', level: 'feature', type: 'render' }],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- expectedResults: {
- value: 'delete',
- actions: [{ component: 'wizard/policies-delete', level: 'feature', type: 'render' }],
- },
- },
- {
- currentState: 'delete',
- event: 'CONTINUE',
- expectedResults: {
- value: 'others',
- actions: [{ component: 'wizard/policies-others', level: 'feature', type: 'render' }],
- },
- },
- {
- currentState: 'others',
- event: 'CONTINUE',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- test(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = policiesMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.strictEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/machines/replication-machine-test.js b/ui/tests/unit/machines/replication-machine-test.js
deleted file mode 100644
index 48bb8c27da41..000000000000
--- a/ui/tests/unit/machines/replication-machine-test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { Machine } from 'xstate';
-import ReplicationMachineConfig from 'vault/machines/replication-machine';
-
-module('Unit | Machine | replication-machine', function () {
- const replicationMachine = Machine(ReplicationMachineConfig);
-
- const testCases = [
- {
- currentState: replicationMachine.initialState,
- event: 'ENABLEREPLICATION',
- params: null,
- expectedResults: {
- value: 'details',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/replication-details' }],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- test(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = replicationMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.strictEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/machines/secrets-machine-test.js b/ui/tests/unit/machines/secrets-machine-test.js
deleted file mode 100644
index 349032220551..000000000000
--- a/ui/tests/unit/machines/secrets-machine-test.js
+++ /dev/null
@@ -1,1007 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, skip } from 'qunit';
-import { Machine } from 'xstate';
-import SecretsMachineConfig from 'vault/machines/secrets-machine';
-
-module('Unit | Machine | secrets-machine', function () {
- const secretsMachine = Machine(SecretsMachineConfig);
-
- const testCases = [
- {
- currentState: secretsMachine.initialState,
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'enable',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-enable', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'aws',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-details', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: 'aws',
- expectedResults: {
- value: 'role',
- actions: [
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'role',
- event: 'CONTINUE',
- params: 'aws',
- expectedResults: {
- value: 'displayRole',
- actions: [
- { component: 'wizard/secrets-display-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'displayRole',
- event: 'CONTINUE',
- params: 'aws',
- expectedResults: {
- value: 'credentials',
- actions: [
- { component: 'wizard/secrets-credentials', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'credentials',
- event: 'CONTINUE',
- params: 'aws',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'REPEAT',
- params: 'aws',
- expectedResults: {
- value: 'role',
- actions: [
- {
- params: ['vault.cluster.secrets.backend.create-root'],
- type: 'routeTransition',
- },
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'aws',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'aws',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'aws',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'pki',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-details', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: 'pki',
- expectedResults: {
- value: 'role',
- actions: [
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'role',
- event: 'CONTINUE',
- params: 'pki',
- expectedResults: {
- value: 'displayRole',
- actions: [
- { component: 'wizard/secrets-display-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'displayRole',
- event: 'CONTINUE',
- params: 'pki',
- expectedResults: {
- value: 'credentials',
- actions: [
- { component: 'wizard/secrets-credentials', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'credentials',
- event: 'CONTINUE',
- params: 'pki',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'REPEAT',
- params: 'pki',
- expectedResults: {
- value: 'role',
- actions: [
- {
- params: ['vault.cluster.secrets.backend.create-root'],
- type: 'routeTransition',
- },
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'pki',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'pki',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'pki',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'ssh',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-details', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: 'ssh',
- expectedResults: {
- value: 'role',
- actions: [
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'role',
- event: 'CONTINUE',
- params: 'ssh',
- expectedResults: {
- value: 'displayRole',
- actions: [
- { component: 'wizard/secrets-display-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'displayRole',
- event: 'CONTINUE',
- params: 'ssh',
- expectedResults: {
- value: 'credentials',
- actions: [
- { component: 'wizard/secrets-credentials', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'credentials',
- event: 'CONTINUE',
- params: 'ssh',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'REPEAT',
- params: 'ssh',
- expectedResults: {
- value: 'role',
- actions: [
- {
- params: ['vault.cluster.secrets.backend.create-root'],
- type: 'routeTransition',
- },
- { component: 'wizard/secrets-role', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'ssh',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'ssh',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'ssh',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'consul',
- expectedResults: {
- value: 'list',
- actions: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'consul',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'consul',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'consul',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'consul',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'database',
- expectedResults: {
- value: 'details',
- actions: [
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- { type: 'render', level: 'step', component: 'wizard/secrets-details' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'database',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'database',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'database',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'database',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'gcp',
- expectedResults: {
- value: 'list',
- actions: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'gcp',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'gcp',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'gcp',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'gcp',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'nomad',
- expectedResults: {
- value: 'list',
- actions: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'nomad',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'nomad',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'nomad',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'nomad',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'rabbitmq',
- expectedResults: {
- value: 'list',
- actions: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'rabbitmq',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'rabbitmq',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'rabbitmq',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'rabbitmq',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'totp',
- expectedResults: {
- value: 'list',
- actions: [
- { type: 'render', level: 'step', component: 'wizard/secrets-list' },
- { type: 'render', level: 'feature', component: 'wizard/mounts-wizard' },
- ],
- },
- },
- {
- currentState: 'list',
- event: 'CONTINUE',
- params: 'totp',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'totp',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'totp',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'totp',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'kv',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-details', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: 'kv',
- expectedResults: {
- value: 'secret',
- actions: [
- { component: 'wizard/secrets-secret', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'secret',
- event: 'CONTINUE',
- params: 'kv',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'REPEAT',
- params: 'kv',
- expectedResults: {
- value: 'secret',
- actions: [
- {
- params: ['vault.cluster.secrets.backend.create-root'],
- type: 'routeTransition',
- },
- { component: 'wizard/secrets-secret', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'kv',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'kv',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'kv',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'enable',
- event: 'CONTINUE',
- params: 'transit',
- expectedResults: {
- value: 'details',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-details', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'details',
- event: 'CONTINUE',
- params: 'transit',
- expectedResults: {
- value: 'encryption',
- actions: [
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-encryption', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'encryption',
- event: 'CONTINUE',
- params: 'transit',
- expectedResults: {
- value: 'display',
- actions: [
- { component: 'wizard/secrets-display', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'REPEAT',
- params: 'transit',
- expectedResults: {
- value: 'encryption',
- actions: [
- {
- params: ['vault.cluster.secrets.backend.create-root'],
- type: 'routeTransition',
- },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- { component: 'wizard/secrets-encryption', level: 'step', type: 'render' },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'RESET',
- params: 'transit',
- expectedResults: {
- value: 'idle',
- actions: [
- {
- params: ['vault.cluster.settings.mount-secret-backend'],
- type: 'routeTransition',
- },
- {
- component: 'wizard/mounts-wizard',
- level: 'feature',
- type: 'render',
- },
- {
- component: 'wizard/secrets-idle',
- level: 'step',
- type: 'render',
- },
- ],
- },
- },
- {
- currentState: 'display',
- event: 'DONE',
- params: 'transit',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- {
- currentState: 'display',
- event: 'ERROR',
- params: 'transit',
- expectedResults: {
- value: 'error',
- actions: [
- { component: 'wizard/tutorial-error', level: 'step', type: 'render' },
- { component: 'wizard/mounts-wizard', level: 'feature', type: 'render' },
- ],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- // skipping see PR https://github.com/hashicorp/vault/pull/19220
- skip(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = secretsMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.strictEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/machines/tools-machine-test.js b/ui/tests/unit/machines/tools-machine-test.js
deleted file mode 100644
index 607e46e274cc..000000000000
--- a/ui/tests/unit/machines/tools-machine-test.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { Machine } from 'xstate';
-import ToolsMachineConfig from 'vault/machines/tools-machine';
-
-module('Unit | Machine | tools-machine', function () {
- const toolsMachine = Machine(ToolsMachineConfig);
-
- const testCases = [
- {
- currentState: toolsMachine.initialState,
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'wrapped',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-wrapped' }],
- },
- },
- {
- currentState: 'wrapped',
- event: 'LOOKUP',
- params: null,
- expectedResults: {
- value: 'lookup',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-lookup' }],
- },
- },
- {
- currentState: 'lookup',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'info',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-info' }],
- },
- },
- {
- currentState: 'info',
- event: 'REWRAP',
- params: null,
- expectedResults: {
- value: 'rewrap',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-rewrap' }],
- },
- },
- {
- currentState: 'rewrap',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'rewrapped',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-rewrapped' }],
- },
- },
- {
- currentState: 'rewrapped',
- event: 'UNWRAP',
- params: null,
- expectedResults: {
- value: 'unwrap',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-unwrap' }],
- },
- },
- {
- currentState: 'unwrap',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: 'unwrapped',
- actions: [{ type: 'render', level: 'feature', component: 'wizard/tools-unwrapped' }],
- },
- },
- {
- currentState: 'unwrapped',
- event: 'CONTINUE',
- expectedResults: {
- value: 'complete',
- actions: ['completeFeature'],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- test(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = toolsMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.strictEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/machines/tutorial-machine-test.js b/ui/tests/unit/machines/tutorial-machine-test.js
deleted file mode 100644
index eae055344709..000000000000
--- a/ui/tests/unit/machines/tutorial-machine-test.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { Machine } from 'xstate';
-import TutorialMachineConfig from 'vault/machines/tutorial-machine';
-
-module('Unit | Machine | tutorial-machine', function () {
- const tutorialMachine = Machine(TutorialMachineConfig);
-
- const testCases = [
- {
- currentState: 'init',
- event: 'START',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'setup',
- },
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/init-setup' },
- ],
- },
- },
- {
- currentState: 'init.active.setup',
- event: 'TOSAVE',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'save',
- },
- },
- actions: [{ type: 'render', level: 'feature', component: 'wizard/init-save-keys' }],
- },
- },
- {
- currentState: 'init',
- event: 'SAVE',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'save',
- },
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/init-save-keys' },
- ],
- },
- },
- {
- currentState: 'init.active.save',
- event: 'TOUNSEAL',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'unseal',
- },
- },
- actions: [{ type: 'render', level: 'feature', component: 'wizard/init-unseal' }],
- },
- },
- {
- currentState: 'init',
- event: 'UNSEAL',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'unseal',
- },
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/init-unseal' },
- ],
- },
- },
- {
- currentState: 'init.active.unseal',
- event: 'TOLOGIN',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'login',
- },
- },
- actions: [{ type: 'render', level: 'feature', component: 'wizard/init-login' }],
- },
- },
- {
- currentState: 'init',
- event: 'LOGIN',
- params: null,
- expectedResults: {
- value: {
- init: {
- active: 'login',
- },
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/init-login' },
- ],
- },
- },
- {
- currentState: 'init.active.login',
- event: 'INITDONE',
- params: null,
- expectedResults: {
- value: {
- active: 'select',
- },
- actions: [
- 'showTutorialWhenAuthenticated',
- 'clearFeatureData',
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/features-selection' },
- ],
- },
- },
- {
- currentState: 'active.select',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: {
- active: 'feature',
- },
- actions: [],
- },
- },
- {
- currentState: 'active.feature',
- event: 'DISMISS',
- params: null,
- expectedResults: {
- value: 'dismissed',
- actions: [
- { type: 'render', level: 'tutorial', component: null },
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- 'handleDismissed',
- ],
- },
- },
- {
- currentState: 'active.feature',
- event: 'DONE',
- params: null,
- expectedResults: {
- value: 'complete',
- actions: [
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-complete' },
- ],
- },
- },
- {
- currentState: 'active.feature',
- event: 'PAUSE',
- params: null,
- expectedResults: {
- value: 'paused',
- actions: [
- { type: 'render', level: 'feature', component: null },
- { type: 'render', level: 'step', component: null },
- { type: 'render', level: 'detail', component: null },
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-paused' },
- 'handlePaused',
- ],
- },
- },
- {
- currentState: 'paused',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: {
- active: 'feature',
- },
- actions: ['handleResume', { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' }],
- },
- },
- {
- currentState: 'idle',
- event: 'INIT',
- params: null,
- expectedResults: {
- value: {
- init: 'idle',
- },
- actions: [
- 'showTutorialAlways',
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-idle' },
- { type: 'render', level: 'feature', component: null },
- ],
- },
- },
- {
- currentState: 'idle',
- event: 'AUTH',
- params: null,
- expectedResults: {
- value: {
- active: 'select',
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/features-selection' },
- ],
- },
- },
- {
- currentState: 'idle',
- event: 'CONTINUE',
- params: null,
- expectedResults: {
- value: {
- active: 'select',
- },
- actions: [
- { type: 'render', level: 'tutorial', component: 'wizard/tutorial-active' },
- { type: 'render', level: 'feature', component: 'wizard/features-selection' },
- ],
- },
- },
- ];
-
- testCases.forEach((testCase) => {
- test(`transition: ${testCase.event} for currentState ${testCase.currentState} and componentState ${testCase.params}`, function (assert) {
- const result = tutorialMachine.transition(testCase.currentState, testCase.event, testCase.params);
- assert.deepEqual(result.value, testCase.expectedResults.value);
- assert.deepEqual(result.actions, testCase.expectedResults.actions);
- });
- });
-});
diff --git a/ui/tests/unit/services/wizard-test.js b/ui/tests/unit/services/wizard-test.js
deleted file mode 100644
index 08dd5b21018a..000000000000
--- a/ui/tests/unit/services/wizard-test.js
+++ /dev/null
@@ -1,374 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-/* eslint qunit/no-conditional-assertions: "warn" */
-import { module, test } from 'qunit';
-import { setupTest } from 'ember-qunit';
-import sinon from 'sinon';
-import { STORAGE_KEYS, DEFAULTS } from 'vault/helpers/wizard-constants';
-
-module('Unit | Service | wizard', function (hooks) {
- setupTest(hooks);
-
- hooks.beforeEach(function () {
- this.router = this.owner.lookup('service:router');
- this.router.reopen({
- transitionTo: sinon.stub().returns({
- followRedirects: function () {
- return {
- then: function (callback) {
- callback();
- },
- };
- },
- }),
- urlFor: sinon.stub().returns('/ui/vault/foo'),
- });
- });
-
- function storage() {
- return {
- items: {},
- getItem(key) {
- var item = this.items[key];
- return item && JSON.parse(item);
- },
-
- setItem(key, val) {
- return (this.items[key] = JSON.stringify(val));
- },
-
- removeItem(key) {
- delete this.items[key];
- },
-
- keys() {
- return Object.keys(this.items);
- },
- };
- }
-
- const testCases = [
- {
- method: 'getExtState',
- args: [STORAGE_KEYS.TUTORIAL_STATE],
- expectedResults: {
- storage: [{ key: STORAGE_KEYS.TUTORIAL_STATE, value: 'idle' }],
- },
- assertCount: 1,
- },
- {
- method: 'saveExtState',
- args: [STORAGE_KEYS.TUTORIAL_STATE, 'test'],
- expectedResults: {
- storage: [{ key: STORAGE_KEYS.TUTORIAL_STATE, value: 'test' }],
- },
- assertCount: 1,
- },
- {
- method: 'storageHasKey',
- args: ['fake-key'],
- expectedResults: { value: false },
- assertCount: 1,
- },
- {
- method: 'storageHasKey',
- args: [STORAGE_KEYS.TUTORIAL_STATE],
- expectedResults: { value: true },
- assertCount: 1,
- },
- {
- method: 'handleDismissed',
- args: [],
- expectedResults: {
- storage: [
- { key: STORAGE_KEYS.FEATURE_STATE, value: undefined },
- { key: STORAGE_KEYS.FEATURE_LIST, value: undefined },
- { key: STORAGE_KEYS.COMPONENT_STATE, value: undefined },
- ],
- },
- assertCount: 3,
- },
- {
- method: 'handlePaused',
- args: [],
- properties: {
- expectedURL: 'this/is/a/url',
- expectedRouteName: 'this.is.a.route',
- },
- expectedResults: {
- storage: [
- { key: STORAGE_KEYS.RESUME_URL, value: 'this/is/a/url' },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: 'this.is.a.route' },
- ],
- },
- assertCount: 2,
- },
- {
- method: 'handlePaused',
- args: [],
- expectedResults: {
- storage: [
- { key: STORAGE_KEYS.RESUME_URL, value: undefined },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: undefined },
- ],
- },
- assertCount: 2,
- },
- {
- method: 'handleResume',
- storage: [
- { key: STORAGE_KEYS.RESUME_URL, value: 'this/is/a/url' },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: 'this.is.a.route' },
- ],
- args: [],
- expectedResults: {
- props: [
- { prop: 'expectedURL', value: 'this/is/a/url' },
- { prop: 'expectedRouteName', value: 'this.is.a.route' },
- ],
- storage: [
- { key: STORAGE_KEYS.RESUME_URL, value: undefined },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: 'this.is.a.route' },
- ],
- },
- assertCount: 4,
- },
- {
- method: 'handleResume',
- args: [],
- expectedResults: {
- storage: [
- { key: STORAGE_KEYS.RESUME_URL, value: undefined },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: undefined },
- ],
- },
- assertCount: 2,
- },
- {
- method: 'restartGuide',
- args: [],
- expectedResults: {
- props: [
- { prop: 'currentState', value: 'active.select' },
- { prop: 'featureComponent', value: 'wizard/features-selection' },
- { prop: 'tutorialComponent', value: 'wizard/tutorial-active' },
- ],
- storage: [
- { key: STORAGE_KEYS.FEATURE_STATE, value: undefined },
- { key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: undefined },
- { key: STORAGE_KEYS.FEATURE_LIST, value: undefined },
- { key: STORAGE_KEYS.COMPONENT_STATE, value: undefined },
- { key: STORAGE_KEYS.TUTORIAL_STATE, value: 'active.select' },
- { key: STORAGE_KEYS.COMPLETED_FEATURES, value: undefined },
- { key: STORAGE_KEYS.RESUME_URL, value: undefined },
- { key: STORAGE_KEYS.RESUME_ROUTE, value: undefined },
- ],
- },
- assertCount: 11,
- },
- {
- method: 'clearFeatureData',
- args: [],
- expectedResults: {
- props: [
- { prop: 'currentMachine', value: null },
- { prop: 'featureMachineHistory', value: null },
- ],
- storage: [
- { key: STORAGE_KEYS.FEATURE_STATE, value: undefined },
- { key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: undefined },
- { key: STORAGE_KEYS.FEATURE_LIST, value: undefined },
- { key: STORAGE_KEYS.COMPONENT_STATE, value: undefined },
- ],
- },
- assertCount: 6,
- },
- {
- method: 'saveState',
- args: [
- 'currentState',
- {
- value: {
- init: {
- active: 'login',
- },
- },
- actions: [{ type: 'render', level: 'feature', component: 'wizard/init-login' }],
- },
- ],
- expectedResults: {
- props: [{ prop: 'currentState', value: 'init.active.login' }],
- },
- assertCount: 1,
- },
- {
- method: 'saveState',
- args: [
- 'currentState',
- {
- value: {
- active: 'login',
- },
- actions: [{ type: 'render', level: 'feature', component: 'wizard/init-login' }],
- },
- ],
- expectedResults: {
- props: [{ prop: 'currentState', value: 'active.login' }],
- },
- assertCount: 1,
- },
- {
- method: 'saveState',
- args: ['currentState', 'login'],
- expectedResults: {
- props: [{ prop: 'currentState', value: 'login' }],
- },
- assertCount: 1,
- },
- {
- method: 'saveFeatureHistory',
- args: ['idle'],
- properties: { featureList: ['policies', 'tools'] },
- storage: [{ key: STORAGE_KEYS.COMPLETED_FEATURES, value: ['secrets'] }],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: null }],
- },
- assertCount: 1,
- },
- {
- method: 'saveFeatureHistory',
- args: ['idle'],
- properties: { featureList: ['policies', 'tools'] },
- storage: [],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: ['idle'] }],
- },
- assertCount: 1,
- },
- {
- method: 'saveFeatureHistory',
- args: ['idle'],
- properties: { featureList: ['policies', 'tools'] },
- storage: [],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: ['idle'] }],
- },
- assertCount: 1,
- },
- {
- method: 'saveFeatureHistory',
- args: ['idle'],
- properties: { featureMachineHistory: [], featureList: ['policies', 'tools'] },
- storage: [{ key: STORAGE_KEYS.COMPLETED_FEATURES, value: ['secrets'] }],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: ['idle'] }],
- storage: [{ key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: ['idle'] }],
- },
- assertCount: 2,
- },
- {
- method: 'saveFeatureHistory',
- args: ['idle'],
- properties: { featureMachineHistory: null, featureList: ['policies', 'tools'] },
- storage: [{ key: STORAGE_KEYS.COMPLETED_FEATURES, value: ['secrets'] }],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: null }],
- },
- assertCount: 1,
- },
- {
- method: 'saveFeatureHistory',
- args: ['create'],
- properties: { featureMachineHistory: ['idle'], featureList: ['policies', 'tools'] },
- storage: [{ key: STORAGE_KEYS.COMPLETED_FEATURES, value: ['secrets'] }],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: ['idle', 'create'] }],
- storage: [{ key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: ['idle', 'create'] }],
- },
- assertCount: 2,
- },
- {
- method: 'saveFeatureHistory',
- args: ['create'],
- properties: { featureMachineHistory: ['idle'], featureList: ['policies', 'tools'] },
- storage: [
- { key: STORAGE_KEYS.COMPLETED_FEATURES, value: ['secrets'] },
- { key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: ['idle', 'create'] },
- ],
- expectedResults: {
- props: [{ prop: 'featureMachineHistory', value: ['idle', 'create'] }],
- storage: [{ key: STORAGE_KEYS.FEATURE_STATE_HISTORY, value: ['idle', 'create'] }],
- },
- assertCount: 2,
- },
- {
- method: 'startFeature',
- args: [],
- properties: { featureList: ['secrets', 'tools'] },
- expectedResults: {
- props: [
- { prop: 'featureState', value: 'idle' },
- { prop: 'currentMachine', value: 'secrets' },
- ],
- },
- assertCount: 2,
- },
- {
- method: 'saveFeatures',
- args: [['secrets', 'tools']],
- expectedResults: {
- props: [{ prop: 'featureList', value: ['secrets', 'tools'] }],
- storage: [{ key: STORAGE_KEYS.FEATURE_LIST, value: ['secrets', 'tools'] }],
- },
- assertCount: 2,
- },
- ];
-
- testCases.forEach((testCase) => {
- const store = storage();
- test(`${testCase.method}`, function (assert) {
- assert.expect(testCase.assertCount);
- const wizard = this.owner.factoryFor('service:wizard').create({
- storage() {
- return store;
- },
- });
-
- if (testCase.properties) {
- wizard.setProperties(testCase.properties);
- } else {
- wizard.setProperties(DEFAULTS);
- }
-
- if (testCase.storage) {
- testCase.storage.forEach((item) => wizard.storage().setItem(item.key, item.value));
- }
-
- const result = wizard[testCase.method](...testCase.args);
- if (testCase.expectedResults.props) {
- testCase.expectedResults.props.forEach((property) => {
- assert.deepEqual(
- wizard.get(property.prop),
- property.value,
- `${testCase.method} creates correct value for ${property.prop}`
- );
- });
- }
- if (testCase.expectedResults.storage) {
- testCase.expectedResults.storage.forEach((item) => {
- assert.deepEqual(
- wizard.storage().getItem(item.key),
- item.value,
- `${testCase.method} creates correct storage state for ${item.key}`
- );
- });
- }
- if (testCase.expectedResults.value !== null && testCase.expectedResults.value !== undefined) {
- assert.strictEqual(result, testCase.expectedResults.value, `${testCase.method} gives correct value`);
- }
- });
- });
-});
diff --git a/ui/yarn.lock b/ui/yarn.lock
index dba74bf8f694..c3f7e357bd07 100644
--- a/ui/yarn.lock
+++ b/ui/yarn.lock
@@ -18246,7 +18246,6 @@ __metadata:
uuid: ^9.0.0
walk-sync: ^2.0.2
webpack: 5.89.0
- xstate: ^3.3.3
languageName: unknown
linkType: soft
@@ -18684,13 +18683,6 @@ __metadata:
languageName: node
linkType: hard
-"xstate@npm:^3.3.3":
- version: 3.3.3
- resolution: "xstate@npm:3.3.3"
- checksum: b659cf8c7ac5f48ef68bd55d8b5a60fb3b34686222c8d4e8966b9e8d7fd59569cf02e135fba5969d1f7b96cd3f617b1131b38970b90930371e668af7f6b4d2f6
- languageName: node
- linkType: hard
-
"xtend@npm:^4.0.0":
version: 4.0.2
resolution: "xtend@npm:4.0.2"