@alertee/cli 0.3.1 → 0.7.0
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/dist/api.d.ts +296 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +44 -2
- package/dist/api.js.map +1 -1
- package/dist/commands/alert-groups/add-email-group.d.ts +9 -0
- package/dist/commands/alert-groups/add-email-group.d.ts.map +1 -0
- package/dist/commands/alert-groups/add-email-group.js +33 -0
- package/dist/commands/alert-groups/add-email-group.js.map +1 -0
- package/dist/commands/alert-groups/add-webhook.d.ts +8 -0
- package/dist/commands/alert-groups/add-webhook.d.ts.map +1 -0
- package/dist/commands/alert-groups/add-webhook.js +64 -0
- package/dist/commands/alert-groups/add-webhook.js.map +1 -0
- package/dist/commands/alert-groups/create.d.ts +11 -0
- package/dist/commands/alert-groups/create.d.ts.map +1 -0
- package/dist/commands/alert-groups/create.js +31 -0
- package/dist/commands/alert-groups/create.js.map +1 -0
- package/dist/commands/alert-groups/delete.d.ts +5 -0
- package/dist/commands/alert-groups/delete.d.ts.map +1 -0
- package/dist/commands/alert-groups/delete.js +35 -0
- package/dist/commands/alert-groups/delete.js.map +1 -0
- package/dist/commands/alert-groups/list.d.ts +5 -0
- package/dist/commands/alert-groups/list.d.ts.map +1 -0
- package/dist/commands/alert-groups/list.js +35 -0
- package/dist/commands/alert-groups/list.js.map +1 -0
- package/dist/commands/alert-groups/recipients.d.ts +5 -0
- package/dist/commands/alert-groups/recipients.d.ts.map +1 -0
- package/dist/commands/alert-groups/recipients.js +62 -0
- package/dist/commands/alert-groups/recipients.js.map +1 -0
- package/dist/commands/alert-groups/remove-recipient.d.ts +8 -0
- package/dist/commands/alert-groups/remove-recipient.d.ts.map +1 -0
- package/dist/commands/alert-groups/remove-recipient.js +33 -0
- package/dist/commands/alert-groups/remove-recipient.js.map +1 -0
- package/dist/commands/alert-groups/resolve.d.ts +6 -0
- package/dist/commands/alert-groups/resolve.d.ts.map +1 -0
- package/dist/commands/alert-groups/resolve.js +27 -0
- package/dist/commands/alert-groups/resolve.js.map +1 -0
- package/dist/commands/alert-groups/test.d.ts +3 -0
- package/dist/commands/alert-groups/test.d.ts.map +1 -0
- package/dist/commands/alert-groups/test.js +24 -0
- package/dist/commands/alert-groups/test.js.map +1 -0
- package/dist/commands/alert-groups/update.d.ts +12 -0
- package/dist/commands/alert-groups/update.d.ts.map +1 -0
- package/dist/commands/alert-groups/update.js +46 -0
- package/dist/commands/alert-groups/update.js.map +1 -0
- package/dist/commands/checks/create.d.ts +25 -1
- package/dist/commands/checks/create.d.ts.map +1 -1
- package/dist/commands/checks/create.js +141 -88
- package/dist/commands/checks/create.js.map +1 -1
- package/dist/commands/checks/update.d.ts +8 -2
- package/dist/commands/checks/update.d.ts.map +1 -1
- package/dist/commands/checks/update.js +101 -19
- package/dist/commands/checks/update.js.map +1 -1
- package/dist/commands/connections/create.d.ts +14 -0
- package/dist/commands/connections/create.d.ts.map +1 -0
- package/dist/commands/connections/create.js +52 -0
- package/dist/commands/connections/create.js.map +1 -0
- package/dist/commands/connections/delete.d.ts +5 -0
- package/dist/commands/connections/delete.d.ts.map +1 -0
- package/dist/commands/connections/delete.js +35 -0
- package/dist/commands/connections/delete.js.map +1 -0
- package/dist/commands/connections/resolve.d.ts +9 -0
- package/dist/commands/connections/resolve.d.ts.map +1 -0
- package/dist/commands/connections/resolve.js +30 -0
- package/dist/commands/connections/resolve.js.map +1 -0
- package/dist/commands/connections/test.d.ts +3 -0
- package/dist/commands/connections/test.d.ts.map +1 -0
- package/dist/commands/connections/test.js +28 -0
- package/dist/commands/connections/test.js.map +1 -0
- package/dist/commands/email-groups/add.d.ts +3 -0
- package/dist/commands/email-groups/add.d.ts.map +1 -0
- package/dist/commands/email-groups/add.js +23 -0
- package/dist/commands/email-groups/add.js.map +1 -0
- package/dist/commands/email-groups/create.d.ts +8 -0
- package/dist/commands/email-groups/create.d.ts.map +1 -0
- package/dist/commands/email-groups/create.js +28 -0
- package/dist/commands/email-groups/create.js.map +1 -0
- package/dist/commands/email-groups/delete.d.ts +5 -0
- package/dist/commands/email-groups/delete.d.ts.map +1 -0
- package/dist/commands/email-groups/delete.js +35 -0
- package/dist/commands/email-groups/delete.js.map +1 -0
- package/dist/commands/email-groups/list.d.ts +5 -0
- package/dist/commands/email-groups/list.d.ts.map +1 -0
- package/dist/commands/email-groups/list.js +36 -0
- package/dist/commands/email-groups/list.js.map +1 -0
- package/dist/commands/email-groups/members.d.ts +5 -0
- package/dist/commands/email-groups/members.d.ts.map +1 -0
- package/dist/commands/email-groups/members.js +42 -0
- package/dist/commands/email-groups/members.js.map +1 -0
- package/dist/commands/email-groups/remove.d.ts +3 -0
- package/dist/commands/email-groups/remove.d.ts.map +1 -0
- package/dist/commands/email-groups/remove.js +19 -0
- package/dist/commands/email-groups/remove.js.map +1 -0
- package/dist/commands/email-groups/resolve.d.ts +6 -0
- package/dist/commands/email-groups/resolve.d.ts.map +1 -0
- package/dist/commands/email-groups/resolve.js +27 -0
- package/dist/commands/email-groups/resolve.js.map +1 -0
- package/dist/commands/inbox/ack.d.ts +5 -0
- package/dist/commands/inbox/ack.d.ts.map +1 -0
- package/dist/commands/inbox/ack.js +17 -0
- package/dist/commands/inbox/ack.js.map +1 -0
- package/dist/commands/inbox/digest.d.ts +5 -0
- package/dist/commands/inbox/digest.d.ts.map +1 -0
- package/dist/commands/inbox/digest.js +30 -0
- package/dist/commands/inbox/digest.js.map +1 -0
- package/dist/commands/inbox/get.d.ts +5 -0
- package/dist/commands/inbox/get.d.ts.map +1 -0
- package/dist/commands/inbox/get.js +45 -0
- package/dist/commands/inbox/get.js.map +1 -0
- package/dist/commands/inbox/list.d.ts +9 -0
- package/dist/commands/inbox/list.d.ts.map +1 -0
- package/dist/commands/inbox/list.js +47 -0
- package/dist/commands/inbox/list.js.map +1 -0
- package/dist/commands/inbox/resolve.d.ts +7 -0
- package/dist/commands/inbox/resolve.d.ts.map +1 -0
- package/dist/commands/inbox/resolve.js +17 -0
- package/dist/commands/inbox/resolve.js.map +1 -0
- package/dist/commands/org/create.d.ts +12 -0
- package/dist/commands/org/create.d.ts.map +1 -0
- package/dist/commands/org/create.js +33 -0
- package/dist/commands/org/create.js.map +1 -0
- package/dist/commands/org/list.d.ts +5 -0
- package/dist/commands/org/list.d.ts.map +1 -0
- package/dist/commands/org/list.js +35 -0
- package/dist/commands/org/list.js.map +1 -0
- package/dist/commands/receivers/create.d.ts +15 -0
- package/dist/commands/receivers/create.d.ts.map +1 -0
- package/dist/commands/receivers/create.js +45 -0
- package/dist/commands/receivers/create.js.map +1 -0
- package/dist/commands/receivers/delete.d.ts +5 -0
- package/dist/commands/receivers/delete.d.ts.map +1 -0
- package/dist/commands/receivers/delete.js +35 -0
- package/dist/commands/receivers/delete.js.map +1 -0
- package/dist/commands/receivers/list.d.ts +5 -0
- package/dist/commands/receivers/list.d.ts.map +1 -0
- package/dist/commands/receivers/list.js +36 -0
- package/dist/commands/receivers/list.js.map +1 -0
- package/dist/commands/receivers/resolve.d.ts +6 -0
- package/dist/commands/receivers/resolve.d.ts.map +1 -0
- package/dist/commands/receivers/resolve.js +27 -0
- package/dist/commands/receivers/resolve.js.map +1 -0
- package/dist/index.js +235 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +567 -5
- package/dist/mcp.js.map +1 -1
- package/dist/prompts.d.ts +15 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +25 -0
- package/dist/prompts.js.map +1 -0
- package/dist/uuid.d.ts +13 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +13 -0
- package/dist/uuid.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { isInteractive } from '../../prompts.js';
|
|
5
|
+
import { resolveAlertGroupId } from './resolve.js';
|
|
6
|
+
/** Delete an alert group (by name or ID). Prompts for confirmation unless --yes. */
|
|
7
|
+
export async function deleteAlertGroup(nameOrId, opts = {}) {
|
|
8
|
+
const config = requireConfig();
|
|
9
|
+
requireOrg(config);
|
|
10
|
+
const client = createClient(config);
|
|
11
|
+
const id = await resolveAlertGroupId(client, nameOrId);
|
|
12
|
+
if (!opts.yes) {
|
|
13
|
+
if (!isInteractive()) {
|
|
14
|
+
console.error('Refusing to delete without confirmation. Pass --yes.');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const ok = await confirm({
|
|
18
|
+
message: `Delete alert group "${nameOrId}"? Checks using it fall back to the default group.`,
|
|
19
|
+
default: false,
|
|
20
|
+
});
|
|
21
|
+
if (!ok) {
|
|
22
|
+
console.log('Aborted.');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
await client.deleteAlertGroup(id);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error('Failed to delete alert group:', err.message);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
console.log(`Deleted alert group ${id}.`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,uBAAuB,QAAQ,oDAAoD;YAC5F,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/list.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { printJson, resolveFormat } from '../../output.js';
|
|
4
|
+
/** List alert groups in the linked organization (the default one is marked *). */
|
|
5
|
+
export async function listAlertGroups(opts = {}) {
|
|
6
|
+
const format = resolveFormat(opts.format);
|
|
7
|
+
const config = requireConfig();
|
|
8
|
+
requireOrg(config);
|
|
9
|
+
const client = createClient(config);
|
|
10
|
+
let groups;
|
|
11
|
+
try {
|
|
12
|
+
groups = (await client.listAlertGroups()).alert_groups;
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error('Failed to list alert groups:', err.message);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
if (format === 'json') {
|
|
19
|
+
printJson(groups);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (groups.length === 0) {
|
|
23
|
+
console.log('No alert groups found.');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const nameWidth = Math.max(4, ...groups.map((g) => g.Name.length));
|
|
27
|
+
const header = ` ${'NAME'.padEnd(nameWidth)} ID`;
|
|
28
|
+
console.log(header);
|
|
29
|
+
console.log('─'.repeat(header.length));
|
|
30
|
+
for (const g of groups) {
|
|
31
|
+
const marker = g.IsDefault?.Bool ? '*' : ' ';
|
|
32
|
+
console.log(`${marker} ${g.Name.padEnd(nameWidth)} ${g.ID}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B,EAAE;IAClE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,MAA0E,CAAA;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,CAAC,CAAA;QACjB,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/recipients.ts"],"names":[],"mappings":"AAMA,wDAAwD;AACxD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { printJson, resolveFormat } from '../../output.js';
|
|
4
|
+
import { uuidValue } from '../../uuid.js';
|
|
5
|
+
import { resolveAlertGroupId } from './resolve.js';
|
|
6
|
+
/** List the recipients (channels) in an alert group. */
|
|
7
|
+
export async function listRecipients(nameOrId, opts = {}) {
|
|
8
|
+
const format = resolveFormat(opts.format);
|
|
9
|
+
const config = requireConfig();
|
|
10
|
+
requireOrg(config);
|
|
11
|
+
const client = createClient(config);
|
|
12
|
+
const groupId = await resolveAlertGroupId(client, nameOrId);
|
|
13
|
+
let channels;
|
|
14
|
+
try {
|
|
15
|
+
channels = (await client.listAlertChannels(groupId)).channels;
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
console.error('Failed to list recipients:', err.message);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
if (format === 'json') {
|
|
22
|
+
printJson(channels);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (channels.length === 0) {
|
|
26
|
+
console.log('No recipients. Add one: alertee alert-groups add-webhook <group> --url …');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Resolve email-group ids to names for a friendlier summary (best-effort).
|
|
30
|
+
const emailGroupNames = new Map();
|
|
31
|
+
if (channels.some((c) => c.channel_type === 'email_group')) {
|
|
32
|
+
try {
|
|
33
|
+
for (const g of (await client.listEmailGroups()).groups)
|
|
34
|
+
emailGroupNames.set(g.id, g.name);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// non-fatal — fall back to showing the id
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const header = `TYPE ENABLED SUMMARY${' '.repeat(33)}ID`;
|
|
41
|
+
console.log(header);
|
|
42
|
+
console.log('─'.repeat(header.length));
|
|
43
|
+
for (const c of channels) {
|
|
44
|
+
const summary = summarize(c, emailGroupNames);
|
|
45
|
+
console.log(`${c.channel_type.padEnd(12)} ${(c.enabled ? 'yes' : 'no').padEnd(7)} ${summary.padEnd(38)} ${c.id}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function summarize(c, emailGroupNames) {
|
|
49
|
+
if (c.channel_type === 'email_group') {
|
|
50
|
+
const id = uuidValue(c.email_group_id);
|
|
51
|
+
return (id ? emailGroupNames.get(id) ?? id : undefined) ?? '—';
|
|
52
|
+
}
|
|
53
|
+
const config = (c.config ?? {});
|
|
54
|
+
if (c.channel_type === 'webhook')
|
|
55
|
+
return String(config.url ?? '—');
|
|
56
|
+
if (c.channel_type === 'slack')
|
|
57
|
+
return String(config.channel ?? '—');
|
|
58
|
+
if (c.channel_type === 'email')
|
|
59
|
+
return String(config.address ?? config.email ?? '—');
|
|
60
|
+
return '—';
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=recipients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/recipients.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remove a recipient (channel) from an alert group by its channel ID — get IDs
|
|
3
|
+
* from `alertee alert-groups recipients <group>`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function removeRecipient(channelId: string, opts?: {
|
|
6
|
+
yes?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=remove-recipient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-recipient.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/remove-recipient.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { isInteractive } from '../../prompts.js';
|
|
5
|
+
/**
|
|
6
|
+
* Remove a recipient (channel) from an alert group by its channel ID — get IDs
|
|
7
|
+
* from `alertee alert-groups recipients <group>`.
|
|
8
|
+
*/
|
|
9
|
+
export async function removeRecipient(channelId, opts = {}) {
|
|
10
|
+
const config = requireConfig();
|
|
11
|
+
requireOrg(config);
|
|
12
|
+
const client = createClient(config);
|
|
13
|
+
if (!opts.yes) {
|
|
14
|
+
if (!isInteractive()) {
|
|
15
|
+
console.error('Refusing to remove without confirmation. Pass --yes.');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const ok = await confirm({ message: `Remove recipient ${channelId}?`, default: false });
|
|
19
|
+
if (!ok) {
|
|
20
|
+
console.log('Aborted.');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
await client.deleteAlertChannel(channelId);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error('Failed to remove recipient:', err.message);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
console.log(`Removed recipient ${channelId}.`);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=remove-recipient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-recipient.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/remove-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,OAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACvF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { createClient } from '../../api.js';
|
|
2
|
+
type Client = ReturnType<typeof createClient>;
|
|
3
|
+
/** Resolve an alert group argument (UUID or case-insensitive name) to its ID. */
|
|
4
|
+
export declare function resolveAlertGroupId(client: Client, nameOrId: string): Promise<string>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAK7C,iFAAiF;AACjF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2
|
+
/** Resolve an alert group argument (UUID or case-insensitive name) to its ID. */
|
|
3
|
+
export async function resolveAlertGroupId(client, nameOrId) {
|
|
4
|
+
if (UUID_RE.test(nameOrId.trim())) {
|
|
5
|
+
return nameOrId.trim();
|
|
6
|
+
}
|
|
7
|
+
let groups;
|
|
8
|
+
try {
|
|
9
|
+
groups = (await client.listAlertGroups()).alert_groups;
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
console.error('Failed to list alert groups:', err.message);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const needle = nameOrId.trim().toLowerCase();
|
|
16
|
+
const matches = groups.filter((g) => g.Name.toLowerCase() === needle);
|
|
17
|
+
if (matches.length === 0) {
|
|
18
|
+
console.error(`No alert group named "${nameOrId}". Run \`alertee alert-groups list\`.`);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
if (matches.length > 1) {
|
|
22
|
+
console.error(`"${nameOrId}" matches ${matches.length} alert groups; pass the ID instead.`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
return matches[0].ID;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/resolve.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GACX,iEAAiE,CAAA;AAEnE,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,QAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,IAAI,MAA0E,CAAA;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAA;IAErE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,uCAAuC,CAAC,CAAA;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,aAAa,OAAO,CAAC,MAAM,qCAAqC,CAAC,CAAA;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/test.ts"],"names":[],"mappings":"AAIA,4EAA4E;AAC5E,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { resolveAlertGroupId } from './resolve.js';
|
|
4
|
+
/** Send a test alert through every recipient in a group (by name or ID). */
|
|
5
|
+
export async function testAlertGroup(nameOrId) {
|
|
6
|
+
const config = requireConfig();
|
|
7
|
+
requireOrg(config);
|
|
8
|
+
const client = createClient(config);
|
|
9
|
+
const id = await resolveAlertGroupId(client, nameOrId);
|
|
10
|
+
let res;
|
|
11
|
+
try {
|
|
12
|
+
res = await client.sendTestAlert(id, { alert_group_id: id });
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error('Failed to send test alert:', err.message);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
if (!res.success) {
|
|
19
|
+
console.error(`✗ ${res.message || 'Test alert failed.'}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
console.log(`✓ ${res.message || 'Test alert sent.'}`);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,GAAqD,CAAA;IACzD,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,kBAAkB,EAAE,CAAC,CAAA;AACvD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UpdateAlertGroupOptions {
|
|
2
|
+
name?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
default?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Rename / re-describe an alert group, or set it as the default. The PUT
|
|
8
|
+
* endpoint replaces all fields, so we read the current group first and apply
|
|
9
|
+
* only the flags you pass.
|
|
10
|
+
*/
|
|
11
|
+
export declare function updateAlertGroup(nameOrId: string, opts: UpdateAlertGroupOptions): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/update.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAKD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
4
|
+
/**
|
|
5
|
+
* Rename / re-describe an alert group, or set it as the default. The PUT
|
|
6
|
+
* endpoint replaces all fields, so we read the current group first and apply
|
|
7
|
+
* only the flags you pass.
|
|
8
|
+
*/
|
|
9
|
+
export async function updateAlertGroup(nameOrId, opts) {
|
|
10
|
+
if (opts.name === undefined && opts.description === undefined && opts.default === undefined) {
|
|
11
|
+
console.error('Nothing to update. Pass --name, --description, or --default.');
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const config = requireConfig();
|
|
15
|
+
requireOrg(config);
|
|
16
|
+
const client = createClient(config);
|
|
17
|
+
let groups;
|
|
18
|
+
try {
|
|
19
|
+
groups = (await client.listAlertGroups()).alert_groups;
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
console.error('Failed to list alert groups:', err.message);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const needle = nameOrId.trim().toLowerCase();
|
|
26
|
+
const current = UUID_RE.test(nameOrId.trim())
|
|
27
|
+
? groups.find((g) => g.ID === nameOrId.trim())
|
|
28
|
+
: groups.find((g) => g.Name.toLowerCase() === needle);
|
|
29
|
+
if (!current) {
|
|
30
|
+
console.error(`No alert group "${nameOrId}". Run \`alertee alert-groups list\`.`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
await client.updateAlertGroup(current.ID, {
|
|
35
|
+
name: opts.name ?? current.Name,
|
|
36
|
+
description: opts.description ?? current.Description?.String ?? '',
|
|
37
|
+
is_default: opts.default ?? current.IsDefault?.Bool ?? false,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error('Failed to update alert group:', err.message);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
console.log(`Updated alert group ${current.ID}.`);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAQ3D,MAAM,OAAO,GACX,iEAAiE,CAAA;AAEnE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,IAA6B;IAE7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5F,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAA;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,MAA0E,CAAA;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAA;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,uCAAuC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,KAAK;SAC7D,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface CreateCheckOptions {
|
|
2
|
+
name?: string;
|
|
3
|
+
/** Connection name or ID. */
|
|
4
|
+
connection?: string;
|
|
5
|
+
query?: string;
|
|
6
|
+
/** Force a grid (multi-dimensional) check. */
|
|
7
|
+
grid?: boolean;
|
|
8
|
+
evaluationType?: string;
|
|
9
|
+
/** Comparison for single-value / per-cell conditions. */
|
|
10
|
+
condition?: string;
|
|
11
|
+
threshold?: number;
|
|
12
|
+
severity?: string;
|
|
13
|
+
labelQuery?: string;
|
|
14
|
+
interval?: string;
|
|
15
|
+
alertLevel?: string;
|
|
16
|
+
/** Route this check's alerts to a specific alert group (name or ID). */
|
|
17
|
+
alertGroup?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a check, psql-style: pass everything as flags for non-interactive use
|
|
21
|
+
* (CI, or Claude driving the CLI), or omit flags to be prompted for each field
|
|
22
|
+
* at a terminal. The check type is single-value unless --grid or
|
|
23
|
+
* --evaluation-type is given.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createCheck(opts?: CreateCheckOptions): Promise<void>;
|
|
2
26
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D9E"}
|