Files
threshold-ui/ui/admin/config/environment.js
T

207 lines
7.5 KiB
JavaScript
Raw Normal View History

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
2020-05-18 17:02:09 -04:00
'use strict';
2023-04-03 20:28:31 -07:00
const v8 = require('v8');
const {
defaultEdition,
featureEditions,
licensedFeatures,
} = require('./features');
2020-09-27 14:12:15 -04:00
const APP_NAME = process.env.APP_NAME || 'Boundary';
2020-05-20 11:53:48 -04:00
const API_HOST = process.env.API_HOST || '';
2023-04-03 20:28:31 -07:00
const clone = (obj) => v8.deserialize(v8.serialize(obj));
2020-05-18 17:02:09 -04:00
module.exports = function (environment) {
2023-04-03 20:28:31 -07:00
// Start with a fresh copy of the features config every run, since it
// could be modified by an environment.
const features = {
defaultEdition,
featureEditions: clone(featureEditions),
licensedFeatures: clone(licensedFeatures),
};
2020-05-18 17:02:09 -04:00
let ENV = {
modulePrefix: 'admin',
2020-05-18 17:02:09 -04:00
environment,
rootURL: '/',
2023-01-09 08:48:49 -08:00
locationType: 'history',
2020-05-18 17:02:09 -04:00
EmberENV: {
2023-11-10 11:21:52 -05:00
EXTEND_PROTOTYPES: false,
2020-05-18 17:02:09 -04:00
FEATURES: {
// Here you can enable experimental features on an ember canary build
// e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
},
},
APP: {
// Here you can pass flags/options to your application instance
// when it is created
},
2020-05-18 17:33:20 -04:00
2020-05-19 18:10:39 -04:00
api: {
host: API_HOST,
2020-05-20 11:14:24 -04:00
namespace: 'v1',
2020-05-19 18:10:39 -04:00
},
appName: APP_NAME,
2020-10-05 17:20:04 -04:00
companyName: 'HashiCorp',
sessionPollingTimeoutSeconds: 300,
2021-01-22 17:01:12 -05:00
oidcPollingTimeoutSeconds: 1,
2020-10-05 16:53:11 -04:00
documentation: {
baseURL: 'https://developer.hashicorp.com/boundary',
2020-10-05 16:53:11 -04:00
topics: {
global: '/docs/concepts/domain-model/scopes#global',
org: '/docs/concepts/domain-model/scopes#organizations',
'org.new': '/docs/common-workflows/manage-scopes',
project: '/docs/concepts/domain-model/scopes#projects',
'project.new': '/docs/common-workflows/manage-scopes',
account: '/docs/concepts/domain-model/accounts',
'account.new':
'/tutorials/oss-administration/oss-manage-users-groups#create-an-account',
'auth-method': '/docs/concepts/domain-model/auth-methods',
'managed-groups': '/docs/concepts/domain-model/managed-groups',
group: '/docs/concepts/domain-model/groups',
'group.add-members':
'/tutorials/oss-administration/oss-manage-users-groups#create-a-group',
'host-catalog': '/docs/concepts/domain-model/host-catalogs',
'host-catalog.new': '/docs/common-workflows/manage-targets',
'host-catalog.azure': '/docs/concepts/host-discovery/azure',
2025-01-24 12:45:56 -08:00
'host-catalog.gcp': '/docs/concepts/host-discovery/gcp',
'host-catalog.aws': '/docs/concepts/host-discovery/aws',
'host-catalog.aws.region':
'https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html',
'host-set': '/docs/concepts/domain-model/host-sets',
'host-set.new':
'/docs/common-workflows/manage-targets#define-a-host-set',
'host-set.add-hosts': '/docs/concepts/domain-model/hosts',
'host-set.preferred-endpoints':
'/docs/concepts/domain-model/host-sets#preferred_endpoints',
'host-set.sync-interval-seconds':
'/docs/concepts/domain-model/host-sets#sync_interval_seconds',
'credential-store': '/docs/concepts/domain-model/credential-stores',
'credential-library':
'/docs/concepts/domain-model/credential-libraries',
credential: '/docs/concepts/domain-model/credentials',
host: '/docs/concepts/domain-model/hosts',
'host.new': '/docs/common-workflows/manage-targets#define-a-host',
role: '/docs/concepts/domain-model/roles',
'role.add-principals':
'/tutorials/oss-administration/oss-manage-roles#create-a-role',
'role.add-grant-scopes': '/docs/commands/roles/add-grant-scopes',
session: '/docs/concepts/domain-model/sessions',
target: '/docs/concepts/domain-model/targets',
'target.new': '/docs/common-workflows/manage-targets',
'target.add-host-sources': '/docs/concepts/domain-model/host-sets',
'target.enable-session-recording':
'/docs/configuration/session-recording/enable-session-recording',
2024-12-11 14:00:27 -06:00
'worker-filters-format':
'/docs/concepts/filtering/worker-tags#filter-examples',
user: '/docs/concepts/domain-model/users',
downloads: '/install',
'getting-started.desktop':
'/tutorials/oss-getting-started/oss-getting-started-desktop-app',
'api-client.cli': '/docs/commands',
'api-client.api': '/docs/api-clients/api',
worker: '/docs/configuration/worker',
'worker.manage-workers':
'/tutorials/hcp-administration/hcp-manage-workers',
'worker-filters':
'/docs/concepts/domain-model/credential-stores#worker_filter',
2024-07-17 17:07:01 -05:00
'worker.create-tags': '/docs/concepts/filtering/worker-tags',
'storage-bucket': '/docs/concepts/domain-model/storage-buckets',
'storage-bucket.new':
'/docs/configuration/session-recording/create-storage-bucket',
'storage-bucket.worker-filter':
'/docs/concepts/domain-model/storage-buckets#worker_filter',
'storage-bucket.disable-credential-rotation':
'/docs/concepts/domain-model/storage-buckets#disable_credential_rotation',
'session-recording': '/docs/concepts/domain-model/session-recordings',
'session-recording.retrieve-lost-session-recordings':
'/docs/operations/manage-recorded-sessions',
'storage-policy': '/docs/concepts/domain-model/storage-policy',
'storage-policy.new':
'/docs/configuration/session-recording/configure-storage-policy',
'storage-policy.update':
'/docs/configuration/session-recording/update-storage-policy',
alias: '/docs/concepts/aliases',
'support-page': 'https://support.hashicorp.com/hc/en-us',
2020-11-16 15:08:59 -05:00
},
2020-10-05 16:53:11 -04:00
},
2020-11-19 11:47:51 -05:00
'ember-cli-mirage': {
2021-03-05 17:27:00 -05:00
directory: '../../addons/api/mirage',
},
flashMessageDefaults: {
timeout: 4000,
},
2023-04-03 20:28:31 -07:00
features: features,
2023-03-17 14:34:37 -07:00
featureFlags: {},
2020-05-18 17:33:20 -04:00
};
2020-05-18 17:02:09 -04:00
if (environment === 'development') {
// ENV.APP.LOG_RESOLVER = true;
// ENV.APP.LOG_ACTIVE_GENERATION = true;
// ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
2020-05-18 17:33:20 -04:00
ENV['ember-cli-mirage'].enabled = process.env.ENABLE_MIRAGE
? JSON.parse(process.env.ENABLE_MIRAGE)
: true;
2020-05-18 17:33:20 -04:00
ENV['ember-a11y-testing'] = {
componentOptions: {
axeOptions: {
checks: {
2020-05-19 18:10:39 -04:00
'color-contrast': { options: { noScroll: true } },
},
},
},
2020-05-18 17:33:20 -04:00
};
2023-03-17 14:34:37 -07:00
// Default edition in development
2023-04-03 20:28:31 -07:00
ENV.features.defaultEdition = 'enterprise';
// Enable development-only features
ENV.features.featureEditions.oss['dev-edition-toggle'] = true;
ENV.features.featureEditions.enterprise['dev-edition-toggle'] = true;
ENV.features.featureEditions.hcp['dev-edition-toggle'] = true;
// Enable licensed features by default in enterprise and hcp
Object.keys(ENV.features.licensedFeatures).forEach((feature) => {
ENV.features.featureEditions.enterprise[feature] = true;
ENV.features.featureEditions.hcp[feature] = true;
});
2020-05-18 17:02:09 -04:00
}
if (environment === 'test') {
// Testem prefers this...
ENV.locationType = 'none';
// keep test console output quieter
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
2020-05-18 17:33:20 -04:00
// Notification timeout should be 0 for fast tests
ENV.flashMessageDefaults.timeout = 0;
ENV.enableConfirmService = false;
2020-05-18 17:02:09 -04:00
}
if (environment === 'production') {
// here you can enable a production-specific feature
}
return ENV;
};