vault/ui/app/app.js
Vault Automation 48efc519bc
[UI] Ember Data Migration - Core Addon (#14891) (#14953)
* removes store service from confirm-leave decorator

* updates secret list header tab component to use capabilities service for database type

* removes store service from edit-form component

* removes ember data fetch support from InfoTableItemArray component

* removes store from shamir components

* removes store from replication components in core addon

* adds missing service injection to shamir flow component

* fixes reduced disclosure test

* fixes issues with seal/unseal workflow

* reverts assertion change in info-table-item-array test

* fixes database test

* updates shamir flow test

* removes commented out code

Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
2026-05-21 16:52:55 -06:00

201 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: [
'api',
'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
*/