Skip to content

Commit 7848c1a

Browse files
authored
Allow configuring via bit config cloud_domain and symphony_url (teambit#6930)
1 parent 487496b commit 7848c1a

File tree

10 files changed

+78
-61
lines changed

10 files changed

+78
-61
lines changed

e2e/bitsrc-tester.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import fetch from 'node-fetch';
22

3-
import { BASE_CLOUD_DOMAIN } from '../src/constants';
3+
import { getCloudDomain } from '../src/constants';
44

5-
// const apiBaseUrl = process.env.NODE_ENV === 'production' ? `https://api.${BASE_CLOUD_DOMAIN}` : `https://api-stg.${BASE_CLOUD_DOMAIN}`;
5+
// const apiBaseUrl = process.env.NODE_ENV === 'production' ? `https://api.${getCloudDomain()}` : `https://api-stg.${getCloudDomain()}`;
66
const skipBitDevTests = process.env.SKIP_BIT_DEV_TESTS === 'True' || process.env.SKIP_BIT_DEV_TESTS === 'true';
77
const supportTestingOnBitsrc = !skipBitDevTests;
88
// const supportTestingOnBitsrc = true;
99
const apiBaseUrl =
10-
process.env.BITSRC_ENV === 'stg' ? `https://api-stg.${BASE_CLOUD_DOMAIN}` : `https://api.${BASE_CLOUD_DOMAIN}`;
10+
process.env.BITSRC_ENV === 'stg' ? `https://api-stg.${getCloudDomain()}` : `https://api.${getCloudDomain()}`;
1111
const username = process.env.testerBitsrcUsername || 'tester';
1212
const password = process.env.testerBitsrcPassword;
1313

scopes/cloud/cloud/cloud.main.runtime.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { MainRuntime } from '@teambit/cli';
22
import {
3-
BASE_CLOUD_DOMAIN,
3+
getCloudDomain,
44
DEFAULT_HUB_DOMAIN,
5-
SYMPHONY_URL,
5+
getSymphonyUrl,
66
SYMPHONY_GRAPHQL,
77
DEFAULT_HUB_LOGIN,
88
DEFAULT_ANALYTICS_DOMAIN,
@@ -67,9 +67,9 @@ export class CloudMain {
6767
static dependencies = [];
6868
static runtime = MainRuntime;
6969
static defaultConfig: CloudWorkspaceConfig = {
70-
cloudDomain: BASE_CLOUD_DOMAIN,
70+
cloudDomain: getCloudDomain(),
7171
cloudHubDomain: DEFAULT_HUB_DOMAIN,
72-
cloudApi: SYMPHONY_URL,
72+
cloudApi: getSymphonyUrl(),
7373
cloudGraphQL: SYMPHONY_GRAPHQL,
7474
loginDomain: DEFAULT_HUB_LOGIN,
7575
analyticsDomain: DEFAULT_ANALYTICS_DOMAIN,

scopes/component/snapping/tag-model-component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
CFG_USER_EMAIL_KEY,
1313
CFG_USER_NAME_KEY,
1414
CFG_USER_TOKEN_KEY,
15-
BASE_CLOUD_DOMAIN,
15+
getCloudDomain,
1616
Extensions,
1717
} from '@teambit/legacy/dist/constants';
1818
import { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';
@@ -448,7 +448,7 @@ async function getBitCloudUsername(): Promise<string | undefined> {
448448
const token = await globalConfig.get(CFG_USER_TOKEN_KEY);
449449
if (!token) return '';
450450
try {
451-
const res = await fetch(`https://api.${BASE_CLOUD_DOMAIN}/user`, {
451+
const res = await fetch(`https://api.${getCloudDomain()}/user`, {
452452
headers: {
453453
Authorization: `Bearer ${token}`,
454454
'Content-Type': 'application/json',

scopes/dependencies/dependency-resolver/dependency-resolver.main.runtime.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { RequireableComponent } from '@teambit/harmony.modules.requireable-compo
1313
import type { LoggerMain } from '@teambit/logger';
1414
import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';
1515
import { Logger, LoggerAspect } from '@teambit/logger';
16-
import { CFG_PACKAGE_MANAGER_CACHE, CFG_REGISTRY_URL_KEY, CFG_USER_TOKEN_KEY } from '@teambit/legacy/dist/constants';
16+
import { CFG_PACKAGE_MANAGER_CACHE, CFG_REGISTRY_URL_KEY, CFG_USER_TOKEN_KEY, getCloudDomain } from '@teambit/legacy/dist/constants';
1717
// TODO: it's weird we take it from here.. think about it../workspace/utils
1818
import { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';
1919
import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
@@ -82,7 +82,7 @@ import { EnvPolicy } from './policy/env-policy';
8282
* @deprecated use BIT_CLOUD_REGISTRY instead
8383
*/
8484
export const BIT_DEV_REGISTRY = 'https://node.bit.dev/';
85-
export const BIT_CLOUD_REGISTRY = 'https://node.bit.cloud/';
85+
export const BIT_CLOUD_REGISTRY = `https://node.${getCloudDomain()}/`;
8686
export const NPM_REGISTRY = 'https://registry.npmjs.org/';
8787

8888
export { ProxyConfig, NetworkConfig } from '@teambit/legacy/dist/scope/network/http';

scopes/dependencies/dependency-resolver/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export type {
1818
DependencyResolverMain,
1919
DependencyResolverWorkspaceConfig,
2020
DependencyResolverVariantConfig,
21+
BIT_CLOUD_REGISTRY,
2122
} from './dependency-resolver.main.runtime';
2223
export {
2324
BIT_DEV_REGISTRY,

src/cli/commands/public-cmds/login-cmd.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chalk from 'chalk';
22

33
import { login } from '../../../api/consumer';
4-
import { BASE_CLOUD_DOMAIN } from '../../../constants';
4+
import { getCloudDomain } from '../../../constants';
55
import { Group } from '../../command-groups';
66
import { CommandOptions, LegacyCommand } from '../../legacy-command';
77

@@ -14,8 +14,8 @@ export default class Login implements LegacyCommand {
1414
opts = [
1515
['p', 'port <port>', 'port number to open for localhost server (default 8085)'],
1616
['', 'suppress-browser-launch', 'do not open a browser for authentication'],
17-
['', 'npmrc-path <path>', `path to npmrc file to configure ${BASE_CLOUD_DOMAIN} registry`],
18-
['', 'skip-registry-config', `don't configure ${BASE_CLOUD_DOMAIN} registry`],
17+
['', 'npmrc-path <path>', `path to npmrc file to configure ${getCloudDomain()} registry`],
18+
['', 'skip-registry-config', `don't configure ${getCloudDomain()} registry`],
1919
[
2020
'',
2121
'machine-name <name>',

src/cli/templates/eject-template.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import chalk from 'chalk';
22

3-
import { BASE_CLOUD_DOMAIN } from '../../constants';
3+
import { getCloudDomain } from '../../constants';
44
import { EjectResults } from '../../consumer/component-ops/eject-components';
55

66
export const successEjectMessage = 'successfully ejected the following components';
@@ -28,7 +28,7 @@ use the '--force' flag to discard local modifications and proceed with the eject
2828
? `local components that were not exported yet: ${failures.notExportedComponents.toString()}\n`
2929
: '';
3030
const selfHosted = failures.selfHostedExportedComponents.length
31-
? `components that were exported to a self hosted scope (not ${BASE_CLOUD_DOMAIN}): ${failures.selfHostedExportedComponents.toString()}\n`
31+
? `components that were exported to a self hosted scope (not ${getCloudDomain()}): ${failures.selfHostedExportedComponents.toString()}\n`
3232
: '';
3333
const body = modified + staged + notExported + selfHosted;
3434
if (body) return chalk.underline(title) + chalk.red(body);

src/constants.ts

Lines changed: 57 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import * as path from 'path';
44
import format from 'string-format';
55

66
import { PathOsBased } from './utils/path';
7+
import { getSync } from './api/consumer/lib/global-config';
78

89
const userHome = require('user-home');
910
const packageFile = require('../package.json');
1011

12+
1113
export const IS_WINDOWS = os.platform() === 'win32';
1214

1315
function getDirectory(): PathOsBased {
@@ -32,6 +34,34 @@ function getCacheDirectory(): PathOsBased {
3234
return getDirectory();
3335
}
3436

37+
/**
38+
* cache root directory
39+
*/
40+
export const CACHE_ROOT = getCacheDirectory();
41+
42+
/**
43+
* global config directories
44+
*/
45+
export const GLOBAL_CONFIG: PathOsBased = path.join(CACHE_ROOT, 'config');
46+
47+
export const GLOBAL_LOGS: PathOsBased = path.join(CACHE_ROOT, 'logs');
48+
49+
export const GLOBAL_SCOPE: PathOsBased = path.join(CACHE_ROOT, 'scope');
50+
51+
export const GLOBALS_DEFAULT_CAPSULES = path.join(CACHE_ROOT, 'capsules');
52+
53+
export const GLOBAL_CONFIG_FILE = 'config.json';
54+
55+
export const GLOBAL_REMOTES = 'global-remotes.json';
56+
57+
export const BIT_HIDDEN_DIR = '.bit';
58+
59+
export const BIT_GIT_DIR = 'bit';
60+
61+
export const DOT_GIT_DIR = '.git';
62+
63+
64+
3565
export const BIT_USAGE = '[--version] [--help] <command> [<args>]';
3666

3767
export const BITS_DIRNAME = 'components';
@@ -123,41 +153,56 @@ export const SPINNER_TYPE = IS_WINDOWS ? cliSpinners.dots : cliSpinners.dots12;
123153
*/
124154

125155
/**
126-
* @deprecated use 'BASE_CLOUD_DOMAIN' or 'BASE_COMMUNITY_DOMAIN'
156+
* @deprecated use 'getCloudDomain()' or 'BASE_COMMUNITY_DOMAIN'
127157
*/
128158
export const BASE_WEB_DOMAIN = 'bit.dev';
129159

130-
export const BASE_CLOUD_DOMAIN = 'bit.cloud';
160+
export const CFG_CLOUD_DOMAIN_KEY = 'cloud_domain';
161+
162+
export const DEFAULT_CLOUD_DOMAIN = 'bit.cloud';
163+
let resolvedCloudDomain;
164+
export const getCloudDomain = (): string => {
165+
if (resolvedCloudDomain) return resolvedCloudDomain;
166+
resolvedCloudDomain = getSync(CFG_CLOUD_DOMAIN_KEY) || DEFAULT_CLOUD_DOMAIN;
167+
return resolvedCloudDomain;
168+
}
131169

132170
export const BASE_COMMUNITY_DOMAIN = 'bit.dev';
133171

134172
export const PREVIOUSLY_BASE_WEB_DOMAIN = 'bitsrc.io';
135173

136-
export const DEFAULT_HUB_DOMAIN = `hub.${BASE_CLOUD_DOMAIN}`;
174+
export const DEFAULT_HUB_DOMAIN = `hub.${getCloudDomain()}`;
137175

138-
export const SYMPHONY_URL = `symphony.${BASE_CLOUD_DOMAIN}`;
176+
export const CFG_SYMPHONY_URL_KEY = 'symphony_url';
177+
178+
let resolvedSymphonyUrl;
179+
export const getSymphonyUrl = (): string => {
180+
if (resolvedSymphonyUrl) return resolvedSymphonyUrl;
181+
resolvedSymphonyUrl = getSync(CFG_SYMPHONY_URL_KEY) || `symphony.${getCloudDomain()}`;
182+
return resolvedSymphonyUrl;
183+
}
139184

140-
export const SYMPHONY_GRAPHQL = `http://${SYMPHONY_URL}/graphql`;
185+
export const SYMPHONY_GRAPHQL = `https://${getSymphonyUrl()}/graphql`;
141186

142187
export const BASE_DOCS_DOMAIN = `${BASE_COMMUNITY_DOMAIN}/docs`;
143188

144189
export const BASE_LEGACY_DOCS_DOMAIN = `legacy-docs.${BASE_COMMUNITY_DOMAIN}/docs`;
145190

146-
export const DEFAULT_HUB_LOGIN = `https://${BASE_CLOUD_DOMAIN}/bit-login`;
191+
export const DEFAULT_HUB_LOGIN = `https://${getCloudDomain()}/bit-login`;
147192

148-
export const DEFAULT_ANALYTICS_DOMAIN = `https://analytics.${BASE_CLOUD_DOMAIN}/`;
193+
export const DEFAULT_ANALYTICS_DOMAIN = `https://analytics.${getCloudDomain()}/`;
149194

150-
export const SEARCH_DOMAIN = `api.${BASE_CLOUD_DOMAIN}`;
195+
export const SEARCH_DOMAIN = `api.${getCloudDomain()}`;
151196

152-
export const RELEASE_SERVER = `https://api.${BASE_CLOUD_DOMAIN}/release`;
197+
export const RELEASE_SERVER = `https://api.${getCloudDomain()}/release`;
153198

154-
export const DEFAULT_REGISTRY_URL = `https://node.bit.cloud`;
199+
export const DEFAULT_REGISTRY_URL = `https://node.${getCloudDomain()}`;
155200

156201
export const PREVIOUSLY_DEFAULT_REGISTRY_URL = `https://node.${PREVIOUSLY_BASE_WEB_DOMAIN}`;
157202

158-
export const CENTRAL_BIT_HUB_URL = `https://${SYMPHONY_URL}/exporter`;
203+
export const CENTRAL_BIT_HUB_URL = `https://${getSymphonyUrl()}/exporter`;
159204

160-
export const CENTRAL_BIT_HUB_NAME = 'bit.cloud';
205+
export const CENTRAL_BIT_HUB_NAME = getCloudDomain();
161206

162207
// END URLS
163208

@@ -221,8 +266,6 @@ export const CFG_SSH_KEY_FILE_KEY = 'ssh_key_file';
221266

222267
export const CFG_HUB_DOMAIN_KEY = 'hub_domain';
223268

224-
export const CFG_SYMPHONY_URL_KEY = 'symphony_url';
225-
226269
export const CFG_HUB_LOGIN_KEY = 'hub_domain_login';
227270

228271
export const CFG_ANALYTICS_DOMAIN_KEY = 'analytics_domain';
@@ -377,32 +420,6 @@ export const HOOKS_NAMES = [
377420
POST_REMOVE_REMOTE,
378421
];
379422

380-
/**
381-
* cache root directory
382-
*/
383-
export const CACHE_ROOT = getCacheDirectory();
384-
385-
/**
386-
* global config directories
387-
*/
388-
export const GLOBAL_CONFIG: PathOsBased = path.join(CACHE_ROOT, 'config');
389-
390-
export const GLOBAL_LOGS: PathOsBased = path.join(CACHE_ROOT, 'logs');
391-
392-
export const GLOBAL_SCOPE: PathOsBased = path.join(CACHE_ROOT, 'scope');
393-
394-
export const GLOBALS_DEFAULT_CAPSULES = path.join(CACHE_ROOT, 'capsules');
395-
396-
export const GLOBAL_CONFIG_FILE = 'config.json';
397-
398-
export const GLOBAL_REMOTES = 'global-remotes.json';
399-
400-
export const BIT_HIDDEN_DIR = '.bit';
401-
402-
export const BIT_GIT_DIR = 'bit';
403-
404-
export const DOT_GIT_DIR = '.git';
405-
406423
/**
407424
* bit registry default URL.
408425
*/

src/e2e-helper/e2e-config-helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import R from 'ramda';
22

3-
import { BASE_CLOUD_DOMAIN, CFG_GIT_EXECUTABLE_PATH } from '../constants';
3+
import { getCloudDomain, CFG_GIT_EXECUTABLE_PATH } from '../constants';
44
import CommandHelper from './e2e-command-helper';
55

66
export default class ConfigHelper {
@@ -9,7 +9,7 @@ export default class ConfigHelper {
99
this.command = command;
1010
}
1111

12-
setHubDomain(domain = `hub.${BASE_CLOUD_DOMAIN}`) {
12+
setHubDomain(domain = `hub.${getCloudDomain()}`) {
1313
this.command.setConfig('hub_domain', domain);
1414
}
1515

src/remotes/remote-resolver/remote-resolver.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import {
55
CFG_HUB_DOMAIN_KEY,
66
DEFAULT_HUB_DOMAIN,
77
CFG_USER_TOKEN_KEY,
8-
SYMPHONY_URL,
9-
CFG_SYMPHONY_URL_KEY,
8+
getSymphonyUrl
109
} from '../../constants';
1110

1211
import Scope from '../../scope/scope';
@@ -15,7 +14,7 @@ import logger from '../../logger/logger';
1514
import { ScopeNotFoundOrDenied } from '../exceptions/scope-not-found-or-denied';
1615

1716
const hubDomain = getSync(CFG_HUB_DOMAIN_KEY) || DEFAULT_HUB_DOMAIN;
18-
const symphonyUrl = getSync(CFG_SYMPHONY_URL_KEY) || SYMPHONY_URL;
17+
const symphonyUrl = getSymphonyUrl();
1918

2019
type ResolverFunction = (scopeName: string, thisScopeName?: string, token?: string) => Promise<string>;
2120

0 commit comments

Comments
 (0)