@bussolabs/closeyourit-cli 0.0.16 → 0.0.18
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/README.md +81 -2
- package/dist/commands/agents/assign.d.ts +13 -0
- package/dist/commands/agents/assign.js +25 -0
- package/dist/commands/agents/create.d.ts +22 -0
- package/dist/commands/agents/create.js +58 -0
- package/dist/commands/agents/delete.d.ts +12 -0
- package/dist/commands/agents/delete.js +25 -0
- package/dist/commands/agents/list.d.ts +10 -0
- package/dist/commands/agents/list.js +34 -0
- package/dist/commands/agents/runs/list.d.ts +12 -0
- package/dist/commands/agents/runs/list.js +32 -0
- package/dist/commands/agents/runs/show.d.ts +10 -0
- package/dist/commands/agents/runs/show.js +21 -0
- package/dist/commands/agents/show.d.ts +9 -0
- package/dist/commands/agents/show.js +20 -0
- package/dist/commands/agents/update.d.ts +23 -0
- package/dist/commands/agents/update.js +59 -0
- package/dist/commands/alerts/notifications/delete.d.ts +12 -0
- package/dist/commands/alerts/notifications/delete.js +25 -0
- package/dist/commands/alerts/notifications/list.d.ts +9 -0
- package/dist/commands/alerts/notifications/list.js +29 -0
- package/dist/commands/alerts/notifications/read-all.d.ts +6 -0
- package/dist/commands/alerts/notifications/read-all.js +15 -0
- package/dist/commands/alerts/notifications/read.d.ts +9 -0
- package/dist/commands/alerts/notifications/read.js +22 -0
- package/dist/commands/alerts/preferences/show.d.ts +6 -0
- package/dist/commands/alerts/preferences/show.js +16 -0
- package/dist/commands/alerts/preferences/update.d.ts +20 -0
- package/dist/commands/alerts/preferences/update.js +63 -0
- package/dist/commands/analytics/goals/create.d.ts +13 -0
- package/dist/commands/analytics/goals/create.js +35 -0
- package/dist/commands/analytics/goals/delete.d.ts +13 -0
- package/dist/commands/analytics/goals/delete.js +27 -0
- package/dist/commands/analytics/goals/list.d.ts +9 -0
- package/dist/commands/analytics/goals/list.js +25 -0
- package/dist/commands/analytics/share.d.ts +10 -0
- package/dist/commands/analytics/share.js +30 -0
- package/dist/commands/analytics/show.d.ts +11 -0
- package/dist/commands/analytics/show.js +32 -0
- package/dist/commands/analytics/unshare.d.ts +10 -0
- package/dist/commands/analytics/unshare.js +24 -0
- package/dist/commands/cron-monitors/list.d.ts +11 -0
- package/dist/commands/cron-monitors/list.js +38 -0
- package/dist/commands/cron-monitors/show.d.ts +9 -0
- package/dist/commands/cron-monitors/show.js +20 -0
- package/dist/commands/groups/create.d.ts +1 -0
- package/dist/commands/groups/create.js +7 -0
- package/dist/commands/groups/update.d.ts +1 -0
- package/dist/commands/groups/update.js +8 -1
- package/dist/commands/ideas/archive.d.ts +12 -0
- package/dist/commands/ideas/archive.js +24 -0
- package/dist/commands/ideas/case-delete.d.ts +14 -0
- package/dist/commands/ideas/case-delete.js +30 -0
- package/dist/commands/ideas/case-update.d.ts +15 -0
- package/dist/commands/ideas/case-update.js +41 -0
- package/dist/commands/ideas/delete.d.ts +13 -0
- package/dist/commands/ideas/delete.js +27 -0
- package/dist/commands/ideas/unarchive.d.ts +12 -0
- package/dist/commands/ideas/unarchive.js +24 -0
- package/dist/commands/logs/link.d.ts +12 -0
- package/dist/commands/logs/link.js +33 -0
- package/dist/commands/logs/show.d.ts +9 -0
- package/dist/commands/logs/show.js +21 -0
- package/dist/commands/logs/unlink.d.ts +13 -0
- package/dist/commands/logs/unlink.js +26 -0
- package/dist/commands/members/remove.d.ts +12 -0
- package/dist/commands/members/remove.js +27 -0
- package/dist/commands/members/set-access.d.ts +4 -0
- package/dist/commands/members/set-access.js +38 -4
- package/dist/commands/members/update.d.ts +14 -0
- package/dist/commands/members/update.js +40 -0
- package/dist/commands/monitors/announcements/clear.d.ts +13 -0
- package/dist/commands/monitors/announcements/clear.js +27 -0
- package/dist/commands/monitors/announcements/set.d.ts +17 -0
- package/dist/commands/monitors/announcements/set.js +45 -0
- package/dist/commands/monitors/announcements/show.d.ts +12 -0
- package/dist/commands/monitors/announcements/show.js +24 -0
- package/dist/commands/monitors/create.d.ts +1 -0
- package/dist/commands/monitors/create.js +3 -0
- package/dist/commands/monitors/incidents/delete.d.ts +14 -0
- package/dist/commands/monitors/incidents/delete.js +28 -0
- package/dist/commands/monitors/incidents/group.d.ts +15 -0
- package/dist/commands/monitors/incidents/group.js +38 -0
- package/dist/commands/monitors/incidents/ungroup.d.ts +14 -0
- package/dist/commands/monitors/incidents/ungroup.js +31 -0
- package/dist/commands/monitors/incidents/update-add.d.ts +15 -0
- package/dist/commands/monitors/incidents/update-add.js +38 -0
- package/dist/commands/monitors/incidents/update-delete.d.ts +15 -0
- package/dist/commands/monitors/incidents/update-delete.js +31 -0
- package/dist/commands/monitors/publish.d.ts +12 -0
- package/dist/commands/monitors/publish.js +21 -0
- package/dist/commands/monitors/unpublish.d.ts +12 -0
- package/dist/commands/monitors/unpublish.js +21 -0
- package/dist/commands/monitors/update.d.ts +1 -0
- package/dist/commands/monitors/update.js +3 -0
- package/dist/commands/org/update.d.ts +2 -0
- package/dist/commands/org/update.js +10 -0
- package/dist/commands/platforms/create.d.ts +1 -0
- package/dist/commands/platforms/create.js +7 -0
- package/dist/commands/platforms/update.d.ts +1 -0
- package/dist/commands/platforms/update.js +8 -1
- package/dist/commands/projects/create.d.ts +2 -0
- package/dist/commands/projects/create.js +13 -0
- package/dist/commands/projects/link-server.d.ts +11 -0
- package/dist/commands/projects/link-server.js +33 -0
- package/dist/commands/projects/settings/show.d.ts +9 -0
- package/dist/commands/projects/settings/show.js +23 -0
- package/dist/commands/projects/settings/update.d.ts +14 -0
- package/dist/commands/projects/settings/update.js +50 -0
- package/dist/commands/projects/unlink-server.d.ts +13 -0
- package/dist/commands/projects/unlink-server.js +29 -0
- package/dist/commands/projects/update.d.ts +2 -0
- package/dist/commands/projects/update.js +14 -1
- package/dist/commands/releases/list.d.ts +10 -0
- package/dist/commands/releases/list.js +29 -0
- package/dist/commands/tickets/links.d.ts +12 -0
- package/dist/commands/tickets/links.js +33 -0
- package/dist/commands/tickets/reviewer.d.ts +13 -0
- package/dist/commands/tickets/reviewer.js +29 -0
- package/dist/commands/tickets/unlink.d.ts +14 -0
- package/dist/commands/tickets/unlink.js +29 -0
- package/dist/commands/tickets/unreviewer.d.ts +12 -0
- package/dist/commands/tickets/unreviewer.js +25 -0
- package/dist/commands/tickets/unwatch.d.ts +12 -0
- package/dist/commands/tickets/unwatch.js +25 -0
- package/dist/commands/tickets/watch.d.ts +12 -0
- package/dist/commands/tickets/watch.js +26 -0
- package/dist/commands/todos/complete.d.ts +10 -0
- package/dist/commands/todos/complete.js +23 -0
- package/dist/commands/todos/create.d.ts +10 -0
- package/dist/commands/todos/create.js +29 -0
- package/dist/commands/todos/delete.d.ts +12 -0
- package/dist/commands/todos/delete.js +25 -0
- package/dist/commands/todos/items/add.d.ts +14 -0
- package/dist/commands/todos/items/add.js +35 -0
- package/dist/commands/todos/items/delete.d.ts +13 -0
- package/dist/commands/todos/items/delete.js +26 -0
- package/dist/commands/todos/items/list.d.ts +12 -0
- package/dist/commands/todos/items/list.js +28 -0
- package/dist/commands/todos/items/update.d.ts +15 -0
- package/dist/commands/todos/items/update.js +38 -0
- package/dist/commands/todos/list.d.ts +9 -0
- package/dist/commands/todos/list.js +24 -0
- package/dist/commands/todos/reorder.d.ts +9 -0
- package/dist/commands/todos/reorder.js +19 -0
- package/dist/commands/todos/share.d.ts +12 -0
- package/dist/commands/todos/share.js +33 -0
- package/dist/commands/todos/shared-show.d.ts +9 -0
- package/dist/commands/todos/shared-show.js +20 -0
- package/dist/commands/todos/shared.d.ts +9 -0
- package/dist/commands/todos/shared.js +25 -0
- package/dist/commands/todos/shares.d.ts +9 -0
- package/dist/commands/todos/shares.js +26 -0
- package/dist/commands/todos/show.d.ts +9 -0
- package/dist/commands/todos/show.js +20 -0
- package/dist/commands/todos/uncomplete.d.ts +10 -0
- package/dist/commands/todos/uncomplete.js +23 -0
- package/dist/commands/todos/update.d.ts +13 -0
- package/dist/commands/todos/update.js +34 -0
- package/dist/commands/uptime-groups/create.d.ts +12 -0
- package/dist/commands/uptime-groups/create.js +35 -0
- package/dist/commands/uptime-groups/delete.d.ts +12 -0
- package/dist/commands/uptime-groups/delete.js +25 -0
- package/dist/commands/uptime-groups/list.d.ts +9 -0
- package/dist/commands/uptime-groups/list.js +24 -0
- package/dist/commands/uptime-groups/publish.d.ts +9 -0
- package/dist/commands/uptime-groups/publish.js +22 -0
- package/dist/commands/uptime-groups/show.d.ts +9 -0
- package/dist/commands/uptime-groups/show.js +20 -0
- package/dist/commands/uptime-groups/unpublish.d.ts +9 -0
- package/dist/commands/uptime-groups/unpublish.js +22 -0
- package/dist/commands/uptime-groups/update.d.ts +15 -0
- package/dist/commands/uptime-groups/update.js +37 -0
- package/oclif.manifest.json +6389 -2226
- package/opencli.json +3003 -83
- package/package.json +16 -1
|
@@ -19,6 +19,7 @@ class MonitorsCreate extends base_1.BaseCommand {
|
|
|
19
19
|
'timeout-seconds': core_1.Flags.integer({ description: 'Request timeout in seconds' }),
|
|
20
20
|
'expected-body-keyword': core_1.Flags.string({ description: 'Keyword expected in the response body (check fails without it; not with HEAD)' }),
|
|
21
21
|
'ssl-expiry-warn-days': core_1.Flags.integer({ description: 'Alert when the TLS certificate has at most N days left (empty = off)' }),
|
|
22
|
+
'group-id': core_1.Flags.string({ description: 'Uptime group id to attach the monitor to (org-level)' }),
|
|
22
23
|
};
|
|
23
24
|
async run() {
|
|
24
25
|
const { flags } = await this.parse(MonitorsCreate);
|
|
@@ -38,6 +39,8 @@ class MonitorsCreate extends base_1.BaseCommand {
|
|
|
38
39
|
body.expected_body_keyword = flags['expected-body-keyword'];
|
|
39
40
|
if (flags['ssl-expiry-warn-days'] !== undefined)
|
|
40
41
|
body.ssl_expiry_warn_days = flags['ssl-expiry-warn-days'];
|
|
42
|
+
if (flags['group-id'] !== undefined)
|
|
43
|
+
body.group_id = flags['group-id'];
|
|
41
44
|
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors`, body);
|
|
42
45
|
if (!this.jsonEnabled()) {
|
|
43
46
|
this.log('Monitor created:');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsDelete extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsDelete extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Delete an uptime incident (and its grouped windows; irreversible)';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors incidents delete <monitor-id> <incident-id> --project acme-api --confirm'];
|
|
8
|
+
static args = {
|
|
9
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
11
|
+
};
|
|
12
|
+
static flags = {
|
|
13
|
+
...base_1.projectFlag,
|
|
14
|
+
confirm: core_1.Flags.boolean({ description: 'Required: confirm the deletion' }),
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
const { args, flags } = await this.parse(MonitorsIncidentsDelete);
|
|
18
|
+
if (!flags.confirm) {
|
|
19
|
+
this.error('Refusing to delete without --confirm.', { exit: 2 });
|
|
20
|
+
}
|
|
21
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
22
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}`);
|
|
23
|
+
if (!this.jsonEnabled())
|
|
24
|
+
this.log(`Deleted incident ${args.incident}`);
|
|
25
|
+
return { deleted: args.incident };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = MonitorsIncidentsDelete;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsGroup extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
incident: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
phase: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
body: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsIncidentsGroup extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Unify incidents of a monitor and post the first narration step';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> monitors incidents group <monitor-id> --project acme-api --incident <id-a> --incident <id-b> --phase investigating --body "Looking into it"',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
};
|
|
14
|
+
static flags = {
|
|
15
|
+
...base_1.projectFlag,
|
|
16
|
+
incident: core_1.Flags.string({ description: 'Incident id to unify (repeatable)', multiple: true, required: true }),
|
|
17
|
+
phase: core_1.Flags.string({
|
|
18
|
+
description: 'Timeline phase of the first step',
|
|
19
|
+
options: ['detected', 'investigating', 'fixing', 'monitoring', 'resolved'],
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
body: core_1.Flags.string({ description: 'Text of the first narration step' }),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(MonitorsIncidentsGroup);
|
|
26
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
27
|
+
const body = { incident_ids: flags.incident, phase: flags.phase };
|
|
28
|
+
if (flags.body !== undefined)
|
|
29
|
+
body.body = flags.body;
|
|
30
|
+
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/group`, body);
|
|
31
|
+
if (!this.jsonEnabled()) {
|
|
32
|
+
this.log('Incidents grouped:');
|
|
33
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
34
|
+
}
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = MonitorsIncidentsGroup;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUngroup extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
keep: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsUngroup extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Dissolve an incident grouping (grouped windows become separate again)';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> monitors incidents ungroup <monitor-id> <incident-id> --project acme-api',
|
|
9
|
+
'<%= config.bin %> monitors incidents ungroup <monitor-id> <incident-id> -p acme-api --keep <window-id>',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
keep: core_1.Flags.string({ description: 'Id of the window that keeps the narration status' }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUngroup);
|
|
21
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
22
|
+
const body = {};
|
|
23
|
+
if (flags.keep !== undefined)
|
|
24
|
+
body.keep_incident_id = flags.keep;
|
|
25
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/group`, { body });
|
|
26
|
+
if (!this.jsonEnabled())
|
|
27
|
+
this.log(`Ungrouped incident ${args.incident}`);
|
|
28
|
+
return { ungrouped: args.incident };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = MonitorsIncidentsUngroup;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUpdateAdd extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
phase: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
body: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsIncidentsUpdateAdd extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Add a timeline step to a narrated incident';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> monitors incidents update-add <monitor-id> <incident-id> --project acme-api --phase monitoring --body "Recovering"',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
phase: core_1.Flags.string({
|
|
18
|
+
description: 'Timeline phase of the step',
|
|
19
|
+
options: ['detected', 'investigating', 'fixing', 'monitoring', 'resolved'],
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
body: core_1.Flags.string({ description: 'Text of the step' }),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUpdateAdd);
|
|
26
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
27
|
+
const body = { phase: flags.phase };
|
|
28
|
+
if (flags.body !== undefined)
|
|
29
|
+
body.body = flags.body;
|
|
30
|
+
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/updates`, body);
|
|
31
|
+
if (!this.jsonEnabled()) {
|
|
32
|
+
this.log('Incident update added:');
|
|
33
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
34
|
+
}
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = MonitorsIncidentsUpdateAdd;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUpdateDelete extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
update: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static flags: {
|
|
11
|
+
confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsUpdateDelete extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Delete a timeline step from a narrated incident (irreversible)';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> monitors incidents update-delete <monitor-id> <incident-id> <update-id> --project acme-api --confirm',
|
|
9
|
+
];
|
|
10
|
+
static args = {
|
|
11
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
12
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
13
|
+
update: core_1.Args.string({ description: 'Timeline step id', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
confirm: core_1.Flags.boolean({ description: 'Required: confirm the deletion' }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUpdateDelete);
|
|
21
|
+
if (!flags.confirm) {
|
|
22
|
+
this.error('Refusing to delete without --confirm.', { exit: 2 });
|
|
23
|
+
}
|
|
24
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
25
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/updates/${encodeURIComponent(args.update)}`);
|
|
26
|
+
if (!this.jsonEnabled())
|
|
27
|
+
this.log(`Deleted incident update ${args.update}`);
|
|
28
|
+
return { deleted: args.update };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = MonitorsIncidentsUpdateDelete;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class MonitorsPublish extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class MonitorsPublish extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Publish the public status page for a monitor (opt-in)';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors publish <monitor-id> --project acme-api'];
|
|
8
|
+
static args = {
|
|
9
|
+
id: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = { ...base_1.projectFlag };
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(MonitorsPublish);
|
|
14
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
15
|
+
const res = await this.api.put(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}/publication`);
|
|
16
|
+
if (!this.jsonEnabled())
|
|
17
|
+
this.log(`Published status page for monitor ${args.id}`);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MonitorsPublish;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class MonitorsUnpublish extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class MonitorsUnpublish extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Unpublish the public status page for a monitor';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors unpublish <monitor-id> --project acme-api'];
|
|
8
|
+
static args = {
|
|
9
|
+
id: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = { ...base_1.projectFlag };
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(MonitorsUnpublish);
|
|
14
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
15
|
+
const res = await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}/publication`);
|
|
16
|
+
if (!this.jsonEnabled())
|
|
17
|
+
this.log(`Unpublished status page for monitor ${args.id}`);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MonitorsUnpublish;
|
|
@@ -13,6 +13,7 @@ export default class MonitorsUpdate extends BaseCommand {
|
|
|
13
13
|
'timeout-seconds': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
14
|
'expected-body-keyword': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
15
|
'ssl-expiry-warn-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
'group-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
17
|
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
18
|
};
|
|
18
19
|
run(): Promise<unknown>;
|
|
@@ -21,6 +21,7 @@ class MonitorsUpdate extends base_1.BaseCommand {
|
|
|
21
21
|
'timeout-seconds': core_1.Flags.integer({ description: 'Request timeout in seconds' }),
|
|
22
22
|
'expected-body-keyword': core_1.Flags.string({ description: 'Keyword expected in the response body (check fails without it; not with HEAD)' }),
|
|
23
23
|
'ssl-expiry-warn-days': core_1.Flags.integer({ description: 'Alert when the TLS certificate has at most N days left (empty = off)' }),
|
|
24
|
+
'group-id': core_1.Flags.string({ description: 'Uptime group id to attach the monitor to (org-level)' }),
|
|
24
25
|
};
|
|
25
26
|
async run() {
|
|
26
27
|
const { args, flags } = await this.parse(MonitorsUpdate);
|
|
@@ -40,6 +41,8 @@ class MonitorsUpdate extends base_1.BaseCommand {
|
|
|
40
41
|
body.expected_body_keyword = flags['expected-body-keyword'];
|
|
41
42
|
if (flags['ssl-expiry-warn-days'] !== undefined)
|
|
42
43
|
body.ssl_expiry_warn_days = flags['ssl-expiry-warn-days'];
|
|
44
|
+
if (flags['group-id'] !== undefined)
|
|
45
|
+
body.group_id = flags['group-id'];
|
|
43
46
|
const res = await this.api.put(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}`, body);
|
|
44
47
|
if (!this.jsonEnabled()) {
|
|
45
48
|
this.log('Monitor updated:');
|
|
@@ -6,6 +6,8 @@ export default class OrgUpdate extends BaseCommand {
|
|
|
6
6
|
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
7
|
slug: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
8
|
'projects-view': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'logs-retention-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
'analytics-retention-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
11
|
};
|
|
10
12
|
run(): Promise<unknown>;
|
|
11
13
|
}
|
|
@@ -9,11 +9,16 @@ class OrgUpdate extends base_1.BaseCommand {
|
|
|
9
9
|
'<%= config.bin %> org update --name "Acme Inc"',
|
|
10
10
|
'<%= config.bin %> org update --slug acme-inc',
|
|
11
11
|
'<%= config.bin %> org update --projects-view table',
|
|
12
|
+
'<%= config.bin %> org update --logs-retention-days 30 --analytics-retention-days 365',
|
|
12
13
|
];
|
|
13
14
|
static flags = {
|
|
14
15
|
name: core_1.Flags.string({ description: 'New organization name' }),
|
|
15
16
|
slug: core_1.Flags.string({ description: 'New organization slug (lowercase, a-z 0-9 and hyphens)' }),
|
|
16
17
|
'projects-view': core_1.Flags.string({ description: 'Default projects list view', options: ['cards', 'table'] }),
|
|
18
|
+
'logs-retention-days': core_1.Flags.integer({ description: 'Org-level log retention in days (blank inherits the god default)' }),
|
|
19
|
+
'analytics-retention-days': core_1.Flags.integer({
|
|
20
|
+
description: 'Org-level analytics retention in days (blank inherits the god default)',
|
|
21
|
+
}),
|
|
17
22
|
};
|
|
18
23
|
async run() {
|
|
19
24
|
const { flags } = await this.parse(OrgUpdate);
|
|
@@ -24,6 +29,11 @@ class OrgUpdate extends base_1.BaseCommand {
|
|
|
24
29
|
body.slug = flags.slug;
|
|
25
30
|
if (flags['projects-view'] !== undefined)
|
|
26
31
|
body.default_projects_view = flags['projects-view'];
|
|
32
|
+
if (flags['logs-retention-days'] !== undefined)
|
|
33
|
+
body.logs_retention_days = flags['logs-retention-days'];
|
|
34
|
+
if (flags['analytics-retention-days'] !== undefined) {
|
|
35
|
+
body.analytics_retention_days = flags['analytics-retention-days'];
|
|
36
|
+
}
|
|
27
37
|
const res = await this.api.put('/cli/v1/organization', body);
|
|
28
38
|
if (!this.jsonEnabled()) {
|
|
29
39
|
this.log('Organization updated:');
|
|
@@ -10,6 +10,7 @@ export default class PlatformsCreate extends BaseCommand {
|
|
|
10
10
|
color: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
11
|
position: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
active: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
'supports-uptime': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
};
|
|
14
15
|
run(): Promise<unknown>;
|
|
15
16
|
}
|
|
@@ -11,12 +11,17 @@ class PlatformsCreate extends base_1.BaseCommand {
|
|
|
11
11
|
static examples = [
|
|
12
12
|
'<%= config.bin %> platforms create ios --label iOS',
|
|
13
13
|
'<%= config.bin %> platforms create android --label Android --color emerald --position 2',
|
|
14
|
+
'<%= config.bin %> platforms create web --label Web --supports-uptime',
|
|
14
15
|
];
|
|
15
16
|
static flags = {
|
|
16
17
|
label: core_1.Flags.string({ description: 'Human-readable label', required: true }),
|
|
17
18
|
color: core_1.Flags.string({ description: 'Color label', default: 'sky' }),
|
|
18
19
|
position: core_1.Flags.integer({ description: 'Sort position' }),
|
|
19
20
|
active: core_1.Flags.boolean({ allowNo: true, description: 'Whether the platform is active' }),
|
|
21
|
+
'supports-uptime': core_1.Flags.boolean({
|
|
22
|
+
allowNo: true,
|
|
23
|
+
description: 'Whether projects declaring this platform can enable uptime monitoring',
|
|
24
|
+
}),
|
|
20
25
|
};
|
|
21
26
|
async run() {
|
|
22
27
|
const { args, flags } = await this.parse(PlatformsCreate);
|
|
@@ -25,6 +30,8 @@ class PlatformsCreate extends base_1.BaseCommand {
|
|
|
25
30
|
body.position = flags.position;
|
|
26
31
|
if (flags.active !== undefined)
|
|
27
32
|
body.active = flags.active;
|
|
33
|
+
if (flags['supports-uptime'] !== undefined)
|
|
34
|
+
body.supports_uptime = flags['supports-uptime'];
|
|
28
35
|
const res = await this.api.post('/cli/v1/platforms', body);
|
|
29
36
|
if (!this.jsonEnabled()) {
|
|
30
37
|
this.log('Platform created:');
|
|
@@ -11,6 +11,7 @@ export default class PlatformsUpdate extends BaseCommand {
|
|
|
11
11
|
color: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
position: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
active: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
'supports-uptime': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
};
|
|
15
16
|
run(): Promise<unknown>;
|
|
16
17
|
}
|
|
@@ -7,11 +7,12 @@ class PlatformsUpdate extends base_1.BaseCommand {
|
|
|
7
7
|
static args = {
|
|
8
8
|
platform: core_1.Args.string({ description: 'Platform id (UUID) or code', required: true }),
|
|
9
9
|
};
|
|
10
|
-
static description = 'Update a platform (relabel, recolor, reorder, activate/deactivate)';
|
|
10
|
+
static description = 'Update a platform (relabel, recolor, reorder, activate/deactivate, toggle uptime support)';
|
|
11
11
|
static examples = [
|
|
12
12
|
'<%= config.bin %> platforms update ios --label "iOS / iPadOS"',
|
|
13
13
|
'<%= config.bin %> platforms update web --color indigo --position 1',
|
|
14
14
|
'<%= config.bin %> platforms update legacy --no-active',
|
|
15
|
+
'<%= config.bin %> platforms update web --supports-uptime',
|
|
15
16
|
];
|
|
16
17
|
static flags = {
|
|
17
18
|
code: core_1.Flags.string({ description: 'New code' }),
|
|
@@ -19,6 +20,10 @@ class PlatformsUpdate extends base_1.BaseCommand {
|
|
|
19
20
|
color: core_1.Flags.string({ description: 'Color label' }),
|
|
20
21
|
position: core_1.Flags.integer({ description: 'Sort position' }),
|
|
21
22
|
active: core_1.Flags.boolean({ allowNo: true, description: 'Whether the platform is active' }),
|
|
23
|
+
'supports-uptime': core_1.Flags.boolean({
|
|
24
|
+
allowNo: true,
|
|
25
|
+
description: 'Whether projects declaring this platform can enable uptime monitoring',
|
|
26
|
+
}),
|
|
22
27
|
};
|
|
23
28
|
async run() {
|
|
24
29
|
const { args, flags } = await this.parse(PlatformsUpdate);
|
|
@@ -33,6 +38,8 @@ class PlatformsUpdate extends base_1.BaseCommand {
|
|
|
33
38
|
body.position = flags.position;
|
|
34
39
|
if (flags.active !== undefined)
|
|
35
40
|
body.active = flags.active;
|
|
41
|
+
if (flags['supports-uptime'] !== undefined)
|
|
42
|
+
body.supports_uptime = flags['supports-uptime'];
|
|
36
43
|
// The backend resolves the path identifier by id-or-code, so pass it through directly.
|
|
37
44
|
const res = await this.api.put(`/cli/v1/platforms/${encodeURIComponent(args.platform)}`, body);
|
|
38
45
|
if (!this.jsonEnabled()) {
|
|
@@ -10,6 +10,8 @@ export default class ProjectsCreate extends BaseCommand {
|
|
|
10
10
|
description: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
11
|
group: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
key: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
'roadmap-enabled': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
'quick-bug-report-enabled': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
15
|
};
|
|
14
16
|
run(): Promise<unknown>;
|
|
15
17
|
}
|
|
@@ -12,6 +12,7 @@ class ProjectsCreate extends base_1.BaseCommand {
|
|
|
12
12
|
'<%= config.bin %> projects create driverone-rails --key DRRA',
|
|
13
13
|
'<%= config.bin %> projects create driverone-rails --group DriverOne --key DRRA',
|
|
14
14
|
'<%= config.bin %> projects create driverone-flutter -g <group-uuid> -k DRFL',
|
|
15
|
+
'<%= config.bin %> projects create acme-api -k ACME --roadmap-enabled --quick-bug-report-enabled',
|
|
15
16
|
];
|
|
16
17
|
static flags = {
|
|
17
18
|
color: core_1.Flags.string({ description: 'Color label' }),
|
|
@@ -22,6 +23,14 @@ class ProjectsCreate extends base_1.BaseCommand {
|
|
|
22
23
|
required: true,
|
|
23
24
|
description: 'Project key (uppercase A-Z0-9, max 4 chars, unique per org)',
|
|
24
25
|
}),
|
|
26
|
+
'roadmap-enabled': core_1.Flags.boolean({
|
|
27
|
+
allowNo: true,
|
|
28
|
+
description: 'Enable the roadmap (feature/improvement tickets + milestones) for this project',
|
|
29
|
+
}),
|
|
30
|
+
'quick-bug-report-enabled': core_1.Flags.boolean({
|
|
31
|
+
allowNo: true,
|
|
32
|
+
description: 'Enable the AI-assisted quick bug report on this project',
|
|
33
|
+
}),
|
|
25
34
|
};
|
|
26
35
|
async run() {
|
|
27
36
|
const { args, flags } = await this.parse(ProjectsCreate);
|
|
@@ -37,6 +46,10 @@ class ProjectsCreate extends base_1.BaseCommand {
|
|
|
37
46
|
else
|
|
38
47
|
body.group_name = flags.group;
|
|
39
48
|
}
|
|
49
|
+
if (flags['roadmap-enabled'] !== undefined)
|
|
50
|
+
body.roadmap_enabled = flags['roadmap-enabled'];
|
|
51
|
+
if (flags['quick-bug-report-enabled'] !== undefined)
|
|
52
|
+
body.quick_bug_report_enabled = flags['quick-bug-report-enabled'];
|
|
40
53
|
const res = await this.api.post('/cli/v1/projects', body);
|
|
41
54
|
if (!this.jsonEnabled()) {
|
|
42
55
|
this.log('Project created:');
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class ProjectsLinkServer extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
'host-id': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
'environment-id': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<unknown>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
const output_1 = require("../../lib/output");
|
|
6
|
+
class ProjectsLinkServer extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Link a server host to one of the project declared environments (uptime monitoring)';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> projects link-server --project LBRA --host-id <host-uuid> --environment-id <env-uuid>',
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
...base_1.projectFlag,
|
|
13
|
+
'host-id': core_1.Flags.string({ description: 'Server host id (UUID, org-scoped and active)', required: true }),
|
|
14
|
+
'environment-id': core_1.Flags.string({
|
|
15
|
+
description: 'Environment id (UUID) among those declared by the project',
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { flags } = await this.parse(ProjectsLinkServer);
|
|
21
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
22
|
+
const res = await this.api.post(`/cli/v1/projects/${projectId}/servers`, {
|
|
23
|
+
host_id: flags['host-id'],
|
|
24
|
+
environment_id: flags['environment-id'],
|
|
25
|
+
});
|
|
26
|
+
if (!this.jsonEnabled()) {
|
|
27
|
+
this.log('Server linked:');
|
|
28
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
29
|
+
}
|
|
30
|
+
return res;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.default = ProjectsLinkServer;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class ProjectsSettingsShow extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<unknown>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const base_1 = require("../../../base");
|
|
4
|
+
const output_1 = require("../../../lib/output");
|
|
5
|
+
class ProjectsSettingsShow extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Show a project settings (log/analytics retention + feature flags)';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> projects settings show --project legalbloom-rails',
|
|
9
|
+
'<%= config.bin %> projects settings show -p LBRA',
|
|
10
|
+
];
|
|
11
|
+
static flags = { ...base_1.projectFlag };
|
|
12
|
+
async run() {
|
|
13
|
+
const { flags } = await this.parse(ProjectsSettingsShow);
|
|
14
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
15
|
+
const res = await this.api.get(`/cli/v1/projects/${projectId}/settings`);
|
|
16
|
+
if (!this.jsonEnabled()) {
|
|
17
|
+
this.log('Project settings:');
|
|
18
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
19
|
+
}
|
|
20
|
+
return res;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = ProjectsSettingsShow;
|