Files
threshold-ui/ui/desktop/config/environment.js
T
CyberCoveandClaude Sonnet 5.5 89089dbb9a Rebrand Boundary UI to Threshold; neutralize HashiCorp update/phone-home endpoints
- Product name, app id, installer names, translations, titles -> Threshold
- Desktop: look for threshold CLI first, then boundary; migrate legacy
  Boundary user-data dir; updater/release lookups disabled unless configured
- Remove HashiCorp/IBM logos and art (plain placeholder mark), GitHub
  release workflows and HashiCorp release metadata
- Add NOTICE and README 'About this fork'

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 12:24:16 -07:00

143 lines
4.0 KiB
JavaScript

/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
'use strict';
const APP_NAME = process.env.APP_NAME || 'Threshold';
const locationType = process.env.EMBER_CLI_ELECTRON ? 'hash' : 'history';
const ENABLE_A11Y_AUDIT = process.env.ENABLE_A11Y_AUDIT || false;
const COLOR_THEME = process.env.COLOR_THEME ?? 'light';
module.exports = function (environment) {
const ENV = {
modulePrefix: 'desktop',
environment,
rootURL: process.env.EMBER_CLI_ELECTRON ? '' : '/',
locationType,
EmberENV: {
EXTEND_PROTOTYPES: false,
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
},
isElectron: process.env.EMBER_CLI_ELECTRON
? JSON.parse(process.env.EMBER_CLI_ELECTRON)
: false,
api: {
// there is no default API host in desktop
//host: API_HOST,
namespace: 'v1',
},
appName: APP_NAME,
// Threshold has no default release metadata API; set `metadataUrl` to a
// HashiCorp-releases-API-compatible endpoint to enable direct download links
// when connecting to an older controller. See README "About this fork".
releases: {
metadataUrl: process.env.THRESHOLD_RELEASES_METADATA_URL || '',
releasesPageUrl:
process.env.THRESHOLD_RELEASES_PAGE_URL ||
'https://repo.anhonesthost.net/CyberCoveLLC/threshold-ui/releases',
},
oidcPollingTimeoutSeconds: 1,
sessionPollingTimeoutSeconds: 2,
documentation: {
baseURL: 'https://developer.hashicorp.com/boundary',
topics: {
targets:
'/tutorials/oss-getting-started/oss-getting-started-desktop-app#connect',
sessions:
'/tutorials/oss-getting-started/oss-getting-started-desktop-app#connect',
'support-page':
'https://repo.anhonesthost.net/CyberCoveLLC/threshold-ui/issues',
},
},
flashMessageDefaults: {
timeout: 4000,
},
featureFlags: {},
};
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;
// This flag tells the origin route to autoset the controller origin field
// of the UI, which only makes sense in development where the origin is
// usually the same as the application origin.
ENV.autoOrigin = true;
ENV.mirage = {
enabled: process.env.ENABLE_MIRAGE
? JSON.parse(process.env.ENABLE_MIRAGE)
: true,
};
ENV.ENABLE_A11Y_AUDIT = ENABLE_A11Y_AUDIT;
ENV.COLOR_THEME = COLOR_THEME;
}
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;
// Notification timeout should be 0 for fast tests
ENV.flashMessageDefaults.timeout = 0;
// OIDC Authentication timeout should be 0 for fast tests
ENV.oidcPollingTimeoutSeconds = 0;
// Sessions polling timeout should be 0 for fast tests
ENV.sessionPollingTimeoutSeconds = 0;
ENV.enableConfirmService = false;
// Use a non-routable host for mocked release metadata.
ENV.releases.metadataUrl = 'https://releases-api.threshold.invalid/v1/meta';
ENV.releases.releasesPageUrl = 'https://releases.threshold.invalid/';
// Use in-memory storage
ENV.storage = {
memory: true,
};
ENV.ENABLE_A11Y_AUDIT = ENABLE_A11Y_AUDIT;
ENV.COLOR_THEME = COLOR_THEME;
ENV.mirage = {
enabled: process.env.ENABLE_MIRAGE
? JSON.parse(process.env.ENABLE_MIRAGE)
: true,
};
}
if (environment === 'production') {
// here you can enable a production-specific feature
}
return ENV;
};