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,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.accountsListCommand = accountsListCommand;
|
|
7
|
+
exports.accountsAddCommand = accountsAddCommand;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
10
|
+
const api_client_1 = require("../api/api-client");
|
|
11
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
12
|
+
/**
|
|
13
|
+
* List all cloud accounts
|
|
14
|
+
*/
|
|
15
|
+
async function accountsListCommand(_options) {
|
|
16
|
+
const apiClient = (0, api_client_1.createAPIClient)();
|
|
17
|
+
try {
|
|
18
|
+
console.log(chalk_1.default.gray('Fetching cloud accounts...\n'));
|
|
19
|
+
const accounts = await apiClient.get('/api/v1/accounts');
|
|
20
|
+
if (accounts.length === 0) {
|
|
21
|
+
console.log(chalk_1.default.yellow('No cloud accounts configured.'));
|
|
22
|
+
console.log(chalk_1.default.gray('Add an account with: cloudops accounts add <provider>\n'));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Create table
|
|
26
|
+
const table = new cli_table3_1.default({
|
|
27
|
+
head: [
|
|
28
|
+
chalk_1.default.cyan('Account ID'),
|
|
29
|
+
chalk_1.default.cyan('Provider'),
|
|
30
|
+
chalk_1.default.cyan('Identifier'),
|
|
31
|
+
chalk_1.default.cyan('Regions'),
|
|
32
|
+
chalk_1.default.cyan('Created'),
|
|
33
|
+
],
|
|
34
|
+
colWidths: [20, 10, 30, 30, 20],
|
|
35
|
+
});
|
|
36
|
+
// Add rows
|
|
37
|
+
for (const account of accounts) {
|
|
38
|
+
table.push([
|
|
39
|
+
account.account_id,
|
|
40
|
+
account.provider.toUpperCase(),
|
|
41
|
+
account.account_identifier,
|
|
42
|
+
account.regions.join(', '),
|
|
43
|
+
new Date(account.created_at).toLocaleDateString(),
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
console.log(table.toString());
|
|
47
|
+
console.log(chalk_1.default.gray(`\nTotal: ${accounts.length} account(s)\n`));
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error instanceof Error) {
|
|
51
|
+
throw new Error(`Failed to list accounts: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Add a new cloud account
|
|
58
|
+
*/
|
|
59
|
+
async function accountsAddCommand(provider, _options) {
|
|
60
|
+
// Validate provider
|
|
61
|
+
if (!['aws', 'gcp', 'azure'].includes(provider.toLowerCase())) {
|
|
62
|
+
throw new Error('Provider must be one of: aws, gcp, azure');
|
|
63
|
+
}
|
|
64
|
+
const normalizedProvider = provider.toLowerCase();
|
|
65
|
+
console.log(chalk_1.default.bold.blue(`\n🔗 Adding ${provider.toUpperCase()} Account\n`));
|
|
66
|
+
let config;
|
|
67
|
+
// Provider-specific prompts
|
|
68
|
+
if (normalizedProvider === 'aws') {
|
|
69
|
+
config = await promptAWSConfig();
|
|
70
|
+
}
|
|
71
|
+
else if (normalizedProvider === 'gcp') {
|
|
72
|
+
config = await promptGCPConfig();
|
|
73
|
+
}
|
|
74
|
+
else if (normalizedProvider === 'azure') {
|
|
75
|
+
config = await promptAzureConfig();
|
|
76
|
+
}
|
|
77
|
+
// Create account via API
|
|
78
|
+
const apiClient = (0, api_client_1.createAPIClient)();
|
|
79
|
+
try {
|
|
80
|
+
console.log(chalk_1.default.gray('\nCreating account...'));
|
|
81
|
+
const result = await apiClient.post('/api/v1/accounts', {
|
|
82
|
+
provider: normalizedProvider,
|
|
83
|
+
config,
|
|
84
|
+
});
|
|
85
|
+
console.log(chalk_1.default.green(`\n✓ Account created successfully!`));
|
|
86
|
+
console.log(chalk_1.default.gray(`Account ID: ${result.account_id}`));
|
|
87
|
+
console.log(chalk_1.default.gray(`Provider: ${result.provider.toUpperCase()}`));
|
|
88
|
+
console.log(chalk_1.default.gray(`Identifier: ${result.account_identifier}`));
|
|
89
|
+
console.log(chalk_1.default.gray(`Regions: ${result.regions.join(', ')}\n`));
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (error instanceof Error) {
|
|
93
|
+
throw new Error(`Failed to add account: ${error.message}`);
|
|
94
|
+
}
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Prompt for AWS account configuration
|
|
100
|
+
*/
|
|
101
|
+
async function promptAWSConfig() {
|
|
102
|
+
const answers = await inquirer_1.default.prompt([
|
|
103
|
+
{
|
|
104
|
+
type: 'input',
|
|
105
|
+
name: 'account_id',
|
|
106
|
+
message: 'AWS Account ID:',
|
|
107
|
+
validate: (input) => {
|
|
108
|
+
if (!input || input.trim().length === 0) {
|
|
109
|
+
return 'Account ID is required';
|
|
110
|
+
}
|
|
111
|
+
if (!/^\d{12}$/.test(input.trim())) {
|
|
112
|
+
return 'Account ID must be a 12-digit number';
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'input',
|
|
119
|
+
name: 'role_arn',
|
|
120
|
+
message: 'IAM Role ARN:',
|
|
121
|
+
validate: (input) => {
|
|
122
|
+
if (!input || input.trim().length === 0) {
|
|
123
|
+
return 'Role ARN is required';
|
|
124
|
+
}
|
|
125
|
+
if (!input.startsWith('arn:aws:iam::')) {
|
|
126
|
+
return 'Role ARN must start with arn:aws:iam::';
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'input',
|
|
133
|
+
name: 'external_id',
|
|
134
|
+
message: 'External ID:',
|
|
135
|
+
validate: (input) => {
|
|
136
|
+
if (!input || input.trim().length === 0) {
|
|
137
|
+
return 'External ID is required';
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'input',
|
|
144
|
+
name: 'regions',
|
|
145
|
+
message: 'Regions (comma-separated):',
|
|
146
|
+
default: 'us-east-1,us-west-2',
|
|
147
|
+
validate: (input) => {
|
|
148
|
+
if (!input || input.trim().length === 0) {
|
|
149
|
+
return 'At least one region is required';
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'number',
|
|
156
|
+
name: 'session_duration',
|
|
157
|
+
message: 'Session duration (seconds):',
|
|
158
|
+
default: 3600,
|
|
159
|
+
validate: (input) => {
|
|
160
|
+
if (input < 900 || input > 3600) {
|
|
161
|
+
return 'Session duration must be between 900 and 3600 seconds';
|
|
162
|
+
}
|
|
163
|
+
return true;
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
]);
|
|
167
|
+
return {
|
|
168
|
+
account_id: answers.account_id.trim(),
|
|
169
|
+
role_arn: answers.role_arn.trim(),
|
|
170
|
+
external_id: answers.external_id.trim(),
|
|
171
|
+
regions: answers.regions.split(',').map((r) => r.trim()),
|
|
172
|
+
session_duration: answers.session_duration,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Prompt for GCP project configuration
|
|
177
|
+
*/
|
|
178
|
+
async function promptGCPConfig() {
|
|
179
|
+
const answers = await inquirer_1.default.prompt([
|
|
180
|
+
{
|
|
181
|
+
type: 'input',
|
|
182
|
+
name: 'project_id',
|
|
183
|
+
message: 'GCP Project ID:',
|
|
184
|
+
validate: (input) => {
|
|
185
|
+
if (!input || input.trim().length === 0) {
|
|
186
|
+
return 'Project ID is required';
|
|
187
|
+
}
|
|
188
|
+
if (!/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/.test(input.trim())) {
|
|
189
|
+
return 'Invalid project ID format';
|
|
190
|
+
}
|
|
191
|
+
return true;
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'input',
|
|
196
|
+
name: 'service_account_email',
|
|
197
|
+
message: 'Service Account Email:',
|
|
198
|
+
validate: (input) => {
|
|
199
|
+
if (!input || input.trim().length === 0) {
|
|
200
|
+
return 'Service account email is required';
|
|
201
|
+
}
|
|
202
|
+
if (!input.includes('@') || !input.includes('.iam.gserviceaccount.com')) {
|
|
203
|
+
return 'Invalid service account email format';
|
|
204
|
+
}
|
|
205
|
+
return true;
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'input',
|
|
210
|
+
name: 'regions',
|
|
211
|
+
message: 'Regions (comma-separated):',
|
|
212
|
+
default: 'us-central1,us-east1',
|
|
213
|
+
validate: (input) => {
|
|
214
|
+
if (!input || input.trim().length === 0) {
|
|
215
|
+
return 'At least one region is required';
|
|
216
|
+
}
|
|
217
|
+
return true;
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
]);
|
|
221
|
+
return {
|
|
222
|
+
project_id: answers.project_id.trim(),
|
|
223
|
+
service_account_email: answers.service_account_email.trim(),
|
|
224
|
+
regions: answers.regions.split(',').map((r) => r.trim()),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Prompt for Azure subscription configuration
|
|
229
|
+
*/
|
|
230
|
+
async function promptAzureConfig() {
|
|
231
|
+
const answers = await inquirer_1.default.prompt([
|
|
232
|
+
{
|
|
233
|
+
type: 'input',
|
|
234
|
+
name: 'subscription_id',
|
|
235
|
+
message: 'Azure Subscription ID:',
|
|
236
|
+
validate: (input) => {
|
|
237
|
+
if (!input || input.trim().length === 0) {
|
|
238
|
+
return 'Subscription ID is required';
|
|
239
|
+
}
|
|
240
|
+
// UUID format validation
|
|
241
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(input.trim())) {
|
|
242
|
+
return 'Subscription ID must be a valid UUID';
|
|
243
|
+
}
|
|
244
|
+
return true;
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
type: 'input',
|
|
249
|
+
name: 'tenant_id',
|
|
250
|
+
message: 'Azure Tenant ID:',
|
|
251
|
+
validate: (input) => {
|
|
252
|
+
if (!input || input.trim().length === 0) {
|
|
253
|
+
return 'Tenant ID is required';
|
|
254
|
+
}
|
|
255
|
+
// UUID format validation
|
|
256
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(input.trim())) {
|
|
257
|
+
return 'Tenant ID must be a valid UUID';
|
|
258
|
+
}
|
|
259
|
+
return true;
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
type: 'input',
|
|
264
|
+
name: 'client_id',
|
|
265
|
+
message: 'Azure Client ID (Service Principal):',
|
|
266
|
+
validate: (input) => {
|
|
267
|
+
if (!input || input.trim().length === 0) {
|
|
268
|
+
return 'Client ID is required';
|
|
269
|
+
}
|
|
270
|
+
// UUID format validation
|
|
271
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(input.trim())) {
|
|
272
|
+
return 'Client ID must be a valid UUID';
|
|
273
|
+
}
|
|
274
|
+
return true;
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: 'password',
|
|
279
|
+
name: 'client_secret',
|
|
280
|
+
message: 'Azure Client Secret (optional, press Enter to use managed identity):',
|
|
281
|
+
mask: '*',
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
type: 'input',
|
|
285
|
+
name: 'regions',
|
|
286
|
+
message: 'Regions (comma-separated):',
|
|
287
|
+
default: 'eastus,westus2',
|
|
288
|
+
validate: (input) => {
|
|
289
|
+
if (!input || input.trim().length === 0) {
|
|
290
|
+
return 'At least one region is required';
|
|
291
|
+
}
|
|
292
|
+
return true;
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
]);
|
|
296
|
+
const config = {
|
|
297
|
+
subscription_id: answers.subscription_id.trim(),
|
|
298
|
+
tenant_id: answers.tenant_id.trim(),
|
|
299
|
+
client_id: answers.client_id.trim(),
|
|
300
|
+
regions: answers.regions.split(',').map((r) => r.trim()),
|
|
301
|
+
};
|
|
302
|
+
if (answers.client_secret && answers.client_secret.trim().length > 0) {
|
|
303
|
+
config.client_secret = answers.client_secret.trim();
|
|
304
|
+
}
|
|
305
|
+
return config;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/commands/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for audit commands
|
|
3
|
+
*/
|
|
4
|
+
export interface AuditOptions {
|
|
5
|
+
config?: string;
|
|
6
|
+
user?: string;
|
|
7
|
+
from?: string;
|
|
8
|
+
to?: string;
|
|
9
|
+
action?: string;
|
|
10
|
+
incident?: string;
|
|
11
|
+
limit?: number;
|
|
12
|
+
format?: string;
|
|
13
|
+
output?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Search audit logs
|
|
17
|
+
*/
|
|
18
|
+
export declare function auditSearchCommand(options: AuditOptions): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Export audit logs
|
|
21
|
+
*/
|
|
22
|
+
export declare function auditExportCommand(options: AuditOptions): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAyG7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoH7E"}
|