cloudops-cli 0.1.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/README.md +132 -0
- package/dist/api/api-client.d.ts +78 -0
- package/dist/api/api-client.d.ts.map +1 -0
- package/dist/api/api-client.js +197 -0
- package/dist/api/api-client.js.map +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/auth/__mocks__/auth-handler.d.ts +27 -0
- package/dist/auth/__mocks__/auth-handler.d.ts.map +1 -0
- package/dist/auth/__mocks__/auth-handler.js +24 -0
- package/dist/auth/__mocks__/auth-handler.js.map +1 -0
- package/dist/auth/auth-handler.d.ts +80 -0
- package/dist/auth/auth-handler.d.ts.map +1 -0
- package/dist/auth/auth-handler.js +266 -0
- package/dist/auth/auth-handler.js.map +1 -0
- package/dist/auth/callback-server.d.ts +31 -0
- package/dist/auth/callback-server.d.ts.map +1 -0
- package/dist/auth/callback-server.js +143 -0
- package/dist/auth/callback-server.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +422 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/accounts.d.ts +15 -0
- package/dist/commands/accounts.d.ts.map +1 -0
- package/dist/commands/accounts.js +307 -0
- package/dist/commands/accounts.js.map +1 -0
- package/dist/commands/audit.d.ts +23 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +348 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/config.d.ts +15 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +148 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/incident.d.ts +59 -0
- package/dist/commands/incident.d.ts.map +1 -0
- package/dist/commands/incident.js +1032 -0
- package/dist/commands/incident.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +300 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/investigate.d.ts +15 -0
- package/dist/commands/investigate.d.ts.map +1 -0
- package/dist/commands/investigate.js +65 -0
- package/dist/commands/investigate.js.map +1 -0
- package/dist/commands/runbook.d.ts +20 -0
- package/dist/commands/runbook.d.ts.map +1 -0
- package/dist/commands/runbook.js +265 -0
- package/dist/commands/runbook.js.map +1 -0
- package/dist/config/__mocks__/config-handler.d.ts +11 -0
- package/dist/config/__mocks__/config-handler.d.ts.map +1 -0
- package/dist/config/__mocks__/config-handler.js +31 -0
- package/dist/config/__mocks__/config-handler.js.map +1 -0
- package/dist/config/certificate-pinning.d.ts +68 -0
- package/dist/config/certificate-pinning.d.ts.map +1 -0
- package/dist/config/certificate-pinning.js +249 -0
- package/dist/config/certificate-pinning.js.map +1 -0
- package/dist/config/config-handler.d.ts +45 -0
- package/dist/config/config-handler.d.ts.map +1 -0
- package/dist/config/config-handler.js +149 -0
- package/dist/config/config-handler.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/types/cli-options.d.ts +31 -0
- package/dist/types/cli-options.d.ts.map +1 -0
- package/dist/types/cli-options.js +3 -0
- package/dist/types/cli-options.js.map +1 -0
- package/dist/utils/output-formatter.d.ts +67 -0
- package/dist/utils/output-formatter.d.ts.map +1 -0
- package/dist/utils/output-formatter.js +147 -0
- package/dist/utils/output-formatter.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.auditSearchCommand = auditSearchCommand;
|
|
40
|
+
exports.auditExportCommand = auditExportCommand;
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const api_client_1 = require("../api/api-client");
|
|
46
|
+
/**
|
|
47
|
+
* Search audit logs
|
|
48
|
+
*/
|
|
49
|
+
async function auditSearchCommand(options) {
|
|
50
|
+
console.log(chalk_1.default.bold.blue(`\n🔍 Searching audit logs...\n`));
|
|
51
|
+
try {
|
|
52
|
+
// Build search parameters
|
|
53
|
+
const searchParams = {};
|
|
54
|
+
if (options.user) {
|
|
55
|
+
searchParams.user_id = options.user;
|
|
56
|
+
}
|
|
57
|
+
if (options.from) {
|
|
58
|
+
// Parse date string
|
|
59
|
+
const fromDate = parseDate(options.from);
|
|
60
|
+
if (!fromDate) {
|
|
61
|
+
console.error(chalk_1.default.red(`Error: Invalid from date: ${options.from}`));
|
|
62
|
+
console.error(chalk_1.default.gray(' Expected format: YYYY-MM-DD or ISO 8601'));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
searchParams.from_date = fromDate.toISOString();
|
|
66
|
+
}
|
|
67
|
+
if (options.to) {
|
|
68
|
+
// Parse date string
|
|
69
|
+
const toDate = parseDate(options.to);
|
|
70
|
+
if (!toDate) {
|
|
71
|
+
console.error(chalk_1.default.red(`Error: Invalid to date: ${options.to}`));
|
|
72
|
+
console.error(chalk_1.default.gray(' Expected format: YYYY-MM-DD or ISO 8601'));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
searchParams.to_date = toDate.toISOString();
|
|
76
|
+
}
|
|
77
|
+
if (options.action) {
|
|
78
|
+
searchParams.action = options.action;
|
|
79
|
+
}
|
|
80
|
+
if (options.incident) {
|
|
81
|
+
searchParams.incident_id = options.incident;
|
|
82
|
+
}
|
|
83
|
+
if (options.limit) {
|
|
84
|
+
searchParams.limit = options.limit;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
searchParams.limit = 50; // Default limit
|
|
88
|
+
}
|
|
89
|
+
// Call search endpoint
|
|
90
|
+
const apiClient = (0, api_client_1.createAPIClient)();
|
|
91
|
+
const logs = await apiClient.post('/api/v1/audit/search', searchParams);
|
|
92
|
+
if (logs.length === 0) {
|
|
93
|
+
console.log(chalk_1.default.yellow('No audit logs found'));
|
|
94
|
+
console.log(chalk_1.default.gray(' Try adjusting your search criteria.'));
|
|
95
|
+
console.log();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.log(chalk_1.default.green(`✓ Found ${logs.length} audit log(s)\n`));
|
|
99
|
+
// Display logs in a table
|
|
100
|
+
const table = new cli_table3_1.default({
|
|
101
|
+
head: [
|
|
102
|
+
chalk_1.default.bold('Timestamp'),
|
|
103
|
+
chalk_1.default.bold('User'),
|
|
104
|
+
chalk_1.default.bold('Action'),
|
|
105
|
+
chalk_1.default.bold('Resource'),
|
|
106
|
+
chalk_1.default.bold('Incident ID'),
|
|
107
|
+
],
|
|
108
|
+
colWidths: [20, 20, 25, 20, 20],
|
|
109
|
+
wordWrap: true,
|
|
110
|
+
});
|
|
111
|
+
logs.forEach((log) => {
|
|
112
|
+
table.push([
|
|
113
|
+
new Date(log.timestamp).toLocaleString(),
|
|
114
|
+
log.user_id,
|
|
115
|
+
formatAction(log.action),
|
|
116
|
+
`${log.resource_type}${log.resource_id ? '\n' + log.resource_id.substring(0, 15) : ''}`,
|
|
117
|
+
log.incident_id ? log.incident_id.substring(0, 15) : chalk_1.default.gray('N/A'),
|
|
118
|
+
]);
|
|
119
|
+
});
|
|
120
|
+
console.log(table.toString());
|
|
121
|
+
console.log();
|
|
122
|
+
// Show summary
|
|
123
|
+
console.log(chalk_1.default.bold('Summary:'));
|
|
124
|
+
console.log(chalk_1.default.gray(` Total logs: ${logs.length}`));
|
|
125
|
+
const uniqueUsers = new Set(logs.map((l) => l.user_id));
|
|
126
|
+
console.log(chalk_1.default.gray(` Unique users: ${uniqueUsers.size}`));
|
|
127
|
+
const uniqueActions = new Set(logs.map((l) => l.action));
|
|
128
|
+
console.log(chalk_1.default.gray(` Unique actions: ${uniqueActions.size}`));
|
|
129
|
+
console.log();
|
|
130
|
+
// Show export option
|
|
131
|
+
console.log(chalk_1.default.bold('Export Options:'));
|
|
132
|
+
console.log(chalk_1.default.gray(' • Export as JSON: cloudops audit export --format json --output <file>'));
|
|
133
|
+
console.log(chalk_1.default.gray(' • Export as CSV: cloudops audit export --format csv --output <file>'));
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
handleAPIError(error, 'search audit logs');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Export audit logs
|
|
142
|
+
*/
|
|
143
|
+
async function auditExportCommand(options) {
|
|
144
|
+
if (!options.output) {
|
|
145
|
+
console.error(chalk_1.default.red('Error: Output file is required'));
|
|
146
|
+
console.error(chalk_1.default.gray(' Use --output <file> to specify the output file'));
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
if (!options.format) {
|
|
150
|
+
console.error(chalk_1.default.red('Error: Export format is required'));
|
|
151
|
+
console.error(chalk_1.default.gray(' Use --format json or --format csv'));
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
const format = options.format.toLowerCase();
|
|
155
|
+
if (format !== 'json' && format !== 'csv') {
|
|
156
|
+
console.error(chalk_1.default.red(`Error: Invalid format: ${options.format}`));
|
|
157
|
+
console.error(chalk_1.default.gray(' Supported formats: json, csv'));
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
console.log(chalk_1.default.bold.blue(`\n📤 Exporting audit logs...\n`));
|
|
161
|
+
try {
|
|
162
|
+
// Build search parameters (same as search command)
|
|
163
|
+
const searchParams = {};
|
|
164
|
+
if (options.user) {
|
|
165
|
+
searchParams.user_id = options.user;
|
|
166
|
+
}
|
|
167
|
+
if (options.from) {
|
|
168
|
+
const fromDate = parseDate(options.from);
|
|
169
|
+
if (!fromDate) {
|
|
170
|
+
console.error(chalk_1.default.red(`Error: Invalid from date: ${options.from}`));
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
searchParams.from_date = fromDate.toISOString();
|
|
174
|
+
}
|
|
175
|
+
if (options.to) {
|
|
176
|
+
const toDate = parseDate(options.to);
|
|
177
|
+
if (!toDate) {
|
|
178
|
+
console.error(chalk_1.default.red(`Error: Invalid to date: ${options.to}`));
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
searchParams.to_date = toDate.toISOString();
|
|
182
|
+
}
|
|
183
|
+
if (options.action) {
|
|
184
|
+
searchParams.action = options.action;
|
|
185
|
+
}
|
|
186
|
+
if (options.incident) {
|
|
187
|
+
searchParams.incident_id = options.incident;
|
|
188
|
+
}
|
|
189
|
+
// No limit for export - get all matching logs
|
|
190
|
+
searchParams.limit = 10000;
|
|
191
|
+
// Build export request
|
|
192
|
+
const exportRequest = {
|
|
193
|
+
search_params: searchParams,
|
|
194
|
+
format: format,
|
|
195
|
+
};
|
|
196
|
+
// Call export endpoint
|
|
197
|
+
const apiClient = (0, api_client_1.createAPIClient)();
|
|
198
|
+
const exportData = await apiClient.post('/api/v1/audit/export', exportRequest);
|
|
199
|
+
// Write to file
|
|
200
|
+
const resolvedPath = path.resolve(options.output);
|
|
201
|
+
const dir = path.dirname(resolvedPath);
|
|
202
|
+
// Ensure directory exists
|
|
203
|
+
if (!fs.existsSync(dir)) {
|
|
204
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
205
|
+
}
|
|
206
|
+
// Write data based on format
|
|
207
|
+
if (format === 'json') {
|
|
208
|
+
const jsonData = typeof exportData === 'string' ? exportData : JSON.stringify(exportData, null, 2);
|
|
209
|
+
fs.writeFileSync(resolvedPath, jsonData, 'utf-8');
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// CSV format
|
|
213
|
+
const csvData = typeof exportData === 'string' ? exportData : convertToCSV(exportData);
|
|
214
|
+
fs.writeFileSync(resolvedPath, csvData, 'utf-8');
|
|
215
|
+
}
|
|
216
|
+
console.log(chalk_1.default.green('✓ Audit logs exported successfully\n'));
|
|
217
|
+
const resultTable = new cli_table3_1.default({
|
|
218
|
+
colWidths: [25, 55],
|
|
219
|
+
wordWrap: true,
|
|
220
|
+
});
|
|
221
|
+
resultTable.push([chalk_1.default.bold('File'), chalk_1.default.cyan(resolvedPath)], [chalk_1.default.bold('Format'), format.toUpperCase()], [chalk_1.default.bold('Size'), `${(fs.statSync(resolvedPath).size / 1024).toFixed(2)} KB`]);
|
|
222
|
+
console.log(resultTable.toString());
|
|
223
|
+
console.log();
|
|
224
|
+
// Show summary
|
|
225
|
+
if (Array.isArray(exportData)) {
|
|
226
|
+
console.log(chalk_1.default.bold('Summary:'));
|
|
227
|
+
console.log(chalk_1.default.gray(` Total logs exported: ${exportData.length}`));
|
|
228
|
+
console.log();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
handleAPIError(error, 'export audit logs');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Parse date string to Date object
|
|
237
|
+
* Supports YYYY-MM-DD and ISO 8601 formats
|
|
238
|
+
*/
|
|
239
|
+
function parseDate(dateStr) {
|
|
240
|
+
// Try ISO 8601 format first
|
|
241
|
+
const isoDate = new Date(dateStr);
|
|
242
|
+
if (!isNaN(isoDate.getTime())) {
|
|
243
|
+
return isoDate;
|
|
244
|
+
}
|
|
245
|
+
// Try YYYY-MM-DD format
|
|
246
|
+
const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
247
|
+
if (match) {
|
|
248
|
+
const [, year, month, day] = match;
|
|
249
|
+
const date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
250
|
+
if (!isNaN(date.getTime())) {
|
|
251
|
+
return date;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Convert audit logs to CSV format
|
|
258
|
+
*/
|
|
259
|
+
function convertToCSV(logs) {
|
|
260
|
+
if (logs.length === 0) {
|
|
261
|
+
return '';
|
|
262
|
+
}
|
|
263
|
+
// CSV header
|
|
264
|
+
const headers = [
|
|
265
|
+
'log_id',
|
|
266
|
+
'tenant_id',
|
|
267
|
+
'timestamp',
|
|
268
|
+
'user_id',
|
|
269
|
+
'action',
|
|
270
|
+
'resource_type',
|
|
271
|
+
'resource_id',
|
|
272
|
+
'incident_id',
|
|
273
|
+
'ip_address',
|
|
274
|
+
'user_agent',
|
|
275
|
+
'hash',
|
|
276
|
+
];
|
|
277
|
+
const rows = [headers.join(',')];
|
|
278
|
+
// CSV rows
|
|
279
|
+
logs.forEach((log) => {
|
|
280
|
+
const row = [
|
|
281
|
+
escapeCsvValue(log.log_id),
|
|
282
|
+
escapeCsvValue(log.tenant_id),
|
|
283
|
+
escapeCsvValue(log.timestamp),
|
|
284
|
+
escapeCsvValue(log.user_id),
|
|
285
|
+
escapeCsvValue(log.action),
|
|
286
|
+
escapeCsvValue(log.resource_type),
|
|
287
|
+
escapeCsvValue(log.resource_id || ''),
|
|
288
|
+
escapeCsvValue(log.incident_id || ''),
|
|
289
|
+
escapeCsvValue(log.ip_address || ''),
|
|
290
|
+
escapeCsvValue(log.user_agent || ''),
|
|
291
|
+
escapeCsvValue(log.hash),
|
|
292
|
+
];
|
|
293
|
+
rows.push(row.join(','));
|
|
294
|
+
});
|
|
295
|
+
return rows.join('\n');
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Escape CSV value
|
|
299
|
+
*/
|
|
300
|
+
function escapeCsvValue(value) {
|
|
301
|
+
if (value.includes(',') || value.includes('"') || value.includes('\n')) {
|
|
302
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
303
|
+
}
|
|
304
|
+
return value;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Format action with color
|
|
308
|
+
*/
|
|
309
|
+
function formatAction(action) {
|
|
310
|
+
const actionColors = {
|
|
311
|
+
'incident.create': chalk_1.default.blue,
|
|
312
|
+
'incident.update': chalk_1.default.cyan,
|
|
313
|
+
'incident.diagnose': chalk_1.default.magenta,
|
|
314
|
+
'incident.remediate': chalk_1.default.yellow,
|
|
315
|
+
'incident.execute': chalk_1.default.green,
|
|
316
|
+
'plan.approve': chalk_1.default.green,
|
|
317
|
+
'plan.reject': chalk_1.default.red,
|
|
318
|
+
'runbook.execute': chalk_1.default.yellow,
|
|
319
|
+
'auth.login': chalk_1.default.gray,
|
|
320
|
+
'auth.logout': chalk_1.default.gray,
|
|
321
|
+
};
|
|
322
|
+
const colorFn = actionColors[action] || chalk_1.default.white;
|
|
323
|
+
return colorFn(action);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Handle API errors consistently
|
|
327
|
+
*/
|
|
328
|
+
function handleAPIError(error, action) {
|
|
329
|
+
if (error instanceof api_client_1.APIError) {
|
|
330
|
+
console.error(chalk_1.default.red(`\n✗ Failed to ${action}:`));
|
|
331
|
+
console.error(chalk_1.default.red(` ${error.message}`));
|
|
332
|
+
if (error.statusCode === 401) {
|
|
333
|
+
console.error(chalk_1.default.yellow('\nAuthentication required. Please run: cloudops init'));
|
|
334
|
+
}
|
|
335
|
+
else if (error.statusCode === 403) {
|
|
336
|
+
console.error(chalk_1.default.yellow('\nAccess denied. Check your permissions.'));
|
|
337
|
+
}
|
|
338
|
+
else if (error.details) {
|
|
339
|
+
console.error(chalk_1.default.gray('\nDetails:'), error.details);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
console.error(chalk_1.default.red(`\n✗ Unexpected error:`));
|
|
344
|
+
console.error(chalk_1.default.red(` ${error instanceof Error ? error.message : 'Unknown error'}`));
|
|
345
|
+
}
|
|
346
|
+
process.exit(1);
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for config commands
|
|
3
|
+
*/
|
|
4
|
+
export interface ConfigCommandOptions {
|
|
5
|
+
config?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Show current configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare function configShowCommand(options: ConfigCommandOptions): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Set a configuration value
|
|
13
|
+
*/
|
|
14
|
+
export declare function configSetCommand(key: string, value: string, options: ConfigCommandOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCpF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.configShowCommand = configShowCommand;
|
|
40
|
+
exports.configSetCommand = configSetCommand;
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const config_handler_1 = require("../config/config-handler");
|
|
43
|
+
/**
|
|
44
|
+
* Show current configuration
|
|
45
|
+
*/
|
|
46
|
+
async function configShowCommand(options) {
|
|
47
|
+
const configHandler = options.config
|
|
48
|
+
? new (await Promise.resolve().then(() => __importStar(require('../config/config-handler')))).ConfigHandler(options.config)
|
|
49
|
+
: (0, config_handler_1.getDefaultConfigHandler)();
|
|
50
|
+
try {
|
|
51
|
+
const config = configHandler.readConfig();
|
|
52
|
+
console.log(chalk_1.default.bold('\nCurrent Configuration:'));
|
|
53
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
54
|
+
console.log(chalk_1.default.cyan('Tenant ID: '), config.tenant_id);
|
|
55
|
+
console.log(chalk_1.default.cyan('Control Plane URL: '), config.control_plane_url);
|
|
56
|
+
console.log(chalk_1.default.cyan('Auth Method: '), config.auth.method);
|
|
57
|
+
if (config.auth.sso_provider) {
|
|
58
|
+
console.log(chalk_1.default.cyan('SSO Provider: '), config.auth.sso_provider);
|
|
59
|
+
}
|
|
60
|
+
if (config.auth.sso_url) {
|
|
61
|
+
console.log(chalk_1.default.cyan('SSO URL: '), config.auth.sso_url);
|
|
62
|
+
}
|
|
63
|
+
if (config.default_profile) {
|
|
64
|
+
console.log(chalk_1.default.cyan('Default Profile: '), config.default_profile);
|
|
65
|
+
}
|
|
66
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
67
|
+
console.log(chalk_1.default.gray(`\nConfig file: ${configHandler.getConfigPath()}\n`));
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (error instanceof Error) {
|
|
71
|
+
throw new Error(`Failed to read configuration: ${error.message}`);
|
|
72
|
+
}
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set a configuration value
|
|
78
|
+
*/
|
|
79
|
+
async function configSetCommand(key, value, options) {
|
|
80
|
+
const configHandler = options.config
|
|
81
|
+
? new (await Promise.resolve().then(() => __importStar(require('../config/config-handler')))).ConfigHandler(options.config)
|
|
82
|
+
: (0, config_handler_1.getDefaultConfigHandler)();
|
|
83
|
+
try {
|
|
84
|
+
// Read existing config
|
|
85
|
+
const config = configHandler.readConfig();
|
|
86
|
+
// Update the specified key
|
|
87
|
+
const updatedConfig = updateConfigValue(config, key, value);
|
|
88
|
+
// Write back to file
|
|
89
|
+
configHandler.writeConfig(updatedConfig);
|
|
90
|
+
console.log(chalk_1.default.green(`✓ Configuration updated: ${key} = ${value}`));
|
|
91
|
+
console.log(chalk_1.default.gray(`Config file: ${configHandler.getConfigPath()}\n`));
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (error instanceof Error) {
|
|
95
|
+
throw new Error(`Failed to update configuration: ${error.message}`);
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Update a configuration value by key path
|
|
102
|
+
*/
|
|
103
|
+
function updateConfigValue(config, key, value) {
|
|
104
|
+
const updatedConfig = { ...config };
|
|
105
|
+
// Handle nested keys with dot notation
|
|
106
|
+
const keys = key.split('.');
|
|
107
|
+
if (keys.length === 1) {
|
|
108
|
+
// Top-level keys
|
|
109
|
+
switch (key) {
|
|
110
|
+
case 'tenant_id':
|
|
111
|
+
updatedConfig.tenant_id = value;
|
|
112
|
+
break;
|
|
113
|
+
case 'control_plane_url':
|
|
114
|
+
updatedConfig.control_plane_url = value;
|
|
115
|
+
break;
|
|
116
|
+
case 'default_profile':
|
|
117
|
+
updatedConfig.default_profile = value;
|
|
118
|
+
break;
|
|
119
|
+
default:
|
|
120
|
+
throw new Error(`Unknown configuration key: ${key}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else if (keys.length === 2 && keys[0] === 'auth') {
|
|
124
|
+
// Auth nested keys
|
|
125
|
+
updatedConfig.auth = { ...config.auth };
|
|
126
|
+
switch (keys[1]) {
|
|
127
|
+
case 'method':
|
|
128
|
+
if (!['sso', 'oauth', 'api_key'].includes(value)) {
|
|
129
|
+
throw new Error('auth.method must be one of: sso, oauth, api_key');
|
|
130
|
+
}
|
|
131
|
+
updatedConfig.auth.method = value;
|
|
132
|
+
break;
|
|
133
|
+
case 'sso_provider':
|
|
134
|
+
updatedConfig.auth.sso_provider = value;
|
|
135
|
+
break;
|
|
136
|
+
case 'sso_url':
|
|
137
|
+
updatedConfig.auth.sso_url = value;
|
|
138
|
+
break;
|
|
139
|
+
default:
|
|
140
|
+
throw new Error(`Unknown auth configuration key: ${keys[1]}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
throw new Error(`Invalid configuration key: ${key}`);
|
|
145
|
+
}
|
|
146
|
+
return updatedConfig;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for incident commands
|
|
3
|
+
*/
|
|
4
|
+
export interface IncidentOptions {
|
|
5
|
+
config?: string;
|
|
6
|
+
profile?: string;
|
|
7
|
+
export?: string;
|
|
8
|
+
useProfile?: string;
|
|
9
|
+
iacTool?: string;
|
|
10
|
+
skipApproval?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get incident status
|
|
14
|
+
* Displays current status and metadata for an incident
|
|
15
|
+
*/
|
|
16
|
+
export declare function incidentStatusCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Get incident context
|
|
19
|
+
* Displays gathered context including metrics, logs, events, topology, and changes
|
|
20
|
+
*/
|
|
21
|
+
export declare function incidentContextCommand(incidentId: string, options: IncidentOptions): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get incident diagnosis
|
|
24
|
+
* Displays AI-generated root cause analysis with evidence
|
|
25
|
+
*/
|
|
26
|
+
export declare function incidentDiagnoseCommand(incidentId: string, options: IncidentOptions): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Ask a follow-up question about an incident
|
|
29
|
+
* Displays AI response based on existing context and conversation history
|
|
30
|
+
*/
|
|
31
|
+
export declare function incidentAskCommand(incidentId: string, question: string, options: IncidentOptions): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Generate remediation plan for an incident
|
|
34
|
+
* Displays remediation plan with risk assessment
|
|
35
|
+
*/
|
|
36
|
+
export declare function incidentRemediateCommand(incidentId: string, options: IncidentOptions): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Show remediation plan for an incident
|
|
39
|
+
*/
|
|
40
|
+
export declare function incidentPlanShowCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Edit remediation plan for an incident
|
|
43
|
+
* Opens the plan in the default editor
|
|
44
|
+
*/
|
|
45
|
+
export declare function incidentPlanEditCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Execute remediation plan for an incident
|
|
48
|
+
* Handles approval workflow and displays PR URL and pipeline status
|
|
49
|
+
*/
|
|
50
|
+
export declare function incidentExecuteCommand(incidentId: string, options: IncidentOptions): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* List all incidents with optional filtering
|
|
53
|
+
* Displays incidents in a table format
|
|
54
|
+
*/
|
|
55
|
+
export declare function incidentListCommand(options: IncidentOptions & {
|
|
56
|
+
status?: string;
|
|
57
|
+
severity?: string;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
//# sourceMappingURL=incident.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../src/commands/incident.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAgJf;AA0MD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAoHf;AAoFD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAmJf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAyIf;AAiDD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|