Vault Automation c499aa5288
UI: Namespace Wizard (#11556) (#12053)
* fill guided start content

* move namespace logic into page component

* add page component tests for namespace wizard

* add tree chart and changelog, update state management

* fix failing page usage test

* add back in breadcrumb update lost in merge conflict resolution across files

* fix test

* update terraform template function usage

* Update ui/app/components/wizard/namespaces/step-3.hbs



* formatting and fixes

* revert usage page changes

* move snippet generators into util and update code snippet initialization

* update test namespace page args

* move namespace wizard logic into its own component

* fix nested namespace creation via api and cli code snippets

* test update

* nested namespace terraform snippet

* remove outdated comment

* test clean up and hide wizard in CE

---------

Co-authored-by: lane-wetmore <lane.wetmore@hashicorp.com>
Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com>
2026-01-28 19:07:13 +00:00

53 lines
1.6 KiB
TypeScript

/**
* Copyright IBM Corp. 2016, 2025
* SPDX-License-Identifier: BUSL-1.1
*/
import Component from '@glimmer/component';
export enum SecurityPolicy {
FLEXIBLE = 'flexible',
STRICT = 'strict',
}
interface Args {
wizardState: {
securityPolicyChoice: SecurityPolicy | null;
};
}
export default class WizardNamespacesStep1 extends Component<Args> {
policy = SecurityPolicy;
get cardInfo() {
const { wizardState } = this.args;
if (wizardState.securityPolicyChoice === SecurityPolicy.FLEXIBLE) {
return {
title: 'Single namespace',
description:
'Your organization should be comfortable with your current setup of one global namespace. You can always add more namespaces later.',
bestFor: [
'Small teams or orgs just getting started with Vault.',
'Centralized platform teams managing all secrets.',
],
avoidIf: [
'You need strong isolation between teams or business units.',
'You plan to scale to 100+ applications or secrets engines.',
'You anticipate needing per-team Terraform workflows.',
],
};
}
return {
title: 'Multiple namespaces',
description:
'Create isolation for clear ownership and scalability for strictly separated teams or applications.',
diagram: '~/multi-namespace.gif',
bestFor: [
'Heavily regulated organizations with strict boundary enforcement between tenants.',
'Organizations already confident with Terraform and namespace scoping.',
],
avoidIf: ["You're not absolutely sure you need hard isolation and nesting."],
};
}
}