@forge/cli-shared 8.15.2-next.0-experimental-1dcd593 → 8.15.2-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -7
- package/out/graphql/graphql-types.d.ts +287 -2
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +63 -38
- package/out/tunnel/docker-compose-lifecycle.d.ts +2 -9
- package/out/tunnel/docker-compose-lifecycle.d.ts.map +1 -1
- package/out/tunnel/docker-compose-lifecycle.js +23 -212
- package/out/tunnel/tunnel-options.d.ts +0 -2
- package/out/tunnel/tunnel-options.d.ts.map +1 -1
- package/out/tunnel/tunnel-options.js +1 -3
- package/out/ui/text.d.ts +5 -1
- package/out/ui/text.d.ts.map +1 -1
- package/out/ui/text.js +7 -3
- package/package.json +2 -2
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processDockerAuthentication = exports.stopDockerComposeStack = exports.
|
|
3
|
+
exports.processDockerAuthentication = exports.stopDockerComposeStack = exports.startDockerComposeStack = exports.deleteDockerComposeFile = exports.generateContainersDockerComposeFile = exports.DockerAuthenticationError = exports.CannotUseBothImageAndBuildContextError = exports.MissingImageOrBuildContextError = exports.DockerUnableToStartError = exports.DockerUnableToPullProxySidecarImage = exports.InvalidContainerServicePort = exports.K8S_AUTH_TOKEN_FILENAME = exports.CONTAINER_SERVICE_ASSETS = exports.PROXY_SIDECAR_VOLUME_DIR = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs = tslib_1.__importStar(require("fs"));
|
|
6
6
|
const path = tslib_1.__importStar(require("path"));
|
|
7
7
|
const yaml = tslib_1.__importStar(require("yaml"));
|
|
8
|
-
const http = tslib_1.__importStar(require("http"));
|
|
9
8
|
const docker_compose_1 = require("docker-compose");
|
|
10
9
|
const shared_1 = require("../shared");
|
|
11
10
|
const text_1 = require("../ui/text");
|
|
@@ -15,14 +14,6 @@ exports.PROXY_SIDECAR_VOLUME_DIR = '/forge/container';
|
|
|
15
14
|
exports.CONTAINER_SERVICE_ASSETS = '.container-service-assets';
|
|
16
15
|
exports.K8S_AUTH_TOKEN_FILENAME = 'local-account';
|
|
17
16
|
const PROXY_SIDECAR_SERVICE_NAME = 'proxy-sidecar';
|
|
18
|
-
const LIFECYCLE_PATTERNS = [
|
|
19
|
-
/Container .* (Starting|Started|Stopping|Stopped|Creating|Created|Recreated)/,
|
|
20
|
-
/Network .* (Creating|Created|Removing|Removed)/,
|
|
21
|
-
/Volume .* (Creating|Created|Removing|Removed)/,
|
|
22
|
-
/\[[\+\-]\] Running/
|
|
23
|
-
];
|
|
24
|
-
exports.STARTUP_TIMER_MS = 30 * 1000;
|
|
25
|
-
exports.STARTUP_TIMER_BUFFER_MS = 5 * 1000;
|
|
26
17
|
class InvalidContainerServicePort extends shared_1.UserError {
|
|
27
18
|
constructor(serviceKey) {
|
|
28
19
|
super(text_1.Text.error.invalidServicePort(serviceKey));
|
|
@@ -41,12 +32,6 @@ class DockerUnableToStartError extends shared_1.UserError {
|
|
|
41
32
|
}
|
|
42
33
|
}
|
|
43
34
|
exports.DockerUnableToStartError = DockerUnableToStartError;
|
|
44
|
-
class UnableToParseDockerComposeFileError extends shared_1.UserError {
|
|
45
|
-
constructor(serviceKey, err) {
|
|
46
|
-
super(text_1.Text.tunnel.UnableToParseDockerComposeFileError(serviceKey, err?.message ?? 'Unknown Error Occurred.'));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.UnableToParseDockerComposeFileError = UnableToParseDockerComposeFileError;
|
|
50
35
|
class MissingImageOrBuildContextError extends shared_1.UserError {
|
|
51
36
|
constructor(containerKey) {
|
|
52
37
|
super(text_1.Text.tunnel.missingImageOrBuildContext(containerKey));
|
|
@@ -67,7 +52,7 @@ class DockerAuthenticationError extends shared_1.UserError {
|
|
|
67
52
|
exports.DockerAuthenticationError = DockerAuthenticationError;
|
|
68
53
|
const generateContainersDockerComposeFile = async (services, appId, envId) => {
|
|
69
54
|
const filesGenerated = {};
|
|
70
|
-
for (const
|
|
55
|
+
for (const service of services) {
|
|
71
56
|
const { key: serviceKey, containers } = service;
|
|
72
57
|
const containersWithTunnelConfig = containers.filter((container) => !!container.tunnel);
|
|
73
58
|
if (containersWithTunnelConfig.length > 0) {
|
|
@@ -87,17 +72,12 @@ const generateContainersDockerComposeFile = async (services, appId, envId) => {
|
|
|
87
72
|
...container.tunnel?.docker,
|
|
88
73
|
depends_on: [PROXY_SIDECAR_SERVICE_NAME]
|
|
89
74
|
};
|
|
90
|
-
if (config.build?.context) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (config.develop?.watch) {
|
|
97
|
-
config.develop.watch = config.develop.watch.map((watchConfig) => ({
|
|
98
|
-
...watchConfig,
|
|
99
|
-
path: adjustFilePath(watchConfig.path)
|
|
100
|
-
}));
|
|
75
|
+
if (config.build?.context && !path.isAbsolute(config.build.context)) {
|
|
76
|
+
let context = config.build.context;
|
|
77
|
+
if (context.startsWith('./')) {
|
|
78
|
+
context = context.slice(2);
|
|
79
|
+
}
|
|
80
|
+
config.build.context = '../' + context;
|
|
101
81
|
}
|
|
102
82
|
const envArray = container?.tunnel?.docker.environment ?? [];
|
|
103
83
|
const filteredEnvArray = envArray.filter((envVar) => !envVar.startsWith('FORGE_EGRESS_PROXY_URL='));
|
|
@@ -105,11 +85,10 @@ const generateContainersDockerComposeFile = async (services, appId, envId) => {
|
|
|
105
85
|
config.environment = filteredEnvArray;
|
|
106
86
|
return [container.key, config];
|
|
107
87
|
}));
|
|
108
|
-
const healthEndpointPath = containersWithTunnelConfig[0].health.route.path;
|
|
109
88
|
const dockerComposeConfig = {
|
|
110
89
|
services: {
|
|
111
90
|
...containerConfig,
|
|
112
|
-
...(await getProxySidecarConfig(serviceKey, Object.keys(containerConfig), port, appId, envId
|
|
91
|
+
...(await getProxySidecarConfig(serviceKey, Object.keys(containerConfig), port, appId, envId))
|
|
113
92
|
}
|
|
114
93
|
};
|
|
115
94
|
const yamlString = yaml.stringify(dockerComposeConfig);
|
|
@@ -121,17 +100,7 @@ const generateContainersDockerComposeFile = async (services, appId, envId) => {
|
|
|
121
100
|
return filesGenerated;
|
|
122
101
|
};
|
|
123
102
|
exports.generateContainersDockerComposeFile = generateContainersDockerComposeFile;
|
|
124
|
-
const
|
|
125
|
-
if (path.isAbsolute(filePath)) {
|
|
126
|
-
return filePath;
|
|
127
|
-
}
|
|
128
|
-
let adjusted = filePath;
|
|
129
|
-
if (adjusted.startsWith('./')) {
|
|
130
|
-
adjusted = adjusted.slice(2);
|
|
131
|
-
}
|
|
132
|
-
return path.join('..', adjusted);
|
|
133
|
-
};
|
|
134
|
-
const getProxySidecarConfig = async (serviceKey, containerKeys, port, appId, envId, serviceIndex, healthEndpointPath) => {
|
|
103
|
+
const getProxySidecarConfig = async (serviceKey, containerKeys, port, appId, envId) => {
|
|
135
104
|
let fopBaseUrl = 'https://forge-outbound-proxy.services.atlassian.com';
|
|
136
105
|
let jwksUrl = 'https://forge.cdn.prod.atlassian-dev.net/.well-known/jwks.json';
|
|
137
106
|
let proxySidecarImage = 'forge-ecr.services.atlassian.com/forge-platform/proxy-sidecar:latest';
|
|
@@ -155,14 +124,10 @@ const getProxySidecarConfig = async (serviceKey, containerKeys, port, appId, env
|
|
|
155
124
|
`ENV_ID=ari:cloud:ecosystem::environment/${appIdShort}/${envId}`,
|
|
156
125
|
`JWKS_URL=${jwksUrl}`,
|
|
157
126
|
`IS_LOCAL_DEV=true`,
|
|
158
|
-
`K8S_AUTH_TOKEN_PATH=${exports.PROXY_SIDECAR_VOLUME_DIR}/${exports.K8S_AUTH_TOKEN_FILENAME}
|
|
159
|
-
`${containerKeys[0]}_CONTAINER_HEALTHCHECK=http://${containerKeys[0]}:8080${healthEndpointPath}`
|
|
127
|
+
`K8S_AUTH_TOKEN_PATH=${exports.PROXY_SIDECAR_VOLUME_DIR}/${exports.K8S_AUTH_TOKEN_FILENAME}`
|
|
160
128
|
],
|
|
161
129
|
volumes: [`../${exports.CONTAINER_SERVICE_ASSETS}:${exports.PROXY_SIDECAR_VOLUME_DIR}:ro`],
|
|
162
|
-
ports: [
|
|
163
|
-
`${port}:${tunnel_options_1.DEFAULT_PROXY_INGRESS_PORT}`,
|
|
164
|
-
`${tunnel_options_1.DEFAULT_PROXY_HEALTHCHECK_PORT_HOST_MACHINE + serviceIndex}:${tunnel_options_1.DEFAULT_PROXY_HEALTHCHECK_PORT}`
|
|
165
|
-
]
|
|
130
|
+
ports: [`${port}:${tunnel_options_1.DEFAULT_PROXY_INGRESS_PORT}`]
|
|
166
131
|
}
|
|
167
132
|
};
|
|
168
133
|
};
|
|
@@ -189,7 +154,7 @@ const deleteDockerComposeFile = async (composeFile) => {
|
|
|
189
154
|
}
|
|
190
155
|
};
|
|
191
156
|
exports.deleteDockerComposeFile = deleteDockerComposeFile;
|
|
192
|
-
const startDockerComposeStack = async (dockerComposeFilePath, serviceKey
|
|
157
|
+
const startDockerComposeStack = async (dockerComposeFilePath, serviceKey) => {
|
|
193
158
|
try {
|
|
194
159
|
await (0, docker_compose_1.pullOne)('proxy-sidecar', {
|
|
195
160
|
cwd: path.dirname(dockerComposeFilePath),
|
|
@@ -200,154 +165,21 @@ const startDockerComposeStack = async (dockerComposeFilePath, serviceKey, logger
|
|
|
200
165
|
catch (err) {
|
|
201
166
|
throw new DockerUnableToPullProxySidecarImage(err);
|
|
202
167
|
}
|
|
203
|
-
await waitForContainersToStart(dockerComposeFilePath, serviceKey, logger);
|
|
204
|
-
};
|
|
205
|
-
exports.startDockerComposeStack = startDockerComposeStack;
|
|
206
|
-
const determineComposeFlags = async (dockerComposeFilePath, serviceKey, logger) => {
|
|
207
|
-
const flags = ['--build', '--quiet-pull'];
|
|
208
|
-
try {
|
|
209
|
-
const composeConfig = getComposeConfig(dockerComposeFilePath);
|
|
210
|
-
const hasWatchConfig = Object.values(composeConfig?.services ?? {}).some((service) => service?.develop?.watch);
|
|
211
|
-
if (hasWatchConfig) {
|
|
212
|
-
logger.info(`Hot reload config detected. Starting up ${serviceKey} containers using the --watch flag.`);
|
|
213
|
-
flags.push('--watch');
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
catch (_) { }
|
|
217
|
-
return flags;
|
|
218
|
-
};
|
|
219
|
-
exports.determineComposeFlags = determineComposeFlags;
|
|
220
|
-
const getComposeConfig = (dockerComposeFilePath) => {
|
|
221
|
-
try {
|
|
222
|
-
const composeContent = fs.readFileSync(dockerComposeFilePath, 'utf8');
|
|
223
|
-
const composeConfig = yaml.parse(composeContent);
|
|
224
|
-
return composeConfig;
|
|
225
|
-
}
|
|
226
|
-
catch (_) { }
|
|
227
|
-
return undefined;
|
|
228
|
-
};
|
|
229
|
-
const extractProxySidecarHealthcheckUrl = (composeConfig) => {
|
|
230
|
-
if (!composeConfig?.services) {
|
|
231
|
-
return undefined;
|
|
232
|
-
}
|
|
233
|
-
let healthCheckHostPort = undefined;
|
|
234
|
-
try {
|
|
235
|
-
const proxySidecarService = composeConfig.services[PROXY_SIDECAR_SERVICE_NAME];
|
|
236
|
-
if (proxySidecarService && proxySidecarService.ports && proxySidecarService.ports.length > 0) {
|
|
237
|
-
const portMapping = proxySidecarService.ports.find((portMapping) => {
|
|
238
|
-
const parts = portMapping.split(':');
|
|
239
|
-
return parts[1] === tunnel_options_1.DEFAULT_PROXY_HEALTHCHECK_PORT.toString();
|
|
240
|
-
});
|
|
241
|
-
if (portMapping) {
|
|
242
|
-
healthCheckHostPort = portMapping.split(':')[0];
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
catch (_) { }
|
|
247
|
-
if (healthCheckHostPort) {
|
|
248
|
-
return `http://localhost:${healthCheckHostPort}/health`;
|
|
249
|
-
}
|
|
250
|
-
return undefined;
|
|
251
|
-
};
|
|
252
|
-
const checkContainerHealth = async (url) => {
|
|
253
|
-
return new Promise((resolve) => {
|
|
254
|
-
const request = http.get(url, { timeout: 3000 }, (res) => {
|
|
255
|
-
resolve((res.statusCode ?? 0) >= 200 && (res.statusCode ?? 0) < 300);
|
|
256
|
-
});
|
|
257
|
-
request.on('error', () => {
|
|
258
|
-
resolve(false);
|
|
259
|
-
});
|
|
260
|
-
request.on('timeout', () => {
|
|
261
|
-
request.destroy();
|
|
262
|
-
resolve(false);
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
};
|
|
266
|
-
const pollContainerHealth = async (proxySidecarHealthEndpointUrl, logger) => {
|
|
267
|
-
const maxAttempts = exports.STARTUP_TIMER_MS / 1000 - exports.STARTUP_TIMER_BUFFER_MS / 1000;
|
|
268
|
-
const pollInterval = 1000;
|
|
269
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
270
|
-
const isHealthy = await checkContainerHealth(proxySidecarHealthEndpointUrl);
|
|
271
|
-
if (isHealthy) {
|
|
272
|
-
logger.info('All health endpoints responded successfully!');
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
if (attempt === maxAttempts) {
|
|
276
|
-
logger.warn(`Containers did not become healthy within ${exports.STARTUP_TIMER_MS / 1000}s`);
|
|
277
|
-
return false;
|
|
278
|
-
}
|
|
279
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
280
|
-
}
|
|
281
|
-
return false;
|
|
282
|
-
};
|
|
283
|
-
const waitForContainersToStart = async (dockerComposeFilePath, serviceKey, logger) => {
|
|
284
|
-
const composeFlags = await (0, exports.determineComposeFlags)(dockerComposeFilePath, serviceKey, logger);
|
|
285
|
-
let proxySidecarHealthEndpointUrl;
|
|
286
168
|
try {
|
|
287
|
-
|
|
288
|
-
proxySidecarHealthEndpointUrl = extractProxySidecarHealthcheckUrl(composeConfig);
|
|
289
|
-
}
|
|
290
|
-
catch (err) {
|
|
291
|
-
throw new UnableToParseDockerComposeFileError(serviceKey, err);
|
|
292
|
-
}
|
|
293
|
-
return new Promise((resolve, reject) => {
|
|
294
|
-
let containersStarted = false;
|
|
295
|
-
const startupTimer = setTimeout(() => {
|
|
296
|
-
if (!containersStarted) {
|
|
297
|
-
containersStarted = true;
|
|
298
|
-
logger.info(`Startup timeout reached (${exports.STARTUP_TIMER_MS / 1000}s). Starting up the forge tunnel...`);
|
|
299
|
-
resolve();
|
|
300
|
-
}
|
|
301
|
-
}, exports.STARTUP_TIMER_MS);
|
|
302
|
-
const logFilter = (chunk) => {
|
|
303
|
-
const output = chunk.toString();
|
|
304
|
-
const lines = output.split('\n');
|
|
305
|
-
lines.forEach((line) => {
|
|
306
|
-
if (!line.trim())
|
|
307
|
-
return;
|
|
308
|
-
if (LIFECYCLE_PATTERNS.some((pattern) => pattern.test(line))) {
|
|
309
|
-
logger.info(line);
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
};
|
|
313
|
-
(0, docker_compose_1.execCompose)('up', composeFlags, {
|
|
169
|
+
await (0, docker_compose_1.upAll)({
|
|
314
170
|
cwd: path.dirname(dockerComposeFilePath),
|
|
315
|
-
log:
|
|
171
|
+
log: true,
|
|
316
172
|
config: dockerComposeFilePath,
|
|
317
173
|
composeOptions: [`-p${serviceKey}`],
|
|
318
|
-
|
|
319
|
-
}).catch((error) => {
|
|
320
|
-
clearTimeout(startupTimer);
|
|
321
|
-
const errorMessage = error?.err || error?.out || error?.message || 'Unknown Error Occurred.';
|
|
322
|
-
reject(new DockerUnableToStartError(new Error(errorMessage)));
|
|
174
|
+
commandOptions: ['--build']
|
|
323
175
|
});
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
if (proxySidecarHealthEndpointUrl) {
|
|
329
|
-
logger.info(`Polling health endpoints for service: ${serviceKey}`);
|
|
330
|
-
const allHealthy = await pollContainerHealth(proxySidecarHealthEndpointUrl, logger);
|
|
331
|
-
if (allHealthy && !containersStarted) {
|
|
332
|
-
containersStarted = true;
|
|
333
|
-
clearTimeout(startupTimer);
|
|
334
|
-
resolve();
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
else {
|
|
338
|
-
logger.info('No health check endpoints found. Continuing with tunnel startup...');
|
|
339
|
-
containersStarted = true;
|
|
340
|
-
clearTimeout(startupTimer);
|
|
341
|
-
resolve();
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
catch (err) {
|
|
345
|
-
logger.warn(`Health check polling failed: ${err.message}. Relying on startup timeout...`);
|
|
346
|
-
}
|
|
347
|
-
}, exports.STARTUP_TIMER_BUFFER_MS);
|
|
348
|
-
});
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
throw new DockerUnableToStartError(err);
|
|
179
|
+
}
|
|
349
180
|
};
|
|
350
|
-
|
|
181
|
+
exports.startDockerComposeStack = startDockerComposeStack;
|
|
182
|
+
const stopDockerComposeStack = async (configFile, composeFiles) => {
|
|
351
183
|
if (!composeFiles || Object.keys(composeFiles).length === 0)
|
|
352
184
|
return;
|
|
353
185
|
const { services } = await configFile.readConfig();
|
|
@@ -358,13 +190,7 @@ const stopDockerComposeStack = async (configFile, logger, composeFiles) => {
|
|
|
358
190
|
return;
|
|
359
191
|
await Promise.all(Object.entries(composeFiles).map(async ([serviceKey, file]) => {
|
|
360
192
|
try {
|
|
361
|
-
await (0, docker_compose_1.downAll)({
|
|
362
|
-
cwd: '.',
|
|
363
|
-
log: false,
|
|
364
|
-
config: file,
|
|
365
|
-
composeOptions: [`-p${serviceKey}`],
|
|
366
|
-
callback: createCustomLogFilter(logger)
|
|
367
|
-
});
|
|
193
|
+
await (0, docker_compose_1.downAll)({ cwd: '.', log: true, config: file, composeOptions: [`-p${serviceKey}`] });
|
|
368
194
|
await (0, exports.deleteDockerComposeFile)(file);
|
|
369
195
|
}
|
|
370
196
|
catch (err) {
|
|
@@ -374,21 +200,6 @@ const stopDockerComposeStack = async (configFile, logger, composeFiles) => {
|
|
|
374
200
|
deleteContainerServiceAssetsDir();
|
|
375
201
|
};
|
|
376
202
|
exports.stopDockerComposeStack = stopDockerComposeStack;
|
|
377
|
-
const createCustomLogFilter = (logger) => {
|
|
378
|
-
let buffer = '';
|
|
379
|
-
return (chunk) => {
|
|
380
|
-
buffer += chunk.toString();
|
|
381
|
-
const lines = buffer.split('\n');
|
|
382
|
-
buffer = lines.pop() || '';
|
|
383
|
-
lines.forEach((line) => {
|
|
384
|
-
if (!line.trim())
|
|
385
|
-
return;
|
|
386
|
-
if (LIFECYCLE_PATTERNS.some((pattern) => pattern.test(line))) {
|
|
387
|
-
logger.info(line);
|
|
388
|
-
}
|
|
389
|
-
});
|
|
390
|
-
};
|
|
391
|
-
};
|
|
392
203
|
const processDockerAuthentication = async (childProcess) => {
|
|
393
204
|
await new Promise((resolve, reject) => {
|
|
394
205
|
childProcess.on('close', (code) => {
|
|
@@ -17,7 +17,5 @@ export declare const defaultDebugStartingPort = 9229;
|
|
|
17
17
|
export declare const TUNNEL_BUNDLE_DIRECTORY: string;
|
|
18
18
|
export declare const defaultNoDebugTunnelOptions: TunnelOptions;
|
|
19
19
|
export declare const DEFAULT_PROXY_INGRESS_PORT = 7071;
|
|
20
|
-
export declare const DEFAULT_PROXY_HEALTHCHECK_PORT = 7073;
|
|
21
|
-
export declare const DEFAULT_PROXY_HEALTHCHECK_PORT_HOST_MACHINE = 7011;
|
|
22
20
|
export declare function getServicePort(services?: Services, serviceKey?: string): Promise<number | undefined>;
|
|
23
21
|
//# sourceMappingURL=tunnel-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-options.d.ts","sourceRoot":"","sources":["../../src/tunnel/tunnel-options.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,oBAAY,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,GAAG;IAC5E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,uBAAuB,QAA8C,CAAC;AACnF,eAAO,MAAM,2BAA2B,EAAE,aAGzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel-options.d.ts","sourceRoot":"","sources":["../../src/tunnel/tunnel-options.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,oBAAY,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,GAAG;IAC5E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,uBAAuB,QAA8C,CAAC;AACnF,eAAO,MAAM,2BAA2B,EAAE,aAGzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAO/C,wBAAsB,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ1G"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getServicePort = exports.
|
|
3
|
+
exports.getServicePort = exports.DEFAULT_PROXY_INGRESS_PORT = exports.defaultNoDebugTunnelOptions = exports.TUNNEL_BUNDLE_DIRECTORY = exports.defaultDebugStartingPort = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
6
|
const shared_1 = require("../shared");
|
|
@@ -11,8 +11,6 @@ exports.defaultNoDebugTunnelOptions = {
|
|
|
11
11
|
debugStartingPort: exports.defaultDebugStartingPort
|
|
12
12
|
};
|
|
13
13
|
exports.DEFAULT_PROXY_INGRESS_PORT = 7071;
|
|
14
|
-
exports.DEFAULT_PROXY_HEALTHCHECK_PORT = 7073;
|
|
15
|
-
exports.DEFAULT_PROXY_HEALTHCHECK_PORT_HOST_MACHINE = 7011;
|
|
16
14
|
async function getServicePort(services, serviceKey) {
|
|
17
15
|
if (!serviceKey || !services || services.length === 0)
|
|
18
16
|
return undefined;
|
package/out/ui/text.d.ts
CHANGED
|
@@ -814,6 +814,11 @@ export declare const Text: {
|
|
|
814
814
|
noCloudId: string;
|
|
815
815
|
noResourceIdInWorkspace: string;
|
|
816
816
|
noInstallations: string;
|
|
817
|
+
status: {
|
|
818
|
+
outdatedPermissions: string;
|
|
819
|
+
outdatedApp: string;
|
|
820
|
+
upToDate: string;
|
|
821
|
+
};
|
|
817
822
|
};
|
|
818
823
|
deployList: {
|
|
819
824
|
cmd: string;
|
|
@@ -841,7 +846,6 @@ export declare const Text: {
|
|
|
841
846
|
unableToAuthenticateDocker: (errCode: string) => string;
|
|
842
847
|
unableToPullProxySidecarImage: (errMessage: string) => string;
|
|
843
848
|
unableToStartDockerComposeStack: (errMessage: string) => string;
|
|
844
|
-
UnableToParseDockerComposeFileError: (serviceKey: string, errMessage: string) => string;
|
|
845
849
|
unableToStopDockerComposeStack: (serviceKey: string, errMessage: string) => string;
|
|
846
850
|
missingImageOrBuildContext: (containerKey: string) => string;
|
|
847
851
|
cannotUseBothImageAndBuildContext: (containerKey: string) => string;
|
package/out/ui/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
|
package/out/ui/text.js
CHANGED
|
@@ -1028,7 +1028,12 @@ ${buildTerminalLink(link)}\n`,
|
|
|
1028
1028
|
noResourceId: 'Unknown site with no resource ID',
|
|
1029
1029
|
noCloudId: 'Unknown workspace with no cloud ID',
|
|
1030
1030
|
noResourceIdInWorkspace: 'Unknown workspace with no resource ID',
|
|
1031
|
-
noInstallations: `The app is not installed anywhere.\nRun ${forge('install')} to install your app on an Atlassian site.\n
|
|
1031
|
+
noInstallations: `The app is not installed anywhere.\nRun ${forge('install')} to install your app on an Atlassian site.\n`,
|
|
1032
|
+
status: {
|
|
1033
|
+
outdatedPermissions: 'Outdated permissions',
|
|
1034
|
+
outdatedApp: 'Outdated app',
|
|
1035
|
+
upToDate: 'Up-to-date'
|
|
1036
|
+
}
|
|
1032
1037
|
},
|
|
1033
1038
|
deployList: {
|
|
1034
1039
|
cmd: 'list app deployments',
|
|
@@ -1055,8 +1060,7 @@ ${buildTerminalLink(link)}\n`,
|
|
|
1055
1060
|
invalidDebugStartingPortNumber: (port) => `${chalk_1.default.bold('--debugStartingPort')} ${port} must be a valid port number.`,
|
|
1056
1061
|
unableToAuthenticateDocker: (errCode) => `Docker authentication process exited with code: ${errCode}.`,
|
|
1057
1062
|
unableToPullProxySidecarImage: (errMessage) => `Unable to pull the proxy sidecar image. Make sure to run 'forge containers docker-login' first. Full error: ${errMessage}`,
|
|
1058
|
-
unableToStartDockerComposeStack: (errMessage) => `Cannot start Docker Compose stack. This usually happens when Docker isn't running or
|
|
1059
|
-
UnableToParseDockerComposeFileError: (serviceKey, errMessage) => `Unable to parse the Docker Compose file for service: ${serviceKey}. Please ensure that the manifest tunnel config is correct. Full error: ${errMessage}`,
|
|
1063
|
+
unableToStartDockerComposeStack: (errMessage) => `Cannot start Docker Compose stack. This usually happens when Docker isn't running, or a Docker image doesn't exist. To fix this: Start a Docker engine, make sure all configured images exist, then retry the command. Full error: ${errMessage}`,
|
|
1060
1064
|
unableToStopDockerComposeStack: (serviceKey, errMessage) => `Failed to stop Docker Compose stack for ${serviceKey}. Full error: ${errMessage}`,
|
|
1061
1065
|
missingImageOrBuildContext: (containerKey) => `Container "${containerKey}" must either use an "image" config or "build" config in the tunnel configuration. Specify either an existing Docker image, or a build context from which the image will be built when the tunnel starts.`,
|
|
1062
1066
|
cannotUseBothImageAndBuildContext: (containerKey) => `Container "${containerKey}" cannot use both an "image" config and "build" config in the tunnel configuration. Specify either an existing Docker image, or a build context from which the image will be built when the tunnel starts.`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli-shared",
|
|
3
|
-
"version": "8.15.2-next.
|
|
3
|
+
"version": "8.15.2-next.2",
|
|
4
4
|
"description": "Common functionality for Forge CLI",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@forge/manifest": "12.1.1-next.
|
|
15
|
+
"@forge/manifest": "12.1.1-next.1",
|
|
16
16
|
"@forge/util": "2.0.1",
|
|
17
17
|
"@forge/i18n": "0.0.7",
|
|
18
18
|
"@sentry/node": "7.106.0",
|