bdy 1.22.95-dev → 1.22.97-dev
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/distTs/package.json +1 -1
- package/distTs/src/api/client.js +30 -1
- package/distTs/src/command/agent/install.js +14 -2
- package/distTs/src/command/artifact/create.js +8 -0
- package/distTs/src/command/artifact/get.js +2 -0
- package/distTs/src/command/artifact/publish.js +3 -1
- package/distTs/src/command/artifact/version/create.js +3 -1
- package/distTs/src/command/artifact/version/get.js +2 -0
- package/distTs/src/command/distro/create.js +8 -0
- package/distTs/src/command/distro/get.js +53 -0
- package/distTs/src/command/distro/route/create.js +6 -0
- package/distTs/src/command/distro/route/get.js +71 -0
- package/distTs/src/command/distro/route/update.js +21 -7
- package/distTs/src/command/distro/route.js +3 -0
- package/distTs/src/command/distro/update.js +65 -0
- package/distTs/src/command/distro.js +7 -0
- package/distTs/src/command/pipeline/get.js +2 -0
- package/distTs/src/command/sandbox/create.js +8 -0
- package/distTs/src/command/sandbox/get.js +2 -0
- package/distTs/src/command/tunnel/http.js +1 -1
- package/distTs/src/command/tunnel/start.js +1 -1
- package/distTs/src/command/tunnel/tcp.js +1 -1
- package/distTs/src/command/tunnel/tls.js +1 -1
- package/distTs/src/format.js +13 -0
- package/distTs/src/output.js +6 -1
- package/distTs/src/texts.js +46 -12
- package/distTs/src/tunnel/api/buddy.js +13 -4
- package/distTs/src/tunnel/cfg.js +6 -0
- package/distTs/src/tunnel/config.js +5 -1
- package/distTs/src/tunnel/output/interactive/tunnel.js +25 -0
- package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +2 -0
- package/distTs/src/tunnel/output/noninteractive/tunnel.js +13 -1
- package/distTs/src/tunnel/tunnel.js +3 -0
- package/distTs/src/utils.js +6 -0
- package/package.json +1 -1
package/distTs/package.json
CHANGED
package/distTs/src/api/client.js
CHANGED
|
@@ -521,6 +521,29 @@ class ApiClient {
|
|
|
521
521
|
query,
|
|
522
522
|
});
|
|
523
523
|
}
|
|
524
|
+
async updateDistribution(workspace, project, distributionId, body) {
|
|
525
|
+
const query = {};
|
|
526
|
+
if (project)
|
|
527
|
+
query.project_name = project;
|
|
528
|
+
return await this.request({
|
|
529
|
+
method: 'PATCH',
|
|
530
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/distributions/${encodeURIComponent(distributionId)}`,
|
|
531
|
+
query,
|
|
532
|
+
body,
|
|
533
|
+
parseResponseBody: true,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
async getDistribution(workspace, project, distributionId) {
|
|
537
|
+
const query = {};
|
|
538
|
+
if (project)
|
|
539
|
+
query.project_name = project;
|
|
540
|
+
return await this.request({
|
|
541
|
+
method: 'GET',
|
|
542
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/distributions/${encodeURIComponent(distributionId)}`,
|
|
543
|
+
query,
|
|
544
|
+
parseResponseBody: true,
|
|
545
|
+
});
|
|
546
|
+
}
|
|
524
547
|
async getDistributions(workspace, project) {
|
|
525
548
|
const query = {};
|
|
526
549
|
if (project)
|
|
@@ -1124,10 +1147,16 @@ class ApiClient {
|
|
|
1124
1147
|
rawResponseBody: true,
|
|
1125
1148
|
});
|
|
1126
1149
|
}
|
|
1127
|
-
async createArtifactVersion(workspace, artifactId, version, from) {
|
|
1150
|
+
async createArtifactVersion(workspace, artifactId, version, note, agentNote, from) {
|
|
1128
1151
|
const body = {
|
|
1129
1152
|
version,
|
|
1130
1153
|
};
|
|
1154
|
+
if (note) {
|
|
1155
|
+
body.note = note;
|
|
1156
|
+
}
|
|
1157
|
+
if (agentNote) {
|
|
1158
|
+
body.agent_note = agentNote;
|
|
1159
|
+
}
|
|
1131
1160
|
if (from) {
|
|
1132
1161
|
body.from = from;
|
|
1133
1162
|
}
|
|
@@ -79,6 +79,8 @@ const installService = async (options) => {
|
|
|
79
79
|
const target = !!options.target;
|
|
80
80
|
const tunneling = !!options.tunnels;
|
|
81
81
|
const proxy = !!options.proxy;
|
|
82
|
+
const note = options.note;
|
|
83
|
+
const agentNote = options.agentNote;
|
|
82
84
|
let agent;
|
|
83
85
|
if (id) {
|
|
84
86
|
try {
|
|
@@ -90,7 +92,10 @@ const installService = async (options) => {
|
|
|
90
92
|
}
|
|
91
93
|
if (!agent) {
|
|
92
94
|
const tags = prepareTags(options.tag);
|
|
93
|
-
agent = await ApiBuddy.register(true, target, tunneling, proxy, host, token, tags, (0, utils_1.getServiceUser)(options.user, options.pass),
|
|
95
|
+
agent = await ApiBuddy.register(true, target, tunneling, proxy, host, token, tags, (0, utils_1.getServiceUser)(options.user, options.pass), {
|
|
96
|
+
note,
|
|
97
|
+
agentNote,
|
|
98
|
+
}, (region) => {
|
|
94
99
|
cfg_1.default.setRegionIfNotSet(region);
|
|
95
100
|
});
|
|
96
101
|
id = agent.id;
|
|
@@ -156,9 +161,14 @@ const installApp = async (options) => {
|
|
|
156
161
|
const { token, host } = await input_1.default.tunnelToken(addToken);
|
|
157
162
|
if (!id) {
|
|
158
163
|
const tags = prepareTags(options.tag);
|
|
164
|
+
const note = options.note;
|
|
165
|
+
const agentNote = options.agentNote;
|
|
159
166
|
try {
|
|
160
167
|
output_1.default.normal(texts_1.TXT_AGENT_STANDALONE_AGENT_REGISTERING, false);
|
|
161
|
-
const agent = await ApiBuddy.register(true, !!options.target, !!options.tunnels, !!options.proxy, host, token, tags, (0, utils_1.getCurrentUser)(),
|
|
168
|
+
const agent = await ApiBuddy.register(true, !!options.target, !!options.tunnels, !!options.proxy, host, token, tags, (0, utils_1.getCurrentUser)(), {
|
|
169
|
+
note,
|
|
170
|
+
agentNote,
|
|
171
|
+
}, (region) => {
|
|
162
172
|
cfg_1.default.setRegionIfNotSet(region);
|
|
163
173
|
});
|
|
164
174
|
logger_1.default.info(texts_1.TXT_AGENT_STANDALONE_AGENT_REGISTERED);
|
|
@@ -220,6 +230,8 @@ commandAgentInstall.option('--proxy', texts_1.OPTION_AGENT_PROXY);
|
|
|
220
230
|
commandAgentInstall.option('--no-tunnels', texts_1.OPTION_AGENT_TUNNELING);
|
|
221
231
|
commandAgentInstall.option('--tag <tag...>', texts_1.OPTION_AGENT_TAG);
|
|
222
232
|
commandAgentInstall.option('-d, --debug', texts_1.OPTION_AGENT_DEBUG);
|
|
233
|
+
commandAgentInstall.option('--note <note>', texts_1.OPT_COMMAND_NOTE);
|
|
234
|
+
commandAgentInstall.option('--agent-note <note>', texts_1.OPT_COMMAND_AGENT_NOTE);
|
|
223
235
|
commandAgentInstall.action(async (options) => {
|
|
224
236
|
const AgentManager = require('../../agent/manager').default;
|
|
225
237
|
options.start = options.start === 'true' || options.start === true;
|
|
@@ -17,6 +17,8 @@ commandArtifactCreate.option('-t, --type <type>', texts_1.OPT_COMMAND_ARTIFACT_T
|
|
|
17
17
|
commandArtifactCreate.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
18
18
|
commandArtifactCreate.option('-b, --buddy', texts_1.OPTION_HTTP_AUTH_BUDDY);
|
|
19
19
|
commandArtifactCreate.option('-a, --auth <user:pass>', texts_1.OPTION_HTTP_AUTH);
|
|
20
|
+
commandArtifactCreate.option('--note <note>', texts_1.OPT_COMMAND_NOTE);
|
|
21
|
+
commandArtifactCreate.option('--agent-note <note>', texts_1.OPT_COMMAND_AGENT_NOTE);
|
|
20
22
|
commandArtifactCreate.argument('[name]', texts_1.OPT_COMMAND_ARTIFACT_NAME);
|
|
21
23
|
commandArtifactCreate.addHelpText('after', texts_1.EXAMPLE_ARTIFACT_CREATE);
|
|
22
24
|
commandArtifactCreate.action(async (name, options) => {
|
|
@@ -40,6 +42,12 @@ commandArtifactCreate.action(async (name, options) => {
|
|
|
40
42
|
type: utils_1.ARTIFACT_AUTH_TYPE.NONE,
|
|
41
43
|
},
|
|
42
44
|
};
|
|
45
|
+
if (options.note) {
|
|
46
|
+
data.note = options.note;
|
|
47
|
+
}
|
|
48
|
+
if (options.agentNote) {
|
|
49
|
+
data.agent_note = options.agentNote;
|
|
50
|
+
}
|
|
43
51
|
if (project && scope === distro_1.SCOPE.PROJECT) {
|
|
44
52
|
data.project = {
|
|
45
53
|
name: project,
|
|
@@ -17,6 +17,8 @@ commandArtifactPublish.option('-w, --workspace <domain>', texts_1.OPTION_REST_AP
|
|
|
17
17
|
commandArtifactPublish.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
18
18
|
commandArtifactPublish.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
19
19
|
commandArtifactPublish.option('-c, --create', texts_1.OPTION_ARTIFACT_PUBLISH_CREATE);
|
|
20
|
+
commandArtifactPublish.option('--note <note>', texts_1.OPTION_ARTIFACT_VERSION_NOTE);
|
|
21
|
+
commandArtifactPublish.option('--agent-note <note>', texts_1.OPTION_ARTIFACT_VERSION_AGENT_NOTE);
|
|
20
22
|
commandArtifactPublish.option('-f, --force', texts_1.OPTION_ARTIFACT_PUBLISH_OVERWRITE_VERSION);
|
|
21
23
|
commandArtifactPublish.argument('<identifier>', texts_1.OPTION_ARTIFACT_ID);
|
|
22
24
|
commandArtifactPublish.argument('<directory>', texts_1.OPTION_ARTIFACT_PUBLISH_PATH);
|
|
@@ -67,7 +69,7 @@ commandArtifactPublish.action(async (id, path, options) => {
|
|
|
67
69
|
output_1.default.exitError(texts_1.ERR_ARTIFACT_VERSION_EXISTS);
|
|
68
70
|
}
|
|
69
71
|
if (!artifactVersionId) {
|
|
70
|
-
const d = await client.createArtifactVersion(workspace, artifactId, version);
|
|
72
|
+
const d = await client.createArtifactVersion(workspace, artifactId, version, options.note, options.agentNote);
|
|
71
73
|
url = d.version_url;
|
|
72
74
|
artifactVersionId = d.id;
|
|
73
75
|
}
|
|
@@ -14,6 +14,8 @@ commandArtifactVersionCreate.option('-w, --workspace <domain>', texts_1.OPTION_R
|
|
|
14
14
|
commandArtifactVersionCreate.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
15
15
|
commandArtifactVersionCreate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
16
|
commandArtifactVersionCreate.option('-c, --create', texts_1.OPTION_ARTIFACT_PUBLISH_CREATE);
|
|
17
|
+
commandArtifactVersionCreate.option('--note <note>', texts_1.OPTION_ARTIFACT_VERSION_NOTE);
|
|
18
|
+
commandArtifactVersionCreate.option('--agent-note <note>', texts_1.OPTION_ARTIFACT_VERSION_AGENT_NOTE);
|
|
17
19
|
commandArtifactVersionCreate.option('--from <version>', texts_1.OPTION_ARTIFACT_VERSION_FROM);
|
|
18
20
|
commandArtifactVersionCreate.argument('<identifier>', texts_1.OPTION_ARTIFACT_ID);
|
|
19
21
|
commandArtifactVersionCreate.addHelpText('after', texts_1.EXAMPLE_ARTIFACT_VERSION_CREATE);
|
|
@@ -59,7 +61,7 @@ commandArtifactVersionCreate.action(async (id, options) => {
|
|
|
59
61
|
if (artifactVersionId) {
|
|
60
62
|
output_1.default.exitError(texts_1.ERR_ARTIFACT_VERSION_EXISTS_NO_FORCE);
|
|
61
63
|
}
|
|
62
|
-
const d = await client.createArtifactVersion(workspace, artifactId, version, options.from);
|
|
64
|
+
const d = await client.createArtifactVersion(workspace, artifactId, version, options.note, options.agentNote, options.from);
|
|
63
65
|
const url = d.version_url;
|
|
64
66
|
output_1.default.object({
|
|
65
67
|
Version: `${identifier}:${version}`,
|
|
@@ -39,6 +39,8 @@ commandArtifactVersionGet.action(async (identifier, version, options) => {
|
|
|
39
39
|
else {
|
|
40
40
|
const obj = {
|
|
41
41
|
Version: result.version,
|
|
42
|
+
Note: result.note || '-',
|
|
43
|
+
'Agent note': result.agent_note || '-',
|
|
42
44
|
Size: (0, utils_1.formatBytes)(result.size),
|
|
43
45
|
Created: result.created_date,
|
|
44
46
|
'App url': result.html_url,
|
|
@@ -15,6 +15,8 @@ commandDistroCreate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJE
|
|
|
15
15
|
commandDistroCreate.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
16
16
|
commandDistroCreate.option('-i, --identifier <identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
17
17
|
commandDistroCreate.option('-n, --name <name>', texts_1.OPT_COMMAND_DISTRO_NAME);
|
|
18
|
+
commandDistroCreate.option('--note <note>', texts_1.OPT_COMMAND_DISTRO_NOTE);
|
|
19
|
+
commandDistroCreate.option('--agent-note <note>', texts_1.OPT_COMMAND_DISTRO_AGENT_NOTE);
|
|
18
20
|
commandDistroCreate.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_DISTRO_CREATE}`);
|
|
19
21
|
commandDistroCreate.action(async (options) => {
|
|
20
22
|
const humanId = require('human-id').default;
|
|
@@ -30,6 +32,12 @@ commandDistroCreate.action(async (options) => {
|
|
|
30
32
|
identifier: options.identifier || defaultIdentifier,
|
|
31
33
|
scope,
|
|
32
34
|
};
|
|
35
|
+
if (options.note) {
|
|
36
|
+
body.note = options.note;
|
|
37
|
+
}
|
|
38
|
+
if (options.agentNote) {
|
|
39
|
+
body.agent_note = options.agentNote;
|
|
40
|
+
}
|
|
33
41
|
if (project && scope === distro_1.SCOPE.PROJECT)
|
|
34
42
|
body.project_name = project;
|
|
35
43
|
const result = await client.createDistro(workspace, body);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const texts_1 = require("../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const distro_1 = require("../../types/distro");
|
|
11
|
+
const commandDistroGet = (0, utils_1.newCommand)('get', texts_1.DESC_COMMAND_DISTRO_GET);
|
|
12
|
+
commandDistroGet.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
13
|
+
commandDistroGet.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
14
|
+
commandDistroGet.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
15
|
+
commandDistroGet.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
16
|
+
commandDistroGet.argument('<identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
17
|
+
commandDistroGet.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_DISTRO_GET}`);
|
|
18
|
+
commandDistroGet.action(async (identifier, options) => {
|
|
19
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
20
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
21
|
+
const scope = input_1.default.scope(project, options.scope);
|
|
22
|
+
const client = input_1.default.restApiTokenClient();
|
|
23
|
+
const data = await client.getDistributionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier);
|
|
24
|
+
if (!data || !data.domain) {
|
|
25
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
26
|
+
}
|
|
27
|
+
if (!data || !data.distribution_id) {
|
|
28
|
+
output_1.default.exitError(texts_1.ERR_COMMAND_DISTRO_NOT_FOUND);
|
|
29
|
+
}
|
|
30
|
+
const distro = await client.getDistribution(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, data.distribution_id);
|
|
31
|
+
if (options.format === 'json') {
|
|
32
|
+
output_1.default.json(distro);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const table = [
|
|
36
|
+
['Field', 'Value'],
|
|
37
|
+
['ID', String(distro.id || '-')],
|
|
38
|
+
['Identifier', distro.identifier || '-'],
|
|
39
|
+
['Name', distro.name || '-'],
|
|
40
|
+
['Note', distro.note || '-'],
|
|
41
|
+
['Agent note', distro.agent_note || '-'],
|
|
42
|
+
['Scope', distro.scope || '-'],
|
|
43
|
+
['Disabled', distro.disabled ? 'true' : 'false'],
|
|
44
|
+
['Project', distro.project?.name || '-'],
|
|
45
|
+
['Environment', distro.environment?.name || '-'],
|
|
46
|
+
['Routes', String((distro.routes || []).length)],
|
|
47
|
+
['URL', distro.html_url || '-'],
|
|
48
|
+
];
|
|
49
|
+
output_1.default.table(table);
|
|
50
|
+
}
|
|
51
|
+
output_1.default.exitNormal();
|
|
52
|
+
});
|
|
53
|
+
exports.default = commandDistroGet;
|
|
@@ -17,6 +17,8 @@ commandDistroRouteCreate.option('-t, --type <type>', texts_1.OPT_COMMAND_ROUTE_T
|
|
|
17
17
|
commandDistroRouteCreate.option('-s, --subdomain <subdomain>', texts_1.OPT_COMMAND_ROUTE_SUBDOMAIN);
|
|
18
18
|
commandDistroRouteCreate.option('-d, --domain <domain>', texts_1.OPT_COMMAND_ROUTE_DOMAIN);
|
|
19
19
|
commandDistroRouteCreate.option('--path <path>', texts_1.OPT_COMMAND_ROUTE_PATH);
|
|
20
|
+
commandDistroRouteCreate.option('--note <note>', texts_1.OPT_COMMAND_ROUTE_NOTE);
|
|
21
|
+
commandDistroRouteCreate.option('--agent-note <note>', texts_1.OPT_COMMAND_ROUTE_AGENT_NOTE);
|
|
20
22
|
commandDistroRouteCreate.option('--target <targets...>', texts_1.OPT_COMMAND_ROUTE_TARGET);
|
|
21
23
|
commandDistroRouteCreate.argument('<identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
22
24
|
commandDistroRouteCreate.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_ROUTE_CREATE}`);
|
|
@@ -36,6 +38,10 @@ commandDistroRouteCreate.action(async (identifier, options) => {
|
|
|
36
38
|
body.domain = options.domain;
|
|
37
39
|
if (options.path)
|
|
38
40
|
body.path = input_1.default.routePath(options.path);
|
|
41
|
+
if (options.note)
|
|
42
|
+
body.note = options.note;
|
|
43
|
+
if (options.agentNote)
|
|
44
|
+
body.agent_note = options.agentNote;
|
|
39
45
|
const data = await client.getDistributionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier);
|
|
40
46
|
if (!data?.domain) {
|
|
41
47
|
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
const texts_1 = require("../../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const distro_1 = require("../../../types/distro");
|
|
11
|
+
const targetText = (target) => {
|
|
12
|
+
if (target.type === distro_1.ROUTE_TARGET_TYPE.ARTIFACT && target.artifact) {
|
|
13
|
+
return `artifact ${target.artifact.id}:${target.artifact.version_id}`;
|
|
14
|
+
}
|
|
15
|
+
if (target.type === distro_1.ROUTE_TARGET_TYPE.SANDBOX && target.sandbox) {
|
|
16
|
+
return `sandbox ${target.sandbox.id}:${target.sandbox.endpoint}`;
|
|
17
|
+
}
|
|
18
|
+
return target.external_url || '-';
|
|
19
|
+
};
|
|
20
|
+
const commandDistroRouteGet = (0, utils_1.newCommand)('get', texts_1.DESC_COMMAND_ROUTE_GET);
|
|
21
|
+
commandDistroRouteGet.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
22
|
+
commandDistroRouteGet.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
23
|
+
commandDistroRouteGet.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
24
|
+
commandDistroRouteGet.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
25
|
+
commandDistroRouteGet.argument('<identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
26
|
+
commandDistroRouteGet.argument('<route-id>', texts_1.OPT_COMMAND_ROUTE_ID);
|
|
27
|
+
commandDistroRouteGet.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_ROUTE_GET}`);
|
|
28
|
+
commandDistroRouteGet.action(async (identifier, routeId, options) => {
|
|
29
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
30
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
31
|
+
const scope = input_1.default.scope(project, options.scope);
|
|
32
|
+
const client = input_1.default.restApiTokenClient();
|
|
33
|
+
const data = await client.getDistributionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier);
|
|
34
|
+
if (!data?.domain) {
|
|
35
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
36
|
+
}
|
|
37
|
+
if (!data?.distribution_id) {
|
|
38
|
+
output_1.default.exitError(texts_1.ERR_COMMAND_DISTRO_NOT_FOUND);
|
|
39
|
+
}
|
|
40
|
+
const route = await client.getRoute(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, data.distribution_id, routeId);
|
|
41
|
+
if (options.format === 'json') {
|
|
42
|
+
output_1.default.json(route);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const table = [
|
|
46
|
+
['Field', 'Value'],
|
|
47
|
+
['ID', String(route.id || '-')],
|
|
48
|
+
['Type', route.type || '-'],
|
|
49
|
+
['Note', route.note || '-'],
|
|
50
|
+
['Agent note', route.agent_note || '-'],
|
|
51
|
+
['Subdomain', route.subdomain || '-'],
|
|
52
|
+
['Domain', route.domain || '-'],
|
|
53
|
+
['Path', route.path || '-'],
|
|
54
|
+
['Zone type', route.zone_type || '-'],
|
|
55
|
+
['URL', route.html_url || '-'],
|
|
56
|
+
];
|
|
57
|
+
const targets = route.targets || {};
|
|
58
|
+
const regions = Object.keys(targets);
|
|
59
|
+
if (regions.length > 0) {
|
|
60
|
+
table.push([
|
|
61
|
+
'Targets',
|
|
62
|
+
regions
|
|
63
|
+
.map((region) => `${region}: ${targetText(targets[region])}`)
|
|
64
|
+
.join('\n'),
|
|
65
|
+
]);
|
|
66
|
+
}
|
|
67
|
+
output_1.default.table(table);
|
|
68
|
+
}
|
|
69
|
+
output_1.default.exitNormal();
|
|
70
|
+
});
|
|
71
|
+
exports.default = commandDistroRouteGet;
|
|
@@ -17,6 +17,8 @@ commandDistroRouteUpdate.option('-t, --type <type>', texts_1.OPT_COMMAND_ROUTE_T
|
|
|
17
17
|
commandDistroRouteUpdate.option('-s, --subdomain <subdomain>', texts_1.OPT_COMMAND_ROUTE_SUBDOMAIN);
|
|
18
18
|
commandDistroRouteUpdate.option('-d, --domain <domain>', texts_1.OPT_COMMAND_ROUTE_DOMAIN);
|
|
19
19
|
commandDistroRouteUpdate.option('--path <path>', texts_1.OPT_COMMAND_ROUTE_PATH);
|
|
20
|
+
commandDistroRouteUpdate.option('--note <note>', texts_1.OPT_COMMAND_ROUTE_NOTE);
|
|
21
|
+
commandDistroRouteUpdate.option('--agent-note <note>', texts_1.OPT_COMMAND_ROUTE_AGENT_NOTE);
|
|
20
22
|
commandDistroRouteUpdate.option('--target <targets...>', texts_1.OPT_COMMAND_ROUTE_TARGET);
|
|
21
23
|
commandDistroRouteUpdate.argument('<identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
22
24
|
commandDistroRouteUpdate.argument('<route-id>', texts_1.OPT_COMMAND_ROUTE_ID);
|
|
@@ -35,13 +37,17 @@ commandDistroRouteUpdate.action(async (identifier, routeId, options) => {
|
|
|
35
37
|
}
|
|
36
38
|
const route = await client.getRoute(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, data.distribution_id, routeId);
|
|
37
39
|
let changed = false;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
};
|
|
40
|
+
// This endpoint is a full replace: whatever the body omits is cleared. The
|
|
41
|
+
// PATCH route exists but validates the body as a complete route too, so it
|
|
42
|
+
// is no help. Carry the whole fetched route forward and let the options
|
|
43
|
+
// below override individual fields — anything not listed here (including
|
|
44
|
+
// fields the API grows later) survives untouched. `id`/`url`/`html_url`/
|
|
45
|
+
// `zone_type` are read-only and dropped.
|
|
46
|
+
const carried = { ...route };
|
|
47
|
+
for (const readOnly of ['id', 'url', 'html_url', 'zone_type']) {
|
|
48
|
+
delete carried[readOnly];
|
|
49
|
+
}
|
|
50
|
+
const body = carried;
|
|
45
51
|
if (options.type) {
|
|
46
52
|
body.type = input_1.default.routeType(options.type);
|
|
47
53
|
changed = true;
|
|
@@ -58,6 +64,14 @@ commandDistroRouteUpdate.action(async (identifier, routeId, options) => {
|
|
|
58
64
|
body.path = input_1.default.routePath(options.path);
|
|
59
65
|
changed = true;
|
|
60
66
|
}
|
|
67
|
+
if (options.note !== undefined) {
|
|
68
|
+
body.note = options.note;
|
|
69
|
+
changed = true;
|
|
70
|
+
}
|
|
71
|
+
if (options.agentNote !== undefined) {
|
|
72
|
+
body.agent_note = options.agentNote;
|
|
73
|
+
changed = true;
|
|
74
|
+
}
|
|
61
75
|
if (options.target && options.target.length > 0) {
|
|
62
76
|
body.targets = await input_1.default.routeTarget(client, workspace, scope === distro_1.SCOPE.PROJECT ? project : null, options.target);
|
|
63
77
|
changed = true;
|
|
@@ -7,15 +7,18 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const create_1 = __importDefault(require("./route/create"));
|
|
9
9
|
const list_1 = __importDefault(require("./route/list"));
|
|
10
|
+
const get_1 = __importDefault(require("./route/get"));
|
|
10
11
|
const delete_1 = __importDefault(require("./route/delete"));
|
|
11
12
|
const update_1 = __importDefault(require("./route/update"));
|
|
12
13
|
const commandDistroRoute = (0, utils_1.newCommand)('route', texts_1.DESC_COMMAND_ROUTE);
|
|
13
14
|
commandDistroRoute.addCommand(create_1.default);
|
|
14
15
|
commandDistroRoute.addCommand(update_1.default);
|
|
15
16
|
commandDistroRoute.addCommand(list_1.default);
|
|
17
|
+
commandDistroRoute.addCommand(get_1.default);
|
|
16
18
|
commandDistroRoute.addCommand(delete_1.default);
|
|
17
19
|
commandDistroRoute.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_ROUTE_CREATE}
|
|
18
20
|
${texts_1.EXAMPLE_ROUTE_UPDATE}
|
|
19
21
|
${texts_1.EXAMPLE_ROUTE_LIST}
|
|
22
|
+
${texts_1.EXAMPLE_ROUTE_GET}
|
|
20
23
|
${texts_1.EXAMPLE_ROUTE_DELETE}`);
|
|
21
24
|
exports.default = commandDistroRoute;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const texts_1 = require("../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const distro_1 = require("../../types/distro");
|
|
11
|
+
const commandDistroUpdate = (0, utils_1.newCommand)('update', texts_1.DESC_COMMAND_DISTRO_UPDATE);
|
|
12
|
+
commandDistroUpdate.alias('edit');
|
|
13
|
+
commandDistroUpdate.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
14
|
+
commandDistroUpdate.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
15
|
+
commandDistroUpdate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
|
+
commandDistroUpdate.option('-n, --name <name>', texts_1.OPT_COMMAND_DISTRO_NAME);
|
|
17
|
+
commandDistroUpdate.option('--note <note>', texts_1.OPT_COMMAND_DISTRO_NOTE);
|
|
18
|
+
commandDistroUpdate.option('--agent-note <note>', texts_1.OPT_COMMAND_DISTRO_AGENT_NOTE);
|
|
19
|
+
commandDistroUpdate.option('--enable', texts_1.OPT_COMMAND_DISTRO_ENABLE);
|
|
20
|
+
commandDistroUpdate.option('--disable', texts_1.OPT_COMMAND_DISTRO_DISABLE);
|
|
21
|
+
commandDistroUpdate.argument('<identifier>', texts_1.OPT_COMMAND_DISTRO_IDENTIFIER);
|
|
22
|
+
commandDistroUpdate.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_DISTRO_UPDATE}`);
|
|
23
|
+
commandDistroUpdate.action(async (identifier, options) => {
|
|
24
|
+
if (options.enable && options.disable) {
|
|
25
|
+
output_1.default.exitError(texts_1.ERR_COMMAND_DISTRO_ENABLE_DISABLE);
|
|
26
|
+
}
|
|
27
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
28
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
29
|
+
const scope = input_1.default.scope(project, options.scope);
|
|
30
|
+
const client = input_1.default.restApiTokenClient();
|
|
31
|
+
const data = await client.getDistributionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier);
|
|
32
|
+
if (!data || !data.domain) {
|
|
33
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
34
|
+
}
|
|
35
|
+
if (!data || !data.distribution_id) {
|
|
36
|
+
output_1.default.exitError(texts_1.ERR_COMMAND_DISTRO_NOT_FOUND);
|
|
37
|
+
}
|
|
38
|
+
const body = {};
|
|
39
|
+
let changed = false;
|
|
40
|
+
if (options.name) {
|
|
41
|
+
body.name = options.name;
|
|
42
|
+
changed = true;
|
|
43
|
+
}
|
|
44
|
+
if (options.note !== undefined) {
|
|
45
|
+
body.note = options.note;
|
|
46
|
+
changed = true;
|
|
47
|
+
}
|
|
48
|
+
if (options.agentNote !== undefined) {
|
|
49
|
+
body.agent_note = options.agentNote;
|
|
50
|
+
changed = true;
|
|
51
|
+
}
|
|
52
|
+
if (options.enable || options.disable) {
|
|
53
|
+
body.disabled = !!options.disable;
|
|
54
|
+
changed = true;
|
|
55
|
+
}
|
|
56
|
+
if (!changed) {
|
|
57
|
+
output_1.default.exitError(texts_1.ERR_COMMAND_DISTRO_NO_UPDATE);
|
|
58
|
+
}
|
|
59
|
+
const result = await client.updateDistribution(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, data.distribution_id, body);
|
|
60
|
+
output_1.default.identifier(result.identifier);
|
|
61
|
+
output_1.default.cyan(result.html_url);
|
|
62
|
+
output_1.default.green(texts_1.TXT_COMMAND_DISTRO_UPDATED);
|
|
63
|
+
output_1.default.exitNormal();
|
|
64
|
+
});
|
|
65
|
+
exports.default = commandDistroUpdate;
|
|
@@ -7,18 +7,25 @@ const utils_1 = require("../utils");
|
|
|
7
7
|
const texts_1 = require("../texts");
|
|
8
8
|
const create_1 = __importDefault(require("./distro/create"));
|
|
9
9
|
const delete_1 = __importDefault(require("./distro/delete"));
|
|
10
|
+
const get_1 = __importDefault(require("./distro/get"));
|
|
10
11
|
const list_1 = __importDefault(require("./distro/list"));
|
|
11
12
|
const route_1 = __importDefault(require("./distro/route"));
|
|
13
|
+
const update_1 = __importDefault(require("./distro/update"));
|
|
12
14
|
const commandDistro = (0, utils_1.newCommand)('distro', texts_1.DESC_COMMAND_DISTRO);
|
|
13
15
|
commandDistro.addCommand(create_1.default);
|
|
16
|
+
commandDistro.addCommand(update_1.default);
|
|
14
17
|
commandDistro.addCommand(list_1.default);
|
|
18
|
+
commandDistro.addCommand(get_1.default);
|
|
15
19
|
commandDistro.addCommand(delete_1.default);
|
|
16
20
|
commandDistro.addCommand(route_1.default);
|
|
17
21
|
commandDistro.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_DISTRO_CREATE}
|
|
22
|
+
${texts_1.EXAMPLE_DISTRO_UPDATE}
|
|
18
23
|
${texts_1.EXAMPLE_DISTRO_LIST}
|
|
24
|
+
${texts_1.EXAMPLE_DISTRO_GET}
|
|
19
25
|
${texts_1.EXAMPLE_DISTRO_DELETE}
|
|
20
26
|
${texts_1.EXAMPLE_ROUTE_CREATE}
|
|
21
27
|
${texts_1.EXAMPLE_ROUTE_UPDATE}
|
|
22
28
|
${texts_1.EXAMPLE_ROUTE_LIST}
|
|
29
|
+
${texts_1.EXAMPLE_ROUTE_GET}
|
|
23
30
|
${texts_1.EXAMPLE_ROUTE_DELETE}`);
|
|
24
31
|
exports.default = commandDistro;
|
|
@@ -36,6 +36,8 @@ commandPipelineGet.action(async (identifier, options) => {
|
|
|
36
36
|
const table = [
|
|
37
37
|
['Field', 'Value'],
|
|
38
38
|
['Name', pipeline.name || '-'],
|
|
39
|
+
['Note', pipeline.note || '-'],
|
|
40
|
+
['Agent note', pipeline.agent_note || '-'],
|
|
39
41
|
[
|
|
40
42
|
'Status',
|
|
41
43
|
OutputPipeline.runStatusText(pipeline.last_execution_status || '-'),
|
|
@@ -26,6 +26,8 @@ commandSandboxCreate.alias('add');
|
|
|
26
26
|
commandSandboxCreate.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
27
27
|
commandSandboxCreate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
28
28
|
commandSandboxCreate.option('-n, --name <name>', texts_1.OPTION_SANDBOX_NAME);
|
|
29
|
+
commandSandboxCreate.option('--note <note>', texts_1.OPTION_SANDBOX_NOTE);
|
|
30
|
+
commandSandboxCreate.option('--agent-note <note>', texts_1.OPTION_SANDBOX_AGENT_NOTE);
|
|
29
31
|
commandSandboxCreate.option('-i, --identifier <identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
30
32
|
commandSandboxCreate.option('--os <image>', texts_1.OPTION_SANDBOX_OS);
|
|
31
33
|
commandSandboxCreate.option('--snapshot <snapshot-name>', texts_1.OPTION_SANDBOX_FROM_SNAPSHOT);
|
|
@@ -92,6 +94,12 @@ commandSandboxCreate.action(async (options) => {
|
|
|
92
94
|
if (options.resources) {
|
|
93
95
|
body.resources = options.resources;
|
|
94
96
|
}
|
|
97
|
+
if (options.note) {
|
|
98
|
+
body.note = options.note;
|
|
99
|
+
}
|
|
100
|
+
if (options.agentNote) {
|
|
101
|
+
body.agent_note = options.agentNote;
|
|
102
|
+
}
|
|
95
103
|
if (options.timeout) {
|
|
96
104
|
body.timeout = parseInt(options.timeout, 10) || 300;
|
|
97
105
|
}
|
|
@@ -30,6 +30,8 @@ commandSandboxGet.action(async (identifier, options) => {
|
|
|
30
30
|
['ID', sandbox.id || '-'],
|
|
31
31
|
['Identifier', sandbox.identifier || '-'],
|
|
32
32
|
['Name', sandbox.name || '-'],
|
|
33
|
+
['Note', sandbox.note || '-'],
|
|
34
|
+
['Agent note', sandbox.agent_note || '-'],
|
|
33
35
|
['Status', sandbox.status || '-'],
|
|
34
36
|
['Setup Status', sandbox.setup_status || '-'],
|
|
35
37
|
['OS', sandbox.os || '-'],
|
|
@@ -20,7 +20,7 @@ commandHttp.action(async (target, options) => {
|
|
|
20
20
|
const { host, token } = await Input.tunnelToken(options.token);
|
|
21
21
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.HTTP, target, options, true);
|
|
22
22
|
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
23
|
-
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), (region) => {
|
|
23
|
+
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), {}, (region) => {
|
|
24
24
|
Cfg.setRegionIfNotSet(region);
|
|
25
25
|
});
|
|
26
26
|
await agent.start();
|
|
@@ -20,7 +20,7 @@ commandStart.action(async (name, options) => {
|
|
|
20
20
|
const { token, host } = await Input.tunnelToken(options.token);
|
|
21
21
|
const prepared = Cfg.getTunnel(name);
|
|
22
22
|
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
23
|
-
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), (region) => {
|
|
23
|
+
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), {}, (region) => {
|
|
24
24
|
Cfg.setRegionIfNotSet(region);
|
|
25
25
|
});
|
|
26
26
|
await agent.start();
|
|
@@ -19,7 +19,7 @@ commandTcp.action(async (target, options) => {
|
|
|
19
19
|
const { host, token } = await Input.tunnelToken(options.token);
|
|
20
20
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.TCP, target, options, true);
|
|
21
21
|
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
22
|
-
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), (region) => {
|
|
22
|
+
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), {}, (region) => {
|
|
23
23
|
Cfg.setRegionIfNotSet(region);
|
|
24
24
|
});
|
|
25
25
|
await agent.start();
|
|
@@ -19,7 +19,7 @@ commandTls.action(async (target, options) => {
|
|
|
19
19
|
const { token, host } = await Input.tunnelToken(options.token);
|
|
20
20
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.TLS, target, options, true);
|
|
21
21
|
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
22
|
-
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), (region) => {
|
|
22
|
+
const agent = await ApiBuddy.register(false, false, true, false, host, token, [], (0, utils_1.getCurrentUser)(), {}, (region) => {
|
|
23
23
|
Cfg.setRegionIfNotSet(region);
|
|
24
24
|
});
|
|
25
25
|
await agent.start();
|
package/distTs/src/format.js
CHANGED
|
@@ -86,6 +86,19 @@ class Format {
|
|
|
86
86
|
return 'Not set';
|
|
87
87
|
return host;
|
|
88
88
|
}
|
|
89
|
+
static note(note) {
|
|
90
|
+
if (!note)
|
|
91
|
+
return 'Not set';
|
|
92
|
+
return this.noteInline(note);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Notes are free text and may contain newlines. Every place we render one
|
|
96
|
+
* sits on a single line — a log entry or a fixed-height terminal row — so
|
|
97
|
+
* collapse whitespace runs before display.
|
|
98
|
+
*/
|
|
99
|
+
static noteInline(note) {
|
|
100
|
+
return note.replace(/\s+/g, ' ').trim();
|
|
101
|
+
}
|
|
89
102
|
static basicAuth(login, pass) {
|
|
90
103
|
if (!login || !pass)
|
|
91
104
|
return 'Not set';
|
package/distTs/src/output.js
CHANGED
|
@@ -204,7 +204,12 @@ class Output {
|
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
static async spinner(txt) {
|
|
207
|
-
|
|
207
|
+
// Both streams must be a TTY, not just stdout: terminal-kit's inline
|
|
208
|
+
// spinner awaits a cursor-position reply read from stdin, so with stdout on
|
|
209
|
+
// a terminal but stdin redirected (e.g. `bdy tunnel http 3000 < /dev/null`)
|
|
210
|
+
// that reply can never arrive. A spinner is interactive-session animation
|
|
211
|
+
// anyway, so requiring both is also the correct predicate.
|
|
212
|
+
if (!this.s && this.isTTY()) {
|
|
208
213
|
this.s = await getTerminal().spinner();
|
|
209
214
|
if (txt)
|
|
210
215
|
getTerminal()(` ${txt}`);
|
package/distTs/src/texts.js
CHANGED
|
@@ -6,18 +6,19 @@ exports.TXT_AGENT_STANDALONE_AGENT_FETCHING = exports.TXT_TUNNEL_ADDED = exports
|
|
|
6
6
|
exports.DESC_COMMAND_AGENT_TARGET = exports.DESC_COMMAND_AGENT_TUNNEL = exports.DESC_COMMAND_AGENT_STOP = exports.DESC_COMMAND_AGENT_PROXY_DISABLE = exports.DESC_COMMAND_AGENT_TARGET_DISABLE = exports.DESC_COMMAND_AGENT_TUNNELING_DISABLE = exports.DESC_COMMAND_AGENT_TUNNELING_ENABLE = exports.DESC_COMMAND_AGENT_PROXY_ENABLE = exports.DESC_COMMAND_AGENT_TARGET_ENABLE = exports.DESC_COMMAND_AGENT_PROXY_STATUS = exports.DESC_COMMAND_AGENT_TARGET_STATUS = exports.DESC_COMMAND_AGENT_STATUS = exports.DESC_COMMAND_AGENT_RESTART = exports.DESC_COMMAND_AGENT_ENABLE = exports.DESC_COMMAND_AGENT_DEBUG = exports.DESC_COMMAND_AGENT_DISABLE = exports.DESC_COMMAND_AGENT_START = exports.DESC_COMMAND_AGENT_INSTALL = exports.DESC_COMMAND_AGENT_UNINSTALL = exports.DESC_COMMAND_AGENT_TUNNEL_REMOVE = exports.DESC_COMMAND_AGENT_TUNNEL_STATUS = exports.DESC_COMMAND_AGENT_TUNNEL_LIST = exports.DESC_COMMAND_CONFIG_SET = exports.DESC_COMMAND_CONFIG_REMOVE = exports.DESC_COMMAND_CONFIG_GET = exports.DESC_COMMAND_CONFIG_ADD = exports.DESC_COMMAND_CONFIG_SET_WHITELIST = exports.DESC_COMMAND_CONFIG_SET_TOKEN = exports.DESC_COMMAND_CONFIG_SET_TIMEOUT = exports.DESC_COMMAND_CONFIG_SET_REGION = exports.DESC_COMMAND_CONFIG_REMOVE_TOKEN = exports.DESC_COMMAND_CONFIG_REMOVE_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_WHITELIST = exports.DESC_COMMAND_CONFIG_GET_TUNNELS = exports.DESC_COMMAND_CONFIG_GET_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_TOKEN = exports.DESC_COMMAND_CONFIG_GET_TIMEOUT = exports.DESC_COMMAND_CONFIG_GET_REGION = exports.DESC_COMMAND_CONFIG_ADD_TLS = exports.DESC_COMMAND_CONFIG_ADD_TCP = exports.DESC_COMMAND_CONFIG_ADD_HTTP = exports.AGENT_FETCH_RETRY = exports.NO_TUNNELS_STARTED = exports.TXT_AGENT_STANDALONE_EXITING = exports.TXT_AGENT_STANDALONE_STARTED = exports.TXT_AGENT_STANDALONE_AGENT_REGISTER_ERROR = exports.TXT_AGENT_STANDALONE_AGENT_REGISTERED = exports.TXT_AGENT_STANDALONE_AGENT_REGISTERING = exports.TXT_AGENT_STANDALONE_AGENT_FETCH_ERROR = exports.TXT_AGENT_STANDALONE_AGENT_FETCHED = void 0;
|
|
7
7
|
exports.DESC_COMMAND_CRAWL_LINK = exports.DESC_COMMAND_VT_LINK = exports.DESC_COMMAND_UT_UPLOAD = exports.DESC_COMMAND_CRAWL_RUN = exports.DESC_COMMAND_CRAWL = exports.DESC_COMMAND_CAPTURE = exports.DESC_COMMAND_VISUAL_UPLOAD = exports.DESC_COMMAND_VISUAL_SETUP = exports.DESC_COMMAND_SESSION_CLOSE = exports.DESC_COMMAND_SESSION_CREATE = exports.DESC_COMMAND_SESSION = exports.DESC_COMMAND_VISUAL = exports.DESC_COMMAND_UNIT = exports.DESC_COMMAND_TESTS = exports.DESC_COMMAND_PIPELINE_RUN_RETRY = exports.DESC_COMMAND_PIPELINE_GET = exports.DESC_COMMAND_PIPELINE_UPDATE = exports.DESC_COMMAND_PIPELINE_DELETE = exports.DESC_COMMAND_PIPELINE_CREATE = exports.DESC_COMMAND_PIPELINE_YAML = exports.DESC_COMMAND_PIPELINE_LIST = exports.DESC_COMMAND_PIPELINE_RUN_LIST = exports.DESC_COMMAND_PIPELINE_RUN_APPLY = exports.DESC_COMMAND_PIPELINE_RUN_CANCEL = exports.DESC_COMMAND_PIPELINE_RUN_LOGS = exports.DESC_COMMAND_PIPELINE_RUN_STATUS = exports.DESC_COMMAND_PIPELINE_RUN_START = exports.DESC_COMMAND_PIPELINE_RUN = exports.DESC_COMMAND_ARTIFACT_DOWNLOAD = exports.DESC_COMMAND_ARTIFACT_PUBLISH = exports.DESC_COMMAND_ARTIFACT_VERSION_CREATE = exports.DESC_COMMAND_ARTIFACT = exports.DESC_COMMAND_PIPELINE = exports.ERR_COMMAND_NOT_FOUND = exports.DESC_PROGRAM = exports.DESC_COMMAND_TLS = exports.DESC_COMMAND_TCP = exports.DESC_COMMAND_START = exports.DESC_COMMAND_TUNNEL = exports.DESC_COMMAND_AGENT = exports.DESC_COMMAND_HTTP = exports.DESC_COMMAND_CONFIG = exports.DESC_COMMAND_AGENT_VERSION = exports.DESC_COMMAND_AGENT_USER = exports.DESC_COMMAND_AGENT_UPDATE = exports.OPT_COMMAND_AGENT_TAGS_SET = exports.DESC_COMMAND_AGENT_TAGS_SET = exports.DESC_COMMAND_AGENT_TAGS_GET = exports.DESC_COMMAND_AGENT_TAGS = exports.DESC_COMMAND_AGENT_PROXY = void 0;
|
|
8
8
|
exports.OPTION_PIPELINE_RUN_TAG = exports.OPTION_PIPELINE_RUN_BRANCH = exports.OPTION_REST_API_REGION = exports.OPTION_REST_API_ENDPOINT = exports.OPTION_DEFAULT_REGION = exports.OPTION_REGION = exports.TXT_ARTIFACT_UNZIPPING_COUNT = exports.TXT_ARTIFACT_UNZIPPED = exports.TXT_ARTIFACT_UNZIPPING = exports.TXT_ARTIFACT_DOWNLOADED_ZIP = exports.TXT_ARTIFACT_DOWNLOADING_ZIP = exports.TXT_ARTIFACT_DOWNLOADED = exports.TXT_ARTIFACT_ENTRIES_FOUND = exports.TXT_ARTIFACT_UPLOADED = exports.TXT_ARTIFACT_UPLOADING = exports.TXT_ARTIFACT_ZIPPED = exports.TXT_ARTIFACT_ZIP_ENTRIES = exports.TXT_ARTIFACT_ONE_ENTRY_FOUND = exports.TXT_ARTIFACT_NO_ENTRIES_FOUND = exports.TXT_ARTIFACT_SCANNING_DIR = exports.TXT_STORIES_AMOUNT = exports.TXT_OPENING_TUNNEL = exports.TXT_UPDATING_AGENT = exports.TXT_ENABLING_AGENT = exports.TXT_NEW_AGENT_VERSION = exports.TXT_NEW_CLI_DOCKER_VERSION = exports.OPTION_UPLOAD_DRY_RUN = exports.OPTION_UPLOAD_REPORT_FORMAT = exports.OPTION_UPLOAD_REPORT_GLOB = exports.TXT_COMMAND_SUITE_CREATED = exports.TXT_COMMAND_SUITE_NAME = exports.TXT_COMMAND_SUITE_LINK_EXISTING_DESC = exports.TXT_COMMAND_SUITE_LINK_EXISTING = exports.TXT_COMMAND_SUITE_CREATE_NEW_UT_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW_CRAWL_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW_VT_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW = exports.TXT_COMMAND_SUITE_SELECT = exports.ERR_NO_UT_SUITES = exports.ERR_NO_CRAWL_SUITES = exports.ERR_NO_VT_SUITES = exports.TXT_COMMAND_UT_LINK_SUCCESS = exports.TXT_COMMAND_CRAWL_LINK_SUCCESS = exports.TXT_COMMAND_VT_LINK_SUCCESS = exports.TXT_COMMAND_UT_LINK_SELECT = exports.TXT_COMMAND_CRAWL_LINK_SELECT = exports.TXT_COMMAND_VT_LINK_SELECT = exports.OPTION_STORYBOOK_DIRECTORY = exports.OPTION_SUITE_IDENTIFIER = exports.DESC_COMMAND_UT_LINK = void 0;
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
9
|
+
exports.OPTION_WHITELIST = exports.OPTION_REST_API_PER_PAGE = exports.OPTION_REST_API_PAGE = exports.OPTION_REST_API_PROJECT = exports.OPTION_REST_API_WORKSPACE = exports.OPTION_FORMAT_JSONL = exports.OPTION_FORMAT = exports.OPTION_VERSION = exports.OPTION_PIPELINE_RUN_NO_FOLLOW = exports.OPTION_PIPELINE_RUN_NO_WAIT = exports.OPTION_PIPELINE_RUN_ACTION = exports.OPTION_REST_API_TOKEN = exports.OPTION_ARTIFACT_DOWNLOAD_REPLACE = exports.OPTION_ARTIFACT_DOWNLOAD_MERGE = exports.OPTION_ARTIFACT_PUBLISH_OVERWRITE_VERSION = exports.OPTION_ARTIFACT_VERSION_AGENT_NOTE = exports.OPTION_ARTIFACT_VERSION_NOTE = exports.OPTION_ARTIFACT_VERSION_FROM = exports.OPTION_ARTIFACT_PUBLISH_CREATE = exports.OPTION_ARTIFACT_ID = exports.OPTION_ARTIFACT_DOWNLOAD_PATH = exports.OPTION_ARTIFACT_PUBLISH_PATH = exports.OPTION_PIPELINE_RUN_ACTION_ID = exports.OPTION_PIPELINE_RUN_ID = exports.OPTION_PIPELINE_YAML = exports.TXT_PIPELINE_DELETED = exports.TXT_PIPELINE_DELETE_CONFIRM = exports.TXT_PIPELINE_UPDATED = exports.TXT_PIPELINE_CREATED = exports.OPTION_PIPELINE_NAME = exports.OPTION_PIPELINE_IDENTIFIER = exports.OPTION_PIPELINE_RUN_ARTIFACT = exports.OPTION_PIPELINE_RUN_ENVIRONMENT = exports.OPTION_PIPELINE_RUN_DELAY = exports.OPTION_PIPELINE_RUN_PAYLOAD = exports.ERR_RUN_PAYLOAD_TOO_MANY_FILES = exports.ERR_RUN_PAYLOAD_NOT_UPLOADED = exports.ERR_RUN_PAYLOAD_TOO_LARGE = exports.ERR_RUN_PAYLOAD_NO_ENTRIES = exports.ERR_RUN_VAR_FILE_INVALID = exports.ERR_RUN_VAR_FILE_NOT_FOUND = exports.OPTION_RUN_SINGLE_VAR_FILE = exports.OPTION_RUN_VAR_FILE = exports.OPTION_RUN_VAR = exports.OPTION_PIPELINE_RUN_PRIORITY = exports.OPTION_PIPELINE_RUN_CLEAR_CACHE = exports.OPTION_PIPELINE_RUN_REFRESH = exports.OPTION_PIPELINE_RUN_COMMENT = exports.OPTION_PIPELINE_RUN_PULL_REQUEST = exports.OPTION_PIPELINE_RUN_REVISION = void 0;
|
|
10
|
+
exports.OPTION_COMPARE_COOKIE = exports.OPTION_COMPARE_IGNORE = exports.OPTION_COMPARE_IGNORE_URLS = exports.OPTION_COMPARE_DRY_RUN = exports.OPTION_COMPARE_URLS_FILE = exports.OPTION_COMPARE_SITEMAP = exports.OPTION_COMPARE_URLS = exports.OPTION_COMPARE_RESPECT_ROBOTS = exports.OPTION_COMPARE_FOLLOW = exports.OPTION_EXEC_PARALLEL = exports.OPTION_EXEC_ONE_BY_ONE = exports.OPTION_EXEC_SKIP_DISCOVERY = exports.OPTION_EXEC_COMMAND = exports.OPTION_AGENT_DEBUG = exports.OPTION_AGENT_PORT = exports.OPTION_AGENT_TAG = exports.OPTION_AGENT_TUNNELING = exports.OPTION_AGENT_PROXY = exports.OPTION_AGENT_TARGET = exports.OPTION_PASS = exports.OPTION_APP = exports.OPTION_USER = exports.OPTION_AGENT_TOKEN = exports.OPTION_AGENT_START = exports.OPTION_AGENT_ID = exports.OPTION_ID = exports.OPTION_NAME = exports.OPTION_TARGET = exports.OPTION_TLS_TERMINATE = exports.OPTION_TLS_CA = exports.OPTION_TLS_CERT = exports.OPTION_TLS_KEY = exports.OPTION_HTTP_CIRCUIT_BREAKER = exports.OPTION_HTTP_COMPRESSION = exports.OPTION_HTTP_2 = exports.OPTION_HTTP_VERIFY = exports.OPTION_HTTP_LOG = exports.OPTION_HTTP_AUTH_BUDDY = exports.OPTION_HTTP_AUTH = exports.OPTION_HTTP_HOST = exports.OPTION_CONFIRM_DOMAIN_BUY = exports.OPTION_CONFIRM_FORCE = exports.OPTION_FORCE = exports.OPTION_TOKEN = exports.OPTION_TIMEOUT = exports.OPTION_FOLLOW = exports.OPTION_SERVE = exports.OPTION_HEADER_USER_AGENT = exports.OPTION_RESPONSE_HEADER = exports.OPTION_HEADER = void 0;
|
|
11
|
+
exports.LOG_DISABLING_AGENT_TUNNELING = exports.LOG_DISABLING_AGENT_PROXY = exports.LOG_DISABLING_AGENT_TARGET = exports.LOG_REMOVING_TUNNEL = exports.LOG_TUNNEL_REGISTERED = exports.LOG_ERROR_WHILE_REFRESHING_AGENT = exports.LOG_REGISTERING_TUNNEL = exports.LOG_GETTING_AGENT = exports.LOG_UNREGISTERING_AGENT = exports.LOG_REGION_DETECTED = exports.LOG_AGENT_REGISTERED = exports.LOG_SOCKET_DISCONNECTED = exports.LOG_SOCKET_CONNECTED = exports.LOG_AGENT_NSSM_CLEARING = exports.LOG_AGENT_NSSM_EXTRACTING = exports.LOG_AGENT_NSSM_DOWNLOADING = exports.LOG_AGENT_ENABLED = exports.LOG_AGENT_STARTING_SYSTEM = exports.LOG_AGENT_STOPPING_SYSTEM = exports.LOG_AGENT_ENABLING_SYSTEM = exports.LOG_AGENT_SYSTEM_SERVICE_CONFIG = exports.LOG_AGENT_EXTRACTING_ARCHIVE = exports.LOG_AGENT_DOWNLOADING_ARCHIVE = exports.LOG_AGENT_SYSTEM_DIR = exports.LOG_ERROR_SAVING_AGENT_LOCAL_CONFIG = exports.LOG_ERROR_REMOVING_AGENT_STANDALONE_LOCK_FILE = exports.LOG_ERROR_SAVING_AGENT_STANDALONE_CONFIG = exports.LOG_ERROR_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_SAVING_AGENT_LOCAL_CONFIG = exports.LOG_REMOVING_AGENT_PROC_ID = exports.LOG_SAVING_AGENT_PROC_ID = exports.LOG_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_REGISTERING_AGENT = exports.OPTION_CRAWL_OUTPUT_TYPES = exports.OPTION_CRAWL_OUTPUT_DIR = exports.OPTION_CRAWL_DELAY = exports.OPTION_CRAWL_LOCAL_STORAGE = exports.OPTION_CRAWL_DEVICES = exports.OPTION_CRAWL_BROWSERS = exports.OPTION_CRAWL_COLOR_SCHEME = exports.OPTION_CRAWL_XPATH_SELECTOR = exports.OPTION_CRAWL_CSS_SELECTOR = exports.OPTION_CRAWL_FULL_PAGE = exports.OPTION_CRAWL_QUALITY = exports.OPTION_CRAWL_OUTPUT_TYPE = exports.OPTION_CRAWL_FOLLOW = exports.OPTION_CRAWL_URL = exports.OPTION_COMPARE_WAIT_FOR = exports.OPTION_COMPARE_DELAY = exports.OPTION_COMPARE_HEADER = void 0;
|
|
12
|
+
exports.DEBUG_WAIT_FOR_IDLE = exports.DEBUG_RESOURCE_DISCOVERY_TIMEOUT = exports.DEBUG_AUTO_WIDTH = exports.DEBUG_AUTO_SCROLL = exports.DEBUG_RESOURCE_CRAWLING_URL = exports.DEBUG_SNAPSHOT_PROCESSING = exports.DEBUG_SNAPSHOTS_PROCESSING = exports.DEBUG_EXEC_COMMAND = exports.DEBUG_EXEC_TEST_COMMAND = exports.LOG_INSTALLED_BROWSER = exports.LOG_SESSION_LINK = exports.LOG_SENDING_DATA = exports.LOG_SENDING_REQUEST = exports.LOG_PROCESSING_SNAPSHOTS = exports.LOG_RUNNING_EXEC_COMMAND = exports.LOG_TUNNEL_SSH_STREAM = exports.LOG_TUNNEL_TLS_AGENT_STREAM = exports.LOG_TUNNEL_TLS_REGION_STREAM = exports.LOG_TUNNEL_TLS_TARGET_STREAM = exports.LOG_TUNNEL_HTTP2_STREAM = exports.LOG_TUNNEL_HTTP1_STREAM = exports.LOG_TUNNEL_TCP_STREAM = exports.LOG_TUNNEL_HTTP_WRONG_USER_AGENTS = exports.LOG_TUNNEL_HTTP_CIRCUIT_BREAKER_OPEN = exports.LOG_TUNNEL_HTTP_MAX_INFLIGHT = exports.LOG_TUNNEL_HTTP_RATE_LIMIT = exports.LOG_TUNNEL_HTTP_WRON_AUTH = exports.LOG_TUNNEL_IDENTIFIED = exports.LOG_TUNNEL_DISCONNECTED = exports.LOG_TUNNEL_FAILED = exports.LOG_TUNNEL_CONNECTED = exports.LOG_AGENT_STARTED = exports.LOG_AGENT_SERVER_STARTED = exports.LOG_ERROR_STARTING_AGENT_SERVER = exports.LOG_SSH_CONNECTION = exports.LOG_LATE_TARGET_ERROR = exports.LOG_LATE_CHANNEL_ERROR = exports.LOG_HANDSHAKE_TIMEOUT = exports.LOG_WRONG_STREAM = exports.LOG_DETECTED_STREAM = exports.LOG_HTTP2_REQUEST = exports.LOG_HTTP2_CONNECTION = exports.LOG_HTTP1_REQUEST = exports.LOG_HTTP1_CONNECTION = exports.LOG_ERROR = exports.LOG_STOPPING_TUNNEL = exports.LOG_STARTING_TUNNEL = exports.LOG_ENABLING_AGENT_TUNNELING = exports.LOG_ENABLING_AGENT_PROXY = exports.LOG_ENABLING_AGENT_TARGET = void 0;
|
|
13
|
+
exports.TXT_SANDBOX_CREATING = exports.TXT_SANDBOX_APP_STARTED = exports.TXT_SANDBOX_APP_STOPPED = exports.OPTION_SANDBOX_WAIT = exports.OPTION_SANDBOX_WAIT_APPS = exports.OPTION_SANDBOX_WAIT_CONFIGURED = exports.OPTION_SANDBOX_WAIT_RUNNING = exports.ERR_SANDBOX_STOP_FAILED = exports.ERR_SANDBOX_NO_COMMANDS = exports.ERR_SANDBOX_RUNNING_FAILED = exports.ERR_SANDBOX_STOP_TIMEOUT = exports.ERR_SANDBOX_SNAPSHOT_TIMEOUT = exports.ERR_SANDBOX_RUNNING_TIMEOUT = exports.ERR_SANDBOX_APPS_TIMEOUT = exports.ERR_SANDBOX_SETUP_TIMEOUT = exports.ERR_SANDBOX_APP_FAILED = exports.ERR_SANDBOX_SETUP_FAILED = exports.ERR_SANDBOX_INVALID_RESOURCES = exports.ERR_SANDBOX_APP_NOT_FOUND = exports.ERR_SANDBOX_NOT_FOUND = exports.OPTION_SANDBOX_RUNTIME = exports.OPTION_SANDBOX_TIMEOUT = exports.OPTION_SANDBOX_FETCH = exports.OPTION_SANDBOX_APP_DIR = exports.OPTION_SANDBOX_APP_COMMAND = exports.OPTION_SANDBOX_YAML = exports.OPTION_SANDBOX_TAGS = exports.OPTION_SANDBOX_INSTALL_SCRIPT = exports.OPTION_SANDBOX_INSTALL_COMMANDS = exports.OPTION_SANDBOX_RESOURCES = exports.OPTION_SANDBOX_OS = exports.OPTION_SANDBOX_AGENT_NOTE = exports.OPTION_SANDBOX_NOTE = exports.OPTION_SANDBOX_NAME = exports.OPTION_SANDBOX_IDENTIFIER = exports.DESC_COMMAND_SANDBOX_APP = exports.DESC_COMMAND_SANDBOX_EXEC = exports.DESC_COMMAND_SANDBOX_STATUS = exports.DESC_COMMAND_SANDBOX_LOGS = exports.DESC_COMMAND_SANDBOX_RESTART = exports.DESC_COMMAND_SANDBOX_STOP = exports.DESC_COMMAND_SANDBOX_START = exports.DESC_COMMAND_SANDBOX_DESTROY = exports.DESC_COMMAND_SANDBOX_GET = exports.DESC_COMMAND_SANDBOX_LIST = exports.DESC_COMMAND_SANDBOX_UPDATE = exports.DESC_COMMAND_SANDBOX_GET_YAML = exports.DESC_COMMAND_SANDBOX_CREATE = exports.DESC_COMMAND_SANDBOX = exports.DEBUG_WAIT_FOR_IDLE_TIMEOUT = void 0;
|
|
14
|
+
exports.OPTION_SANDBOX_ENDPOINT_PORT = exports.OPTION_SANDBOX_ENDPOINT_NAME_ARG = exports.OPTION_SANDBOX_ENDPOINT_NAME = exports.DESC_COMMAND_SANDBOX_ENDPOINT_DELETE = exports.DESC_COMMAND_SANDBOX_ENDPOINT_ADD = exports.DESC_COMMAND_SANDBOX_ENDPOINT_GET = exports.DESC_COMMAND_SANDBOX_ENDPOINT_LIST = exports.DESC_COMMAND_SANDBOX_ENDPOINT = exports.ERR_SANDBOX_SNAPSHOTS_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_FAILED = exports.TXT_SANDBOX_SNAPSHOT_WAITING = exports.TXT_SANDBOX_SNAPSHOT_DELETE_CONFIRM = exports.TXT_SANDBOX_SNAPSHOT_DELETED = exports.TXT_SANDBOX_SNAPSHOT_CREATED = exports.OPTION_SANDBOX_FROM_SNAPSHOT = exports.OPTION_SANDBOX_SNAPSHOT_NAME_ARG = exports.OPTION_SANDBOX_SNAPSHOT_NAME = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_DELETE = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_GET = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_CREATE = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_LIST = exports.DESC_COMMAND_SANDBOX_SNAPSHOT = exports.TXT_SANDBOX_COMMAND_KILLED = exports.OPTION_SANDBOX_COMMAND_KILL_CONFIRM = exports.OPTION_SANDBOX_LOGS_LIMIT = exports.OPTION_SANDBOX_APP_ID = exports.OPTION_SANDBOX_COMMAND_ID = exports.DESC_COMMAND_SANDBOX_EXEC_KILL = exports.DESC_COMMAND_SANDBOX_EXEC_LOGS = exports.DESC_COMMAND_SANDBOX_APP_START = exports.DESC_COMMAND_SANDBOX_APP_STOP = exports.DESC_COMMAND_SANDBOX_APP_STATUS = exports.DESC_COMMAND_SANDBOX_APP_LOGS = exports.DESC_COMMAND_SANDBOX_EXEC_STATUS = exports.DESC_COMMAND_SANDBOX_EXEC_LIST = exports.DESC_COMMAND_SANDBOX_APP_REMOVE = exports.DESC_COMMAND_SANDBOX_APP_ADD = exports.DESC_COMMAND_SANDBOX_APP_LIST = exports.TXT_SANDBOX_WAITING_START = exports.TXT_SANDBOX_WAITING_STOP = exports.TXT_SANDBOX_WAITING_APPS = exports.TXT_SANDBOX_WAITING_SETUP = exports.TXT_SANDBOX_WAITING_RUNNING = exports.TXT_SANDBOX_STOPPED = exports.TXT_SANDBOX_STARTED = exports.TXT_SANDBOX_DESTROYED = exports.TXT_SANDBOX_DESTROY_CONFIRM = exports.TXT_SANDBOX_UPDATED = exports.TXT_SANDBOX_CREATED = void 0;
|
|
15
|
+
exports.DESC_COMMAND_API_PROJECT = exports.DESC_COMMAND_API_WORKSPACE = exports.DESC_COMMAND_API_REQUEST_URL = exports.DESC_COMMAND_API_GET = exports.DESC_COMMAND_API_PATCH = exports.DESC_COMMAND_API_DELETE = exports.DESC_COMMAND_API_PUT = exports.DESC_COMMAND_API_POST = exports.DESC_COMMAND_API_LIST = exports.DESC_COMMAND_API = exports.ERR_WHOAMI_LOGOUT = exports.TXT_WHOAMI_NO_WORKSPACE = exports.DESC_COMMAND_WHOAMI = exports.TXT_SANDBOX_EXEC_FAILED = exports.TXT_SANDBOX_EXEC_INPROGRESS = exports.TXT_SANDBOX_EXEC_SUCCESS = exports.TXT_SANDBOX_EXEC_BACKGROUND = exports.TXT_SANDBOX_EXEC_ID = exports.ERR_SANDBOX_CP_INVALID_SOURCE = exports.ERR_SANDBOX_CP_INVALID_DEST = exports.ERR_SANDBOX_CP_REPLACE = exports.ERR_SANDBOX_CP_MKDIR = exports.ERR_SANDBOX_CP_PATH_EXISTS = exports.ERR_SANDBOX_CP_NOT_EMPTY_DIR = exports.ERR_SANDBOX_CP_READDIR = exports.ERR_SANDBOX_CP_DEST_NOT_FOLDER = exports.ERR_SANDBOX_CP_SOURCE_NOT_FOUND = exports.TXT_SANDBOX_CP_DONE = exports.TXT_SANDBOX_CP_PROGRESS = exports.TXT_SANDBOX_UNZIPPING_COUNT = exports.TXT_SANDBOX_UNZIP_DONE = exports.TXT_SANDBOX_UNZIP = exports.TXT_SANDBOX_CP_DOWNLOAD_DONE = exports.TXT_SANDBOX_CP_DOWNLOAD = exports.OPTION_SANDBOX_CP_IGNORE = exports.OPTION_SANDBOX_CP_USER = exports.OPTION_SANDBOX_CP_DOWNLOAD_REPLACE = exports.OPTION_SANDBOX_CP_DOWNLOAD_MERGE = exports.OPTION_SANDBOX_CP_DEST = exports.OPTION_SANDBOX_CP_SOURCE = exports.DESC_COMMAND_SANDBOX_CP = exports.ERR_SANDBOX_ENDPOINTS_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_EXISTS = exports.TXT_SANDBOX_ENDPOINT_DELETED = exports.TXT_SANDBOX_ENDPOINT_DELETE_CONFIRM = exports.TXT_SANDBOX_ENDPOINT_ADDED = exports.TXT_SANDBOX_APP_REMOVED = exports.TXT_SANDBOX_APP_ADDED = exports.OPTION_SANDBOX_ENDPOINT_TYPE = void 0;
|
|
16
|
+
exports.TXT_REGISTER_OPENING = exports.TXT_LOGIN_OPENING = exports.TXT_LOGIN_SELECT_REGION = exports.TXT_WORKSPACE_NONE = exports.TXT_WORKSPACE_SET_SUCCESS = exports.ARG_COMMAND_WORKSPACE = exports.DESC_COMMAND_WORKSPACE_GET = exports.DESC_COMMAND_WORKSPACE_SET = exports.DESC_COMMAND_WORKSPACE_LIST = exports.DESC_COMMAND_WORKSPACE = exports.TXT_COMMAND_REGISTER_PROVIDE_NAME = exports.TXT_COMMAND_REGISTER_PROVIDE_EMAIL = exports.ERR_COMMAND_REGISTER_INVALID_NAME = exports.ERR_COMMAND_REGISTER_INVALID_EMAIL = exports.OPT_COMMAND_REGISTER_NAME = exports.OPT_COMMAND_REGISTER_EMAIL = exports.DESC_COMMAND_REGISTER = exports.TXT_LOGOUT_SUCCESS = exports.DESC_COMMAND_LOGOUT = exports.DESC_COMMAND_LOGIN = exports.HELP_COMMAND_MCP = exports.ERR_MCP_TOOL_FILTERED = exports.ERR_MCP_TOOLS_CATEGORY = exports.OPT_COMMAND_MCP_TOOLS = exports.ERR_MCP_REFRESH_FAILED = exports.ERR_MCP_URL_INVALID = exports.ERR_MCP_ENDPOINT = exports.DESC_COMMAND_MCP = exports.ERR_API_MEDIA_TYPE_NOT_IMPLEMENTED = exports.ERR_API_PARAMETER_NOT_REPLACED = exports.TXT_API_ENDPOINT_REQUIRED_SCOPES = exports.ERR_API_ENDPOINT_NOT_FOUND = exports.ERR_API_WRONG_METHOD = exports.ERR_SCHEMA_FETCH_FAILED = exports.OPT_COMMAND_API_INFO_URL = exports.OPT_COMMAND_API_INFO_SCHEMA = exports.OPT_COMMAND_API_INFO_METHOD = exports.OPT_COMMAND_API_LIST_SEARCH = exports.OPT_COMMAND_API_LIST_METHOD = exports.ERR_API_REQUEST_BODY_VALUE = exports.ERR_API_REQUEST_QUERY_VALUE = exports.ERR_API_REQUEST_INVALID_JSON = exports.ERR_API_REQUEST_FILE_ERROR = exports.ERR_API_REQUEST_OUTPUT_EXISTS = exports.DESC_COMMAND_API_INFO = exports.DESC_COMMAND_API_FORM = exports.DESC_COMMAND_API_JSON = exports.DESC_COMMAND_API_DATA = exports.DESC_COMMAND_API_OUTPUT = exports.DESC_COMMAND_API_REQUEST_QUERY = void 0;
|
|
17
|
+
exports.TXT_ROUTE_SERVE = exports.TXT_COMMAND_ROUTE_CREATED = exports.TXT_COMMAND_DISTRO_CREATED = exports.ERR_COMMAND_SCOPE_NO_PROJECT = exports.OPT_COMMAND_DISTRO_DISABLE = exports.OPT_COMMAND_DISTRO_ENABLE = exports.OPT_COMMAND_DISTRO_AGENT_NOTE = exports.OPT_COMMAND_DISTRO_NOTE = exports.OPT_COMMAND_DISTRO_NAME = exports.OPT_COMMAND_ROUTE_TARGET = exports.OPT_COMMAND_ROUTE_AGENT_NOTE = exports.OPT_COMMAND_ROUTE_NOTE = exports.OPT_COMMAND_ROUTE_PATH = exports.OPT_COMMAND_ROUTE_DOMAIN = exports.OPT_COMMAND_ROUTE_SUBDOMAIN = exports.OPT_COMMAND_ROUTE_TYPE = exports.OPT_COMMAND_ROUTE_ID = exports.OPT_COMMAND_DISTRO_IDENTIFIER = exports.OPT_COMMAND_SCOPE = exports.OPT_COMMAND_AGENT_NOTE = exports.OPT_COMMAND_NOTE = exports.DESC_COMMAND_ROUTE = exports.DESC_COMMAND_ROUTE_UPDATE = exports.DESC_COMMAND_ROUTE_DELETE = exports.DESC_COMMAND_ROUTE_GET = exports.DESC_COMMAND_DISTRO_UPDATE = exports.DESC_COMMAND_DISTRO_GET = exports.DESC_COMMAND_ROUTE_LIST = exports.DESC_COMMAND_DISTRO_LIST = exports.DESC_COMMAND_DISTRO_DELETE = exports.DESC_COMMAND_ROUTE_CREATE = exports.DESC_COMMAND_DISTRO_CREATE = exports.DESC_COMMAND_DISTRO = exports.ERR_API_MESSAGE_REPLACER = exports.ERR_LOGIN_INVALID_BASE_URL = exports.ERR_LOGIN_NO_WORKSPACE_FOUND = exports.ERR_LOGIN_NO_WORKSPACES = exports.ERR_REGISTER_HTTP_CANCEL = exports.ERR_LOGIN_HTTP_CANCEL = exports.ERR_LOGIN_HTTP_FAILED = exports.ERR_LOGIN_HTTP_SERVER_PORT_TAKEN = exports.TXT_REGISTER_SUCCESS = exports.TXT_LOGIN_SUCCESS = exports.TXT_LOGIN_SELECT_WORKSPACE = exports.TXT_LOGIN_ENTER_BASE_URL = exports.TXT_LOGIN_PROVIDE_CODE = exports.TXT_REGISTER_OPEN_URL = exports.TXT_LOGIN_OPEN_URL = exports.TXT_REGISTER_OPENING_STAR = exports.TXT_LOGIN_OPENING_STAR = void 0;
|
|
18
|
+
exports.OPT_COMMAND_ARTIFACT_NAME = exports.OPT_COMMAND_ARTIFACT_TYPE = exports.DESC_COMMAND_ARTIFACT_CREATE = exports.DESC_COMMAND_ARTIFACT_GET = exports.TXT_ARTIFACT_DOCKER_LOGIN_FAILED = exports.TXT_ARTIFACT_DOCKER_LOGIN_SUCCESS = exports.TXT_ARTIFACT_VERSION_DELETE_CONFIRM = exports.TXT_ARTIFACT_DELETE_CONFIRM = exports.DESC_COMMAND_ARTIFACT_DELETE = exports.ERR_COMMAND_ARTIFACT_NO_PROJECTS = exports.DESC_COMMAND_ARTIFACT_VERSION_GET = exports.DESC_COMMAND_ARTIFACT_VERSION_LIST = exports.DESC_COMMAND_ARTIFACT_VERSION_DELETE = exports.DESC_COMMAND_ARTIFACT_DOCKER_LOGIN = exports.DESC_COMMAND_ARTIFACT_LIST = exports.DESC_COMMAND_ARTIFACT_VERSION = exports.ERR_COMMAND_DOMAIN_UNAVAILABLE = exports.OPTION_COMMAND_DOMAIN_IDENTIFIER = exports.ERR_COMMAND_DOMAIN_NO_DOMAINS = exports.TXT_COMMAND_DOMAIN_PROMPT_REQUIRED = exports.TXT_COMMAND_DOMAIN_BUY_SELECT_DOMAIN = exports.TXT_COMMAND_DOMAIN_PROVIDE_PROMPT = exports.ERR_COMMAND_DOMAIN_NOT_FOUND = exports.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE = exports.OPT_COMMAND_DOMAIN_SORT = exports.OPT_COMMAND_DOMAIN_PHRASE = exports.OPT_COMMAND_DOMAIN_BUY_OWNER = exports.OPT_COMMAND_DOMAIN_BUY_TLD = exports.DESC_COMMAND_DOMAIN_GET = exports.DESC_COMMAND_DOMAIN_LIST = exports.DESC_COMMAND_DOMAIN_SEARCH = exports.DESC_COMMAND_DOMAIN_BUY = exports.DESC_COMMAND_DOMAIN = exports.ERR_ROUTE_NO_DEFAULT = exports.ERR_WRONG_ROUTE_TARGET = exports.ERR_COMMAND_ROUTE_NO_TARGET = exports.ERR_COMMAND_ROUTE_TYPE = exports.TXT_COMMAND_ROUTES_NOT_FOUND = exports.TXT_COMMAND_DISTROS_NOT_FOUND = exports.TXT_COMMAND_ROUTE_DELETED = exports.TXT_COMMAND_DISTRO_DELETED = exports.TXT_COMMAND_ROUTE_DELETE_CONFIRM = exports.TXT_COMMAND_DISTRO_DELETE_CONFIRM = exports.ERR_COMMAND_DISTRO_ENABLE_DISABLE = exports.ERR_COMMAND_DISTRO_NO_UPDATE = exports.ERR_COMMAND_ROUTE_NO_UPDATE = exports.ERR_COMMAND_DISTRO_NOT_FOUND = exports.ERR_COMMAND_SCOPE = exports.TXT_COMMAND_DISTRO_UPDATED = exports.TXT_COMMAND_ROUTE_UPDATED = void 0;
|
|
19
|
+
exports.EXAMPLE_TUNNEL_HTTP = exports.EXAMPLE_SANDBOX_CREATE = exports.EXAMPLE_DISTRO_CREATE = exports.EXAMPLE_ROUTE_CREATE = exports.EXAMPLE_ROUTE_LIST = exports.EXAMPLE_ROUTE_UPDATE = exports.EXAMPLE_ROUTE_DELETE = exports.EXAMPLE_DISTRO_DELETE = exports.EXAMPLE_ROUTE_GET = exports.EXAMPLE_DISTRO_UPDATE = exports.EXAMPLE_DISTRO_GET = exports.EXAMPLE_DISTRO_LIST = exports.EXAMPLE_SANDBOX_CP = exports.ERR_PROJECT_NO_PROJECTS = exports.TXT_LOGIN_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_CREATED = exports.TXT_COMMAND_PROJECT_LINK_NOT_FOUND = exports.TXT_COMMAND_PROJECT_LINK_NAME = exports.TXT_COMMAND_PROJECT_LINK_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_LINK_TO = exports.TXT_COMMAND_PROJECT_LINK_EXISTING_DESC = exports.TXT_COMMAND_PROJECT_LINK_EXISTING = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW_DESC = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW = exports.ERR_COMMAND_PROJECT_LINK_DIR_NOT_DIR = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO_INITIALIZED = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO = exports.TXT_COMMAND_PROJECT_LINK_DIR_CONFIRM = exports.TXT_COMMAND_PROJECT_LINK_DIR_LINKED = exports.ERR_COMMAND_PROJECT_LINK_DIR_CREATE = exports.OPT_COMMAND_PROJECT_LINK_TRY_NOW = exports.OPT_COMMAND_PROJECT_LINK_SET_GIT_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_HAS_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_DIRECTORY = exports.OPT_COMMAND_PROJECT_LINK_GIT = exports.OPT_COMMAND_PROJECT_LINK_RELINK = exports.DESC_COMMAND_PROJECT_LINK = exports.DESC_COMMAND_PROJECT_LIST = exports.DESC_COMMAND_PROJECT_GIT = exports.DESC_COMMAND_PROJECT_GIT_CREDENTIAL = exports.DESC_COMMAND_PROJECT = exports.TXT_ARTIFACT_VERSION_DOWNLOAD = exports.TXT_ARTIFACT_PUBLISH = exports.TXT_ARTIFACT_CREATED = exports.TXT_ARTIFACT_VERSION_DELETED = exports.TXT_ARTIFACT_DELETED = exports.ERR_COMMAND_ARTIFACT_TYPE = exports.OPT_COMMAND_ARTIFACT_VERSION = exports.OPT_COMMAND_ARTIFACT_IDENTIFIER = exports.OPT_COMMAND_ARTIFACT_CREATE_IDENTIFIER = void 0;
|
|
20
|
+
exports.EXAMPLE_TESTS_UNIT_UPLOAD = exports.EXAMPLE_ARTIFACT_VERSION_DELETE = exports.EXAMPLE_ARTIFACT_VERSION_GET = exports.EXAMPLE_ARTIFACT_VERSION_LIST = exports.EXAMPLE_ARTIFACT_CREATE = exports.EXAMPLE_ARTIFACT_DELETE = exports.EXAMPLE_ARTIFACT_DOWNLOAD = exports.EXAMPLE_ARTIFACT_PUBLISH = exports.EXAMPLE_ARTIFACT_VERSION_CREATE = exports.EXAMPLE_PIPELINE_RUN_RETRY = exports.EXAMPLE_PIPELINE_RUN_LIST = exports.EXAMPLE_PIPELINE_LIST = exports.EXAMPLE_PIPELINE_YML = exports.EXAMPLE_PIPELINE_GET = exports.EXAMPLE_PIPELINE_UPDATE = exports.EXAMPLE_PIPELINE_DELETE = exports.EXAMPLE_PIPELINE_CREATE = exports.EXAMPLE_PIPELINE_RUN_CANCEL = exports.EXAMPLE_PIPELINE_RUN_APPLY = exports.EXAMPLE_PIPELINE_RUN_LOGS = exports.EXAMPLE_PIPELINE_RUN_JSONL = exports.EXAMPLE_PIPELINE_RUN_STATUS = exports.EXAMPLE_PIPELINE_RUN_START = exports.EXAMPLE_SANDBOX_ENDPOINT_LIST = exports.EXAMPLE_SANDBOX_ENDPOINT_GET = exports.EXAMPLE_SANDBOX_ENDPOINT_DELETE = exports.EXAMPLE_SANDBOX_ENDPOINT_CREATE = exports.EXAMPLE_SANDBOX_SNAPSHOT_LIST = exports.EXAMPLE_SANDBOX_SNAPSHOT_GET = exports.EXAMPLE_SANDBOX_SNAPSHOT_DELETE = exports.EXAMPLE_SANDBOX_SNAPSHOT_CREATE = exports.EXAMPLE_SANDBOX_EXEC_STATUS = exports.EXAMPLE_SANDBOX_EXEC_LOGS = exports.EXAMPLE_SANDBOX_APP_STATUS = exports.EXAMPLE_SANDBOX_APP_STOP = exports.EXAMPLE_SANDBOX_APP_REMOVE = exports.EXAMPLE_SANDBOX_APP_ADD = exports.EXAMPLE_SANDBOX_APP_START = exports.EXAMPLE_SANDBOX_APP_LOGS = exports.EXAMPLE_SANDBOX_EXEC_LIST = exports.EXAMPLE_SANDBOX_APP_LIST = exports.EXAMPLE_SANDBOX_EXEC_KILL = exports.EXAMPLE_SANDBOX_EXEC_COMMAND = exports.EXAMPLE_TUNNEL_START = exports.EXAMPLE_TUNNEL_TCP = exports.EXAMPLE_TUNNEL_TLS = exports.EXAMPLE_AGENT_TUNNEL_START = exports.EXAMPLE_AGENT_TUNNEL_STATUS = exports.EXAMPLE_AGENT_TUNNEL_REMOVE = exports.EXAMPLE_AGENT_TUNNEL_LIST = void 0;
|
|
21
|
+
exports.EXAMPLE_CRAWL_LINK = exports.EXAMPLE_CRAWL_RUN = exports.EXAMPLE_TESTS_CAPTURE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CLOSE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CREATE = exports.EXAMPLE_TESTS_VISUAL_LINK = exports.EXAMPLE_TESTS_VISUAL_UPLOAD = exports.EXAMPLE_TESTS_VISUAL_SETUP = exports.EXAMPLE_TESTS_UNIT_LINK = void 0;
|
|
21
22
|
const utils_1 = require("./utils");
|
|
22
23
|
exports.ERR_CANCELLED = 'Cancelled';
|
|
23
24
|
exports.ERR_REST_API_GENERAL_ERROR = 'Something went wrong';
|
|
@@ -410,6 +411,8 @@ exports.OPTION_ARTIFACT_DOWNLOAD_PATH = 'Path to the directory where version wil
|
|
|
410
411
|
exports.OPTION_ARTIFACT_ID = 'Human-readable ID of the artifact and optionally version: artifact:version or artifact@version';
|
|
411
412
|
exports.OPTION_ARTIFACT_PUBLISH_CREATE = 'Create artifact if not exists';
|
|
412
413
|
exports.OPTION_ARTIFACT_VERSION_FROM = 'Version to copy content from';
|
|
414
|
+
exports.OPTION_ARTIFACT_VERSION_NOTE = 'Note of the artifact version';
|
|
415
|
+
exports.OPTION_ARTIFACT_VERSION_AGENT_NOTE = 'Note of the artifact version for AI agents';
|
|
413
416
|
exports.OPTION_ARTIFACT_PUBLISH_OVERWRITE_VERSION = 'Allow overwriting existing version';
|
|
414
417
|
exports.OPTION_ARTIFACT_DOWNLOAD_MERGE = 'Merge contents of the directory with artifact';
|
|
415
418
|
exports.OPTION_ARTIFACT_DOWNLOAD_REPLACE = 'Replace contents of the directory with artifact';
|
|
@@ -630,6 +633,8 @@ exports.DESC_COMMAND_SANDBOX_APP = 'Manage sandbox apps';
|
|
|
630
633
|
// Sandbox options
|
|
631
634
|
exports.OPTION_SANDBOX_IDENTIFIER = 'Sandbox identifier';
|
|
632
635
|
exports.OPTION_SANDBOX_NAME = 'Sandbox display name';
|
|
636
|
+
exports.OPTION_SANDBOX_NOTE = 'Sandbox note';
|
|
637
|
+
exports.OPTION_SANDBOX_AGENT_NOTE = 'Sandbox note for AI agents';
|
|
633
638
|
exports.OPTION_SANDBOX_OS = `Operating system image (ubuntu:24.04 (default), ubuntu:22.04)`;
|
|
634
639
|
exports.OPTION_SANDBOX_RESOURCES = 'Resource allocation: 1x2, 2x4, 4x8, 8x16, 12x24 (CPUxRAM)';
|
|
635
640
|
exports.OPTION_SANDBOX_INSTALL_COMMANDS = 'Setup commands to run on creation (can be used multiple times)';
|
|
@@ -942,9 +947,14 @@ exports.DESC_COMMAND_ROUTE_CREATE = 'Create route. Required scopes: DISTRIBUTION
|
|
|
942
947
|
exports.DESC_COMMAND_DISTRO_DELETE = 'Delete distribution. Required scopes: DISTRIBUTION_MANAGE';
|
|
943
948
|
exports.DESC_COMMAND_DISTRO_LIST = 'List distributions. Required scopes: DISTRIBUTION_INFO';
|
|
944
949
|
exports.DESC_COMMAND_ROUTE_LIST = 'List routes. Required scopes: DISTRIBUTION_INFO';
|
|
950
|
+
exports.DESC_COMMAND_DISTRO_GET = 'Get distribution details. Required scopes: DISTRIBUTION_INFO';
|
|
951
|
+
exports.DESC_COMMAND_DISTRO_UPDATE = 'Update distribution. Required scopes: DISTRIBUTION_MANAGE';
|
|
952
|
+
exports.DESC_COMMAND_ROUTE_GET = 'Get route details. Required scopes: DISTRIBUTION_INFO';
|
|
945
953
|
exports.DESC_COMMAND_ROUTE_DELETE = 'Delete route. Required scopes: DISTRIBUTION_MANAGE';
|
|
946
954
|
exports.DESC_COMMAND_ROUTE_UPDATE = 'Update route. Required scopes: DISTRIBUTION_MANAGE';
|
|
947
955
|
exports.DESC_COMMAND_ROUTE = 'Manage distribution routes';
|
|
956
|
+
exports.OPT_COMMAND_NOTE = 'Resource note';
|
|
957
|
+
exports.OPT_COMMAND_AGENT_NOTE = 'Note for AI agents operating on this resource';
|
|
948
958
|
exports.OPT_COMMAND_SCOPE = 'Force scope (WORKSPACE, PROJECT). By default calculated by provided options and environmental variables (--project, BUDDY_PROJECT, linked project)';
|
|
949
959
|
exports.OPT_COMMAND_DISTRO_IDENTIFIER = 'Human-readable ID of the distribution';
|
|
950
960
|
exports.OPT_COMMAND_ROUTE_ID = 'ID of the route (find via "bdy distro route ls")';
|
|
@@ -952,6 +962,8 @@ exports.OPT_COMMAND_ROUTE_TYPE = 'Type of the route. Allowed: DIRECT_PROXY (defa
|
|
|
952
962
|
exports.OPT_COMMAND_ROUTE_SUBDOMAIN = 'Optional sub-name prepended to --domain (e.g. --subdomain=api --domain=example.com → api.example.com). Omit to route the zone itself. Do NOT use this to peel a label off a multi-level zone — the zone always goes whole into --domain';
|
|
953
963
|
exports.OPT_COMMAND_ROUTE_DOMAIN = 'Zone for the route — pass the WHOLE string from `bdy domain ls` (e.g. "example.com" or "my-app.example.dev"). Do NOT split a multi-level zone into subdomain+domain; the entire bought/claimed string is one zone and goes here as-is. Use --subdomain only to route a sub-name within this zone';
|
|
954
964
|
exports.OPT_COMMAND_ROUTE_PATH = 'Path of the route';
|
|
965
|
+
exports.OPT_COMMAND_ROUTE_NOTE = 'Note of the route';
|
|
966
|
+
exports.OPT_COMMAND_ROUTE_AGENT_NOTE = 'Note of the route for AI agents';
|
|
955
967
|
exports.OPT_COMMAND_ROUTE_TARGET = `Target of the route (can be used multiple times).
|
|
956
968
|
Format: "region=default,url=https://example.com,artifact=artifact:version,sandbox=sandbox:endpoint"
|
|
957
969
|
To use "," in value use \\,
|
|
@@ -961,6 +973,10 @@ For sandbox target use sandbox (required), region (optional)
|
|
|
961
973
|
Region can be Default, NorthAmerica, Europe, Asia, Oceania, SouthAmerica, Africa, Antarctica or two letter country name
|
|
962
974
|
If no region is specified or default is used, the target is used as the fallback for all locations. Default region is mandatory`;
|
|
963
975
|
exports.OPT_COMMAND_DISTRO_NAME = 'Name of the distribution';
|
|
976
|
+
exports.OPT_COMMAND_DISTRO_NOTE = 'Note of the distribution';
|
|
977
|
+
exports.OPT_COMMAND_DISTRO_AGENT_NOTE = 'Note of the distribution for AI agents';
|
|
978
|
+
exports.OPT_COMMAND_DISTRO_ENABLE = 'Enable the distribution';
|
|
979
|
+
exports.OPT_COMMAND_DISTRO_DISABLE = 'Disable the distribution';
|
|
964
980
|
exports.ERR_COMMAND_SCOPE_NO_PROJECT = 'Project must be provided for PROJECT scope';
|
|
965
981
|
exports.TXT_COMMAND_DISTRO_CREATED = 'Distribution created';
|
|
966
982
|
exports.TXT_COMMAND_ROUTE_CREATED = 'Route created';
|
|
@@ -969,9 +985,12 @@ const TXT_ROUTE_SERVE = (target) => `Serve it from your own domain (CDN):
|
|
|
969
985
|
Need a zone or distribution? See \`bdy domain buy\` and \`bdy distro create\``;
|
|
970
986
|
exports.TXT_ROUTE_SERVE = TXT_ROUTE_SERVE;
|
|
971
987
|
exports.TXT_COMMAND_ROUTE_UPDATED = 'Route updated';
|
|
988
|
+
exports.TXT_COMMAND_DISTRO_UPDATED = 'Distribution updated';
|
|
972
989
|
exports.ERR_COMMAND_SCOPE = 'Wrong scope. Allowed: WORKSPACE, PROJECT';
|
|
973
990
|
exports.ERR_COMMAND_DISTRO_NOT_FOUND = 'Distribution not found';
|
|
974
991
|
exports.ERR_COMMAND_ROUTE_NO_UPDATE = 'Nothing to update';
|
|
992
|
+
exports.ERR_COMMAND_DISTRO_NO_UPDATE = 'Nothing to update';
|
|
993
|
+
exports.ERR_COMMAND_DISTRO_ENABLE_DISABLE = 'Pass either --enable or --disable, not both';
|
|
975
994
|
const TXT_COMMAND_DISTRO_DELETE_CONFIRM = (name) => `Are you sure you want to delete distribution '${name}'?`;
|
|
976
995
|
exports.TXT_COMMAND_DISTRO_DELETE_CONFIRM = TXT_COMMAND_DISTRO_DELETE_CONFIRM;
|
|
977
996
|
const TXT_COMMAND_ROUTE_DELETE_CONFIRM = (identifier, routeId) => `Are you sure you want to delete distribution route '${identifier}/${routeId}'?`;
|
|
@@ -1129,6 +1148,21 @@ EXAMPLES:
|
|
|
1129
1148
|
exports.EXAMPLE_DISTRO_LIST = `
|
|
1130
1149
|
### list distributions
|
|
1131
1150
|
bdy distro ls`;
|
|
1151
|
+
exports.EXAMPLE_DISTRO_GET = `
|
|
1152
|
+
### get distribution details
|
|
1153
|
+
bdy distro get distro-identifier`;
|
|
1154
|
+
exports.EXAMPLE_DISTRO_UPDATE = `
|
|
1155
|
+
### rename distribution
|
|
1156
|
+
bdy distro update distro-identifier -n "new name"
|
|
1157
|
+
### set note (pass an empty value to clear it)
|
|
1158
|
+
bdy distro update distro-identifier --note "owned by team web"
|
|
1159
|
+
### set the note read by AI agents
|
|
1160
|
+
bdy distro update distro-identifier --agent-note "deploy: manual-approval-required"
|
|
1161
|
+
### disable distribution
|
|
1162
|
+
bdy distro update distro-identifier --disable`;
|
|
1163
|
+
exports.EXAMPLE_ROUTE_GET = `
|
|
1164
|
+
### get route details (route id from \`bdy distro route ls\`)
|
|
1165
|
+
bdy distro route get distro-identifier 12345`;
|
|
1132
1166
|
exports.EXAMPLE_DISTRO_DELETE = `
|
|
1133
1167
|
### delete distribution
|
|
1134
1168
|
bdy distro rm distro-identifier
|
|
@@ -49,12 +49,12 @@ const makeRequest = async (host, path, body, method = 'POST', respAsJson = true,
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
class ApiBuddyClass {
|
|
52
|
-
async register(service, target, tunneling, proxy, host, token, tags, user, onDefaultRegion) {
|
|
52
|
+
async register(service, target, tunneling, proxy, host, token, tags, user, options, onDefaultRegion) {
|
|
53
53
|
const version = (0, utils_1.getVersion)();
|
|
54
54
|
const hostname = (0, utils_1.getHostname)();
|
|
55
55
|
const platform = (0, utils_1.getPlatform)();
|
|
56
56
|
logger_1.default.info(texts_1.LOG_REGISTERING_AGENT);
|
|
57
|
-
const
|
|
57
|
+
const data = {
|
|
58
58
|
token,
|
|
59
59
|
version,
|
|
60
60
|
hostname,
|
|
@@ -64,8 +64,17 @@ class ApiBuddyClass {
|
|
|
64
64
|
user,
|
|
65
65
|
target,
|
|
66
66
|
tunneling,
|
|
67
|
-
proxy
|
|
68
|
-
|
|
67
|
+
proxy,
|
|
68
|
+
note: '',
|
|
69
|
+
agentNote: ''
|
|
70
|
+
};
|
|
71
|
+
if (options) {
|
|
72
|
+
if (options.note)
|
|
73
|
+
data.note = options.note;
|
|
74
|
+
if (options.agentNote)
|
|
75
|
+
data.agentNote = options.agentNote;
|
|
76
|
+
}
|
|
77
|
+
const r = await makeRequest(host, '/tunnel/agent/add', data);
|
|
69
78
|
logger_1.default.info((0, texts_1.LOG_AGENT_REGISTERED)(r.id));
|
|
70
79
|
logger_1.default.info((0, texts_1.LOG_REGION_DETECTED)(r.region));
|
|
71
80
|
if (onDefaultRegion)
|
package/distTs/src/tunnel/cfg.js
CHANGED
|
@@ -73,6 +73,12 @@ class Cfg {
|
|
|
73
73
|
type,
|
|
74
74
|
target: Input.target(target, type),
|
|
75
75
|
};
|
|
76
|
+
if (options.note !== undefined) {
|
|
77
|
+
tunnel.note = options.note;
|
|
78
|
+
}
|
|
79
|
+
if (options.agentNote !== undefined) {
|
|
80
|
+
tunnel.agentNote = options.agentNote;
|
|
81
|
+
}
|
|
76
82
|
if (options.region !== undefined)
|
|
77
83
|
tunnel.region = Input.region(options.region);
|
|
78
84
|
else if (useDefaults)
|
|
@@ -38,13 +38,15 @@ class TunnelConfig {
|
|
|
38
38
|
sshUser;
|
|
39
39
|
sshPassword;
|
|
40
40
|
sshForwardPort;
|
|
41
|
+
note;
|
|
42
|
+
agentNote;
|
|
41
43
|
sshClientUser;
|
|
42
44
|
sshClientPassword;
|
|
43
45
|
targetProto;
|
|
44
46
|
targetHost;
|
|
45
47
|
targetPort;
|
|
46
48
|
targetAuth;
|
|
47
|
-
constructor({ type, target, region, timeout, domain, subdomain, name, whitelist, tlsSettings, httpSettings, sshSettings, }) {
|
|
49
|
+
constructor({ type, target, region, timeout, domain, subdomain, name, whitelist, tlsSettings, httpSettings, sshSettings, resourceNote, }) {
|
|
48
50
|
this.type = type;
|
|
49
51
|
this.region = region;
|
|
50
52
|
this.target = target;
|
|
@@ -56,6 +58,8 @@ class TunnelConfig {
|
|
|
56
58
|
this.useragents = [];
|
|
57
59
|
this.headers = [];
|
|
58
60
|
this.responseHeaders = [];
|
|
61
|
+
this.note = resourceNote?.note;
|
|
62
|
+
this.agentNote = resourceNote?.agentNote;
|
|
59
63
|
if (tlsSettings) {
|
|
60
64
|
this.terminate = tlsSettings.terminate;
|
|
61
65
|
this.key = tlsSettings.key;
|
|
@@ -67,6 +67,7 @@ class OutputInteractiveTunnel {
|
|
|
67
67
|
y += this.updateSpriteDns(y);
|
|
68
68
|
y += this.updateSpriteType(y);
|
|
69
69
|
y += this.updateSpriteRegion(y);
|
|
70
|
+
y += this.updateSpriteNote(y);
|
|
70
71
|
y += this.updateSpriteTarget(y);
|
|
71
72
|
y += this.updateSpriteIdentify(y);
|
|
72
73
|
y += this.updateSpriteTerminate(y);
|
|
@@ -554,6 +555,13 @@ class OutputInteractiveTunnel {
|
|
|
554
555
|
},
|
|
555
556
|
}, fillString('Region:', ROW_LENGTH));
|
|
556
557
|
}
|
|
558
|
+
createSpriteNote() {
|
|
559
|
+
this.sprites.note = termkit_no_lazy_require_1.default.ScreenBuffer.createFromString({
|
|
560
|
+
attr: {
|
|
561
|
+
color: COLOR_LIGHT_GRAY,
|
|
562
|
+
},
|
|
563
|
+
}, fillString('Note:', ROW_LENGTH));
|
|
564
|
+
}
|
|
557
565
|
createSpriteIdentify() {
|
|
558
566
|
this.sprites.identify = termkit_no_lazy_require_1.default.ScreenBuffer.createFromString({
|
|
559
567
|
attr: {
|
|
@@ -704,6 +712,22 @@ class OutputInteractiveTunnel {
|
|
|
704
712
|
});
|
|
705
713
|
return this.sprites.region.height;
|
|
706
714
|
}
|
|
715
|
+
updateSpriteNote(y) {
|
|
716
|
+
if (!this.tunnel.note)
|
|
717
|
+
return 0;
|
|
718
|
+
this.sprites.note.put({
|
|
719
|
+
x: COLUMN_LENGTH,
|
|
720
|
+
y: 0,
|
|
721
|
+
attr: {
|
|
722
|
+
color: COLOR_WHITE,
|
|
723
|
+
},
|
|
724
|
+
}, fillString(format_1.default.noteInline(this.tunnel.note), ROW_LENGTH - COLUMN_LENGTH));
|
|
725
|
+
this.sprites.note.draw({
|
|
726
|
+
dst: this.viewPort,
|
|
727
|
+
y,
|
|
728
|
+
});
|
|
729
|
+
return this.sprites.note.height;
|
|
730
|
+
}
|
|
707
731
|
updateSpriteTerminate(y) {
|
|
708
732
|
if (this.tunnel.type === tunnel_1.TUNNEL_TYPE.TLS) {
|
|
709
733
|
this.sprites.terminate.put({
|
|
@@ -820,6 +844,7 @@ class OutputInteractiveTunnel {
|
|
|
820
844
|
this.createSpriteType();
|
|
821
845
|
this.createSpriteDns();
|
|
822
846
|
this.createSpriteRegion();
|
|
847
|
+
this.createSpriteNote();
|
|
823
848
|
this.createSpriteTarget();
|
|
824
849
|
this.createSpriteIdentify();
|
|
825
850
|
this.createSpriteTerminate();
|
|
@@ -26,6 +26,8 @@ class OutputNoninteractiveConfigTunnel {
|
|
|
26
26
|
format_1.default.target(this.tunnel.type, this.tunnel.target),
|
|
27
27
|
]);
|
|
28
28
|
}
|
|
29
|
+
data.push(['Note', format_1.default.note(this.tunnel.note)]);
|
|
30
|
+
data.push(['Agent Note', format_1.default.note(this.tunnel.agentNote)]);
|
|
29
31
|
data.push(['Region', format_1.default.tunnelRegion(this.tunnel.region)]);
|
|
30
32
|
data.push(['Timeout', format_1.default.tunnelTimeout(this.tunnel.timeout)]);
|
|
31
33
|
data.push(['Whitelist', format_1.default.tunnelWhitelist(this.tunnel.whitelist)]);
|
|
@@ -17,7 +17,11 @@ class OutputNoninteractiveTunnel {
|
|
|
17
17
|
this.terminal(`${format_1.default.date()}: Tunnel ${t.type} to ${t.serve || t.target} ${status}\n`);
|
|
18
18
|
}
|
|
19
19
|
onOpen(t) {
|
|
20
|
-
|
|
20
|
+
// Appended after the entry URL, so a consumer scraping the URL out of this
|
|
21
|
+
// line still terminates it on whitespace. Omitted entirely when unset to
|
|
22
|
+
// keep the common line unchanged.
|
|
23
|
+
const note = t.note ? ` Note: ${format_1.default.noteInline(t.note)}` : '';
|
|
24
|
+
this.status(t, `open. Entry: ${format_1.default.entry(t)}${note}`);
|
|
21
25
|
}
|
|
22
26
|
onClosed(t) {
|
|
23
27
|
this.status(t, 'closed');
|
|
@@ -57,6 +61,14 @@ class OutputNoninteractiveTunnel {
|
|
|
57
61
|
this.tunnel.on(tunnel_1.TUNNEL_EVENT.HTTP_REQUEST, (t, logRequest) => this.onHttpRequest(t, logRequest));
|
|
58
62
|
this.tunnel.on(tunnel_1.TUNNEL_EVENT.HTTP_RESPONSE, (t, logRequest) => this.onHttpResponse(t, logRequest));
|
|
59
63
|
this.tunnel.on(tunnel_1.TUNNEL_EVENT.STOPPED, () => this.onStopped());
|
|
64
|
+
// This renderer is otherwise purely event-driven, so a tunnel handed to it
|
|
65
|
+
// already open — `agent tunnel status <id>` attaches to a live one — has
|
|
66
|
+
// already missed its OPEN event and would print nothing at all. Dump the
|
|
67
|
+
// current state once, the way the interactive dashboard's first draw does.
|
|
68
|
+
// Tunnels we open ourselves are not yet OPEN at this point, so they still
|
|
69
|
+
// print exactly once, from the event.
|
|
70
|
+
if (this.tunnel.status === tunnel_1.TUNNEL_STATUS.OPEN)
|
|
71
|
+
this.onOpen(this.tunnel);
|
|
60
72
|
}
|
|
61
73
|
}
|
|
62
74
|
exports.default = OutputNoninteractiveTunnel;
|
package/distTs/src/utils.js
CHANGED
|
@@ -543,6 +543,8 @@ const getBasicCommandTcp = () => {
|
|
|
543
543
|
commandTcp.option('-w, --whitelist <cidrs...>', texts_1.OPTION_WHITELIST);
|
|
544
544
|
commandTcp.option('-n, --name <name>', texts_1.OPTION_NAME);
|
|
545
545
|
commandTcp.option('-t, --timeout <seconds>', texts_1.OPTION_TIMEOUT);
|
|
546
|
+
commandTcp.option('--note <note>', texts_1.OPT_COMMAND_NOTE);
|
|
547
|
+
commandTcp.option('--agent-note <note>', texts_1.OPT_COMMAND_AGENT_NOTE);
|
|
546
548
|
return commandTcp;
|
|
547
549
|
};
|
|
548
550
|
exports.getBasicCommandTcp = getBasicCommandTcp;
|
|
@@ -594,6 +596,8 @@ const getBasicCommandHttp = () => {
|
|
|
594
596
|
commandHttp.option('-2, --http2', texts_1.OPTION_HTTP_2);
|
|
595
597
|
commandHttp.option('-c, --compression', texts_1.OPTION_HTTP_COMPRESSION);
|
|
596
598
|
commandHttp.option('--ca <ca>', texts_1.OPTION_TLS_CA);
|
|
599
|
+
commandHttp.option('--note <note>', texts_1.OPT_COMMAND_NOTE);
|
|
600
|
+
commandHttp.option('--agent-note <note>', texts_1.OPT_COMMAND_AGENT_NOTE);
|
|
597
601
|
commandHttp.option('--circuit-breaker <threshold>', texts_1.OPTION_HTTP_CIRCUIT_BREAKER);
|
|
598
602
|
return commandHttp;
|
|
599
603
|
};
|
|
@@ -609,6 +613,8 @@ const getBasicCommandTls = () => {
|
|
|
609
613
|
commandTls.option('-c, --cert <cert>', texts_1.OPTION_TLS_CERT);
|
|
610
614
|
commandTls.option('--ca <ca>', texts_1.OPTION_TLS_CA);
|
|
611
615
|
commandTls.option('-i, --terminate <at>', texts_1.OPTION_TLS_TERMINATE);
|
|
616
|
+
commandTls.option('--note <note>', texts_1.OPT_COMMAND_NOTE);
|
|
617
|
+
commandTls.option('--agent-note <note>', texts_1.OPT_COMMAND_AGENT_NOTE);
|
|
612
618
|
return commandTls;
|
|
613
619
|
};
|
|
614
620
|
exports.getBasicCommandTls = getBasicCommandTls;
|