@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
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { confirm, input, number, select } from '@inquirer/prompts';
|
|
2
2
|
import { createClient } from '../../api.js';
|
|
3
|
-
import { requireConfig,
|
|
3
|
+
import { requireConfig, requireOrg, resolveWebUrl } from '../../config.js';
|
|
4
4
|
import { INTERVAL_CHOICES } from '../../intervals.js';
|
|
5
|
+
import { isInteractive, requireValue } from '../../prompts.js';
|
|
6
|
+
import { resolveAlertGroupId } from '../alert-groups/resolve.js';
|
|
7
|
+
import { resolveConnectionId } from '../connections/resolve.js';
|
|
5
8
|
const CELL_COMPARISONS = [
|
|
6
9
|
{ name: 'Greater than', value: 'greater_than' },
|
|
7
10
|
{ name: 'Less than', value: 'less_than' },
|
|
@@ -10,32 +13,69 @@ const CELL_COMPARISONS = [
|
|
|
10
13
|
{ name: 'Equal to', value: 'equals' },
|
|
11
14
|
{ name: 'Not equal to', value: 'not_equals' },
|
|
12
15
|
];
|
|
13
|
-
|
|
16
|
+
const VALID_COMPARISONS = CELL_COMPARISONS.map((c) => c.value);
|
|
17
|
+
const EVALUATION_TYPES = ['all_cells', 'any_cell', 'dimension_missing', 'dimension_added'];
|
|
18
|
+
const VALID_INTERVALS = INTERVAL_CHOICES.map((c) => c.value);
|
|
19
|
+
const VALID_SEVERITIES = ['info', 'warning', 'critical'];
|
|
20
|
+
/**
|
|
21
|
+
* Create a check, psql-style: pass everything as flags for non-interactive use
|
|
22
|
+
* (CI, or Claude driving the CLI), or omit flags to be prompted for each field
|
|
23
|
+
* at a terminal. The check type is single-value unless --grid or
|
|
24
|
+
* --evaluation-type is given.
|
|
25
|
+
*/
|
|
26
|
+
export async function createCheck(opts = {}) {
|
|
14
27
|
const config = requireConfig();
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
requireOrg(config);
|
|
29
|
+
const client = createClient(config);
|
|
30
|
+
const isGrid = await resolveMode(opts);
|
|
31
|
+
const name = await requireValue(opts.name, () => input({ message: 'Check name:', validate: (v) => v.trim().length > 0 || 'Required' }), 'Check name required. Pass --name.');
|
|
32
|
+
const connectionId = await resolveConnection(client, opts.connection);
|
|
33
|
+
const query = await requireValue(opts.query, () => input({
|
|
34
|
+
message: isGrid
|
|
35
|
+
? 'SQL query (must return `name` and `value` columns, one row per dimension):'
|
|
36
|
+
: 'SQL query (must return a single numeric value):',
|
|
37
|
+
validate: (v) => v.trim().length > 0 || 'Query is required',
|
|
38
|
+
}), 'SQL query required. Pass --query.');
|
|
39
|
+
const { condition, labelQuery } = isGrid
|
|
40
|
+
? await buildGridCondition(opts)
|
|
41
|
+
: { condition: await buildSingleCondition(opts), labelQuery: undefined };
|
|
42
|
+
const interval = await requireValue(opts.interval, () => select({ message: 'Check interval:', choices: INTERVAL_CHOICES }), 'Interval required. Pass --interval (e.g. five_minutes).');
|
|
43
|
+
if (!VALID_INTERVALS.includes(interval)) {
|
|
44
|
+
console.error(`Invalid --interval "${interval}". One of: ${VALID_INTERVALS.join(', ')}.`);
|
|
17
45
|
process.exit(1);
|
|
18
46
|
}
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
47
|
+
const alertGroupId = opts.alertGroup
|
|
48
|
+
? await resolveAlertGroupId(client, opts.alertGroup)
|
|
49
|
+
: undefined;
|
|
22
50
|
try {
|
|
23
|
-
const resp = await client.
|
|
24
|
-
|
|
51
|
+
const resp = await client.createCheck({
|
|
52
|
+
name,
|
|
53
|
+
connection_id: connectionId,
|
|
54
|
+
query,
|
|
55
|
+
condition,
|
|
56
|
+
interval,
|
|
57
|
+
alert_level: opts.alertLevel,
|
|
58
|
+
alert_group_id: alertGroupId,
|
|
59
|
+
label_query: labelQuery,
|
|
60
|
+
});
|
|
61
|
+
console.log(`\nCheck created: ${resp.check.ID}`);
|
|
62
|
+
console.log(`View at: ${resolveWebUrl()}/checks/${resp.check.ID}`);
|
|
25
63
|
}
|
|
26
64
|
catch (err) {
|
|
27
|
-
console.error('Failed to
|
|
65
|
+
console.error('Failed to create check:', err.message);
|
|
28
66
|
process.exit(1);
|
|
29
67
|
}
|
|
30
|
-
|
|
31
|
-
|
|
68
|
+
}
|
|
69
|
+
/** Decide single vs grid from flags, prompting only when ambiguous + interactive. */
|
|
70
|
+
async function resolveMode(opts) {
|
|
71
|
+
if (opts.grid || opts.evaluationType)
|
|
72
|
+
return true;
|
|
73
|
+
if (opts.condition || opts.threshold !== undefined)
|
|
74
|
+
return false;
|
|
75
|
+
if (!isInteractive()) {
|
|
76
|
+
console.error('Specify the check type: --condition + --threshold (single-value), or --grid / --evaluation-type (grid).');
|
|
32
77
|
process.exit(1);
|
|
33
78
|
}
|
|
34
|
-
const name = await input({ message: 'Check name:' });
|
|
35
|
-
const connectionId = await select({
|
|
36
|
-
message: 'Database connection:',
|
|
37
|
-
choices: connections.map((c) => ({ name: `${c.name} (${c.type})`, value: c.id })),
|
|
38
|
-
});
|
|
39
79
|
const mode = await select({
|
|
40
80
|
message: 'Evaluation:',
|
|
41
81
|
choices: [
|
|
@@ -43,51 +83,86 @@ export async function createCheck() {
|
|
|
43
83
|
{ name: 'Multi-dimensional / grid (query returns name + value rows)', value: 'grid' },
|
|
44
84
|
],
|
|
45
85
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
86
|
+
return mode === 'grid';
|
|
87
|
+
}
|
|
88
|
+
async function resolveConnection(client, connection) {
|
|
89
|
+
if (connection)
|
|
90
|
+
return resolveConnectionId(client, connection);
|
|
91
|
+
if (!isInteractive()) {
|
|
92
|
+
console.error('Connection required. Pass --connection <name|id> (see: alertee connections list).');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
const connections = (await client.listConnections()).connections;
|
|
96
|
+
if (connections.length === 0) {
|
|
97
|
+
console.error('No database connections found. Create one: alertee connections create');
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
return select({
|
|
101
|
+
message: 'Database connection:',
|
|
102
|
+
choices: connections.map((c) => ({ name: `${c.name} (${c.type})`, value: c.id })),
|
|
51
103
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
104
|
+
}
|
|
105
|
+
async function buildSingleCondition(opts) {
|
|
106
|
+
const comparison = await requireValue(opts.condition, () => select({
|
|
107
|
+
message: 'Condition type:',
|
|
108
|
+
choices: CELL_COMPARISONS,
|
|
109
|
+
}), 'Condition required. Pass --condition (e.g. less_than).');
|
|
110
|
+
if (!VALID_COMPARISONS.includes(comparison)) {
|
|
111
|
+
console.error(`Invalid --condition "${comparison}". One of: ${VALID_COMPARISONS.join(', ')}.`);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const threshold = await requireThreshold(opts);
|
|
115
|
+
return { type: comparison, value: String(threshold) };
|
|
116
|
+
}
|
|
117
|
+
async function buildGridCondition(opts) {
|
|
118
|
+
const evaluationType = await requireValue(opts.evaluationType, () => select({
|
|
119
|
+
message: 'Grid evaluation type:',
|
|
120
|
+
choices: [
|
|
121
|
+
{ name: 'Every cell must satisfy a condition (alert if any fails)', value: 'all_cells' },
|
|
122
|
+
{ name: 'At least one cell must satisfy a condition (alert if none do)', value: 'any_cell' },
|
|
123
|
+
{ name: 'A dimension goes missing', value: 'dimension_missing' },
|
|
124
|
+
{ name: 'A new dimension appears', value: 'dimension_added' },
|
|
125
|
+
],
|
|
126
|
+
}), 'Grid evaluation type required. Pass --evaluation-type (e.g. any_cell).');
|
|
127
|
+
if (!EVALUATION_TYPES.includes(evaluationType)) {
|
|
128
|
+
console.error(`Invalid --evaluation-type "${evaluationType}". One of: ${EVALUATION_TYPES.join(', ')}.`);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
const condition = {
|
|
132
|
+
evaluation_type: evaluationType,
|
|
133
|
+
};
|
|
134
|
+
if (evaluationType === 'any_cell' || evaluationType === 'all_cells') {
|
|
135
|
+
const comparison = await requireValue(opts.condition, () => select({
|
|
136
|
+
message: "Each cell's value should be (healthy state; alert on cells that don't match):",
|
|
137
|
+
choices: CELL_COMPARISONS,
|
|
138
|
+
}), 'Per-cell condition required. Pass --condition (e.g. greater_or_equal).');
|
|
139
|
+
if (!VALID_COMPARISONS.includes(comparison)) {
|
|
140
|
+
console.error(`Invalid --condition "${comparison}". One of: ${VALID_COMPARISONS.join(', ')}.`);
|
|
141
|
+
process.exit(1);
|
|
82
142
|
}
|
|
83
|
-
condition.
|
|
143
|
+
condition.type = comparison;
|
|
144
|
+
condition.value = String(await requireThreshold(opts));
|
|
145
|
+
}
|
|
146
|
+
// Severity defaults to the backend default (warning) when omitted non-interactively.
|
|
147
|
+
if (opts.severity) {
|
|
148
|
+
if (!VALID_SEVERITIES.includes(opts.severity)) {
|
|
149
|
+
console.error(`Invalid --severity "${opts.severity}". One of: ${VALID_SEVERITIES.join(', ')}.`);
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
condition.severity = opts.severity;
|
|
153
|
+
}
|
|
154
|
+
else if (isInteractive()) {
|
|
155
|
+
condition.severity = (await select({
|
|
84
156
|
message: 'Cell severity when matched:',
|
|
85
157
|
choices: [
|
|
86
158
|
{ name: 'Warning', value: 'warning' },
|
|
87
159
|
{ name: 'Critical', value: 'critical' },
|
|
88
160
|
{ name: 'Info', value: 'info' },
|
|
89
161
|
],
|
|
90
|
-
});
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
let labelQuery = opts.labelQuery;
|
|
165
|
+
if (!labelQuery && isInteractive()) {
|
|
91
166
|
const wantsLabels = await confirm({
|
|
92
167
|
message: 'Add a label query (map dimension keys to display names)?',
|
|
93
168
|
default: false,
|
|
@@ -99,41 +174,19 @@ export async function createCheck() {
|
|
|
99
174
|
});
|
|
100
175
|
}
|
|
101
176
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
{ name: 'Not equal to', value: 'not_equals' },
|
|
110
|
-
],
|
|
111
|
-
});
|
|
112
|
-
const threshold = await number({
|
|
113
|
-
message: 'Threshold value:',
|
|
114
|
-
validate: (v) => v !== undefined || 'Required',
|
|
115
|
-
});
|
|
116
|
-
condition = { type: conditionType, value: String(threshold) };
|
|
117
|
-
}
|
|
118
|
-
const interval = await select({
|
|
119
|
-
message: 'Check interval:',
|
|
120
|
-
choices: INTERVAL_CHOICES,
|
|
121
|
-
});
|
|
122
|
-
try {
|
|
123
|
-
const resp = await client.createCheck({
|
|
124
|
-
name,
|
|
125
|
-
connection_id: connectionId,
|
|
126
|
-
query,
|
|
127
|
-
condition,
|
|
128
|
-
interval,
|
|
129
|
-
label_query: labelQuery,
|
|
130
|
-
});
|
|
131
|
-
console.log(`\nCheck created: ${resp.check.ID}`);
|
|
132
|
-
console.log(`View at: ${resolveWebUrl()}/checks/${resp.check.ID}`);
|
|
133
|
-
}
|
|
134
|
-
catch (err) {
|
|
135
|
-
console.error('Failed to create check:', err.message);
|
|
177
|
+
return { condition, labelQuery };
|
|
178
|
+
}
|
|
179
|
+
async function requireThreshold(opts) {
|
|
180
|
+
if (opts.threshold !== undefined)
|
|
181
|
+
return opts.threshold;
|
|
182
|
+
if (!isInteractive()) {
|
|
183
|
+
console.error('Threshold required. Pass --threshold <number>.');
|
|
136
184
|
process.exit(1);
|
|
137
185
|
}
|
|
186
|
+
const value = await number({
|
|
187
|
+
message: 'Threshold value:',
|
|
188
|
+
validate: (v) => v !== undefined || 'Required',
|
|
189
|
+
});
|
|
190
|
+
return value;
|
|
138
191
|
}
|
|
139
192
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAiB,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,17 @@ export interface UpdateCheckOptions {
|
|
|
6
6
|
alertLevel?: string;
|
|
7
7
|
pause?: boolean;
|
|
8
8
|
resume?: boolean;
|
|
9
|
+
managedBy?: string;
|
|
10
|
+
calendar?: string;
|
|
11
|
+
clearCalendar?: boolean;
|
|
12
|
+
tz?: string;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* Edit a check's common fields via PATCH (partial update — only the flags you
|
|
12
|
-
* pass change).
|
|
13
|
-
*
|
|
16
|
+
* pass change). With no flags at a terminal it drops into an interactive editor
|
|
17
|
+
* for the same fields. Condition editing is left to the web UI / MCP, where the
|
|
18
|
+
* full condition object can be expressed. Management mode and market calendar
|
|
19
|
+
* are check settings too, applied here via their own endpoints.
|
|
14
20
|
*/
|
|
15
21
|
export declare function updateCheck(nameOrId: string, opts: UpdateCheckOptions): Promise<void>;
|
|
16
22
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAID;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -1,15 +1,70 @@
|
|
|
1
|
+
import { checkbox, input, select } from '@inquirer/prompts';
|
|
1
2
|
import { createClient } from '../../api.js';
|
|
2
3
|
import { requireConfig, requireOrg, resolveWebUrl } from '../../config.js';
|
|
4
|
+
import { INTERVAL_CHOICES } from '../../intervals.js';
|
|
5
|
+
import { isInteractive } from '../../prompts.js';
|
|
3
6
|
import { resolveCheckId } from './resolve.js';
|
|
7
|
+
const ALERT_LEVELS = ['info', 'warning', 'error', 'critical'];
|
|
4
8
|
/**
|
|
5
9
|
* Edit a check's common fields via PATCH (partial update — only the flags you
|
|
6
|
-
* pass change).
|
|
7
|
-
*
|
|
10
|
+
* pass change). With no flags at a terminal it drops into an interactive editor
|
|
11
|
+
* for the same fields. Condition editing is left to the web UI / MCP, where the
|
|
12
|
+
* full condition object can be expressed. Management mode and market calendar
|
|
13
|
+
* are check settings too, applied here via their own endpoints.
|
|
8
14
|
*/
|
|
9
15
|
export async function updateCheck(nameOrId, opts) {
|
|
10
16
|
const config = requireConfig();
|
|
11
17
|
requireOrg(config);
|
|
12
18
|
const client = createClient(config);
|
|
19
|
+
if (opts.pause && opts.resume) {
|
|
20
|
+
console.error('Pass only one of --pause or --resume.');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
if (opts.managedBy && opts.managedBy !== 'user' && opts.managedBy !== 'alertee') {
|
|
24
|
+
console.error('--managed-by must be "user" or "alertee".');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
let body = buildBody(opts);
|
|
28
|
+
const touchesManaged = Boolean(opts.managedBy);
|
|
29
|
+
const touchesCalendar = Boolean(opts.calendar || opts.clearCalendar);
|
|
30
|
+
if (Object.keys(body).length === 0 && !touchesManaged && !touchesCalendar) {
|
|
31
|
+
if (!isInteractive()) {
|
|
32
|
+
console.error('Nothing to update. Pass at least one of --name, --query, --label-query, --interval, --alert-level, --pause, --resume, --managed-by, --calendar, --clear-calendar.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
body = await promptForChanges();
|
|
36
|
+
if (Object.keys(body).length === 0) {
|
|
37
|
+
console.log('Nothing selected. Aborted.');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const id = await resolveCheckId(client, nameOrId);
|
|
42
|
+
try {
|
|
43
|
+
if (Object.keys(body).length > 0)
|
|
44
|
+
await client.patchCheck(id, body);
|
|
45
|
+
if (touchesManaged) {
|
|
46
|
+
const res = await client.setCheckManagement(id, {
|
|
47
|
+
managed_by: opts.managedBy,
|
|
48
|
+
});
|
|
49
|
+
console.log(`Managed by: ${res.managed_by}`);
|
|
50
|
+
}
|
|
51
|
+
if (touchesCalendar) {
|
|
52
|
+
const res = await client.setCheckMarketCalendar(id, {
|
|
53
|
+
calendar: opts.calendar,
|
|
54
|
+
timezone: opts.tz,
|
|
55
|
+
clear: opts.clearCalendar,
|
|
56
|
+
});
|
|
57
|
+
console.log(opts.clearCalendar ? 'Market calendar cleared.' : `Market calendar: ${res.item?.subject ?? opts.calendar}`);
|
|
58
|
+
}
|
|
59
|
+
console.log(`Updated check ${id}`);
|
|
60
|
+
console.log(`View at: ${resolveWebUrl()}/checks/${id}`);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.error('Failed to update check:', err.message);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function buildBody(opts) {
|
|
13
68
|
const body = {};
|
|
14
69
|
if (opts.name !== undefined)
|
|
15
70
|
body.name = opts.name;
|
|
@@ -25,23 +80,50 @@ export async function updateCheck(nameOrId, opts) {
|
|
|
25
80
|
body.enabled = false;
|
|
26
81
|
if (opts.resume)
|
|
27
82
|
body.enabled = true;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
83
|
+
return body;
|
|
84
|
+
}
|
|
85
|
+
async function promptForChanges() {
|
|
86
|
+
const fields = await checkbox({
|
|
87
|
+
message: 'What do you want to change?',
|
|
88
|
+
choices: [
|
|
89
|
+
{ name: 'Name', value: 'name' },
|
|
90
|
+
{ name: 'Query', value: 'query' },
|
|
91
|
+
{ name: 'Label query', value: 'labelQuery' },
|
|
92
|
+
{ name: 'Interval', value: 'interval' },
|
|
93
|
+
{ name: 'Alert level', value: 'alertLevel' },
|
|
94
|
+
{ name: 'Enabled / paused', value: 'enabled' },
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
const body = {};
|
|
98
|
+
for (const field of fields) {
|
|
99
|
+
if (field === 'name') {
|
|
100
|
+
body.name = await input({ message: 'New name:', validate: (v) => v.trim().length > 0 || 'Required' });
|
|
101
|
+
}
|
|
102
|
+
else if (field === 'query') {
|
|
103
|
+
body.query = await input({ message: 'New SQL query:', validate: (v) => v.trim().length > 0 || 'Required' });
|
|
104
|
+
}
|
|
105
|
+
else if (field === 'labelQuery') {
|
|
106
|
+
body.label_query = await input({ message: 'New label query (name -> label):' });
|
|
107
|
+
}
|
|
108
|
+
else if (field === 'interval') {
|
|
109
|
+
body.interval = await select({ message: 'New interval:', choices: INTERVAL_CHOICES });
|
|
110
|
+
}
|
|
111
|
+
else if (field === 'alertLevel') {
|
|
112
|
+
body.alert_level = await select({
|
|
113
|
+
message: 'New alert level:',
|
|
114
|
+
choices: ALERT_LEVELS.map((l) => ({ name: l, value: l })),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else if (field === 'enabled') {
|
|
118
|
+
body.enabled = await select({
|
|
119
|
+
message: 'State:',
|
|
120
|
+
choices: [
|
|
121
|
+
{ name: 'Enabled', value: true },
|
|
122
|
+
{ name: 'Paused', value: false },
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
}
|
|
45
126
|
}
|
|
127
|
+
return body;
|
|
46
128
|
}
|
|
47
129
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface CreateConnectionOptions {
|
|
2
|
+
name?: string;
|
|
3
|
+
type?: string;
|
|
4
|
+
/** The database connection URI / connection string. */
|
|
5
|
+
uri?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create a database connection in the linked organization. The URI is sent to
|
|
9
|
+
* the API over HTTPS and encrypted server-side with the org key — the CLI never
|
|
10
|
+
* stores it. The backend tests the connection before saving, so a bad URI or
|
|
11
|
+
* unreachable host fails here rather than silently saving.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createConnection(opts?: CreateConnectionOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDxF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { input, password, select } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { requireValue } from '../../prompts.js';
|
|
5
|
+
const TYPE_CHOICES = [
|
|
6
|
+
{ name: 'PostgreSQL', value: 'postgres' },
|
|
7
|
+
{ name: 'ClickHouse', value: 'clickhouse' },
|
|
8
|
+
];
|
|
9
|
+
const VALID_TYPES = ['postgres', 'postgresql', 'clickhouse'];
|
|
10
|
+
/**
|
|
11
|
+
* Create a database connection in the linked organization. The URI is sent to
|
|
12
|
+
* the API over HTTPS and encrypted server-side with the org key — the CLI never
|
|
13
|
+
* stores it. The backend tests the connection before saving, so a bad URI or
|
|
14
|
+
* unreachable host fails here rather than silently saving.
|
|
15
|
+
*/
|
|
16
|
+
export async function createConnection(opts = {}) {
|
|
17
|
+
const config = requireConfig();
|
|
18
|
+
requireOrg(config);
|
|
19
|
+
const client = createClient(config);
|
|
20
|
+
const name = await requireValue(opts.name, () => input({
|
|
21
|
+
message: 'Connection name:',
|
|
22
|
+
validate: (v) => v.trim().length > 0 || 'Required',
|
|
23
|
+
}), 'Connection name required. Pass --name.');
|
|
24
|
+
let type = await requireValue(opts.type, () => select({ message: 'Database type:', choices: TYPE_CHOICES }), 'Database type required. Pass --type postgres|clickhouse.');
|
|
25
|
+
type = type.toLowerCase();
|
|
26
|
+
if (!VALID_TYPES.includes(type)) {
|
|
27
|
+
console.error(`Unsupported --type "${type}". Use postgres or clickhouse.`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const connectionString = await requireValue(opts.uri, () => password({
|
|
31
|
+
message: 'Connection URI (e.g. postgres://user:pass@host:5432/db — hidden):',
|
|
32
|
+
mask: true,
|
|
33
|
+
validate: (v) => v.trim().length > 0 || 'Required',
|
|
34
|
+
}), 'Connection URI required. Pass --uri "postgres://user:pass@host:5432/db".');
|
|
35
|
+
console.log('Testing connection…');
|
|
36
|
+
let conn;
|
|
37
|
+
try {
|
|
38
|
+
const resp = await client.upsertConnection({
|
|
39
|
+
name,
|
|
40
|
+
type,
|
|
41
|
+
connection_string: connectionString,
|
|
42
|
+
});
|
|
43
|
+
conn = resp.connection;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error('Failed to create connection:', err.message);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
console.log(`Connection "${conn.name}" created (${conn.id}).`);
|
|
50
|
+
console.log('Next: alertee checks create');
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/connections/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;IACzC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;CAC5C,CAAA;AACD,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAS5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgC,EAAE;IACvE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,IAAI,CAAC,IAAI,EACT,GAAG,EAAE,CACH,KAAK,CAAC;QACJ,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU;KAC3D,CAAC,EACJ,wCAAwC,CACzC,CAAA;IAED,IAAI,IAAI,GAAG,MAAM,YAAY,CAC3B,IAAI,CAAC,IAAI,EACT,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAClE,0DAA0D,CAC3D,CAAA;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,CAAA;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,YAAY,CACzC,IAAI,CAAC,GAAG,EACR,GAAG,EAAE,CACH,QAAQ,CAAC;QACP,OAAO,EAAE,mEAAmE;QAC5E,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU;KAC3D,CAAC,EACJ,0EAA0E,CAC3E,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAClC,IAAI,IAAuE,CAAA;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACzC,IAAI;YACJ,IAAI;YACJ,iBAAiB,EAAE,gBAAgB;SACpC,CAAC,CAAA;QACF,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;IACxB,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,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/delete.ts"],"names":[],"mappings":"AAMA,kFAAkF;AAClF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|