vault/ui/app/app.js
Vault Automation e343a87243
[UI][VAULT-42370][VAULT-41964][VAULT-41143] Update secrets engines and client count page title and breadcrumbs (#12190) (#12237)
* Update kubernetes and kmip breadcrumbs

* Add breadcrumbs for non ember engines

* LDAP breadcrumbs..

* PKI breadcrumbs..

* Mostly working kv tests

* kv data persona tests

* Fix remaining kv-workflow test

* Route to vault.cluster instead of dashboard

* VAULT-41964 Update client count breadcrumb + test

* VAULT-41143 Remove user dropdown a11y override

* Add test for nav links on community

* Ensure we check for enterprise

* Address feedback

* Use selector instead

Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
2026-02-06 11:11:04 -08:00

200 lines
5.8 KiB
JavaScript

/**
* Copyright IBM Corp. 2016, 2025
* SPDX-License-Identifier: BUSL-1.1
*/
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from 'vault/config/environment';
export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
Resolver = Resolver;
engines = {
'config-ui': {
dependencies: {
services: [
'auth',
'flash-messages',
'namespace',
{ 'app-router': 'router' },
'version',
'custom-messages',
'api',
'capabilities',
// services needed for tools sidebar component
'permissions',
'current-cluster',
'-portal',
],
externalRoutes: {
vault: 'vault.cluster',
tool: 'vault.cluster.tools.tool',
messages: 'vault.cluster.config-ui.messages',
openApiExplorer: 'vault.cluster.tools.open-api-explorer',
loginSettings: 'vault.cluster.config-ui.login-settings',
},
},
},
'open-api-explorer': {
dependencies: {
services: ['auth', 'flash-messages', 'namespace', { 'app-router': 'router' }, 'version'],
externalRoutes: { vault: 'vault.cluster' },
},
},
replication: {
dependencies: {
services: [
'auth',
'capabilities',
'flash-messages',
'namespace',
'replication-mode',
{ 'app-router': 'router' },
'store',
'version',
// services needed for tools sidebar component
'permissions',
'current-cluster',
'flags',
'-portal',
'control-group',
],
externalRoutes: {
replication: 'vault.cluster.replication.index',
vault: 'vault.cluster',
recoverySnapshots: 'vault.cluster.recovery.snapshots',
settingsSeal: 'vault.cluster.settings.seal',
replicationMode: 'vault.cluster.replication.mode',
},
},
},
kmip: {
dependencies: {
services: [
'api',
'auth',
'capabilities',
'download',
'flash-messages',
'namespace',
'path-help',
{ 'app-router': 'router' },
'version',
'secret-mount-path',
],
externalRoutes: {
secrets: 'vault.cluster.secrets.backends',
vault: 'vault.cluster',
secretsGeneralSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.general-settings',
},
},
},
kubernetes: {
dependencies: {
services: [{ 'app-router': 'router' }, 'secret-mount-path', 'flash-messages', 'api', 'capabilities'],
externalRoutes: {
secrets: 'vault.cluster.secrets.backends',
secretsGeneralSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.general-settings',
vault: 'vault.cluster',
},
},
},
ldap: {
dependencies: {
services: [
{ 'app-router': 'router' },
'secret-mount-path',
'flash-messages',
'auth',
'api',
'capabilities',
],
externalRoutes: {
vault: 'vault.cluster',
secrets: 'vault.cluster.secrets.backends',
secretsGeneralSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.general-settings',
secretsPluginSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.plugin-settings',
},
},
},
kv: {
dependencies: {
services: [
'api',
'capabilities',
'control-group',
'download',
'flash-messages',
'namespace',
{ 'app-router': 'router' },
'secret-mount-path',
'version',
],
externalRoutes: {
vault: 'vault.cluster',
secrets: 'vault.cluster.secrets.backends',
syncDestination: 'vault.cluster.sync.secrets.destinations.destination',
secretsGeneralSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.general-settings',
},
},
},
pki: {
dependencies: {
services: [
'api',
'auth',
'capabilities',
'download',
'flash-messages',
'namespace',
'path-help',
{ 'app-router': 'router' },
'secret-mount-path',
'version',
],
externalRoutes: {
vault: 'vault.cluster',
secrets: 'vault.cluster.secrets.backends',
externalMountIssuer: 'vault.cluster.secrets.backend.pki.issuers.issuer.details',
secretsListRootConfiguration: 'vault.cluster.secrets.backend.configuration',
secretsGeneralSettingsConfiguration: 'vault.cluster.secrets.backend.configuration.general-settings',
},
},
},
sync: {
dependencies: {
services: [
'flash-messages',
'flags',
{ 'app-router': 'router' },
'store',
'api',
'capabilities',
'version',
// services needed for Secrets sidebar component
'current-cluster',
'permissions',
'-portal',
'namespace',
],
externalRoutes: {
kvSecretOverview: 'vault.cluster.secrets.backend.kv.secret.index',
clientCountOverview: 'vault.cluster.clients',
// routes needed for Secrets sidebar component
secrets: 'vault.cluster.secrets',
sync: 'vault.cluster.sync',
vault: 'vault.cluster',
},
},
},
};
}
loadInitializers(App, config.modulePrefix);
/**
* @typedef {import('ember-source/types')} EmberTypes
*/