@qodalis/cli-server-plugin-aws 0.0.0-stage → 1.0.0-beta.13
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/LICENSE +21 -0
- package/README.md +155 -2
- package/dist/aws-command-processor.d.ts +19 -0
- package/dist/aws-command-processor.d.ts.map +1 -0
- package/dist/aws-command-processor.js +265 -0
- package/dist/aws-command-processor.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/processors/cloudwatch-processor.d.ts +12 -0
- package/dist/processors/cloudwatch-processor.d.ts.map +1 -0
- package/dist/processors/cloudwatch-processor.js +168 -0
- package/dist/processors/cloudwatch-processor.js.map +1 -0
- package/dist/processors/dynamodb-processor.d.ts +12 -0
- package/dist/processors/dynamodb-processor.d.ts.map +1 -0
- package/dist/processors/dynamodb-processor.js +201 -0
- package/dist/processors/dynamodb-processor.js.map +1 -0
- package/dist/processors/ec2-processor.d.ts +12 -0
- package/dist/processors/ec2-processor.d.ts.map +1 -0
- package/dist/processors/ec2-processor.js +305 -0
- package/dist/processors/ec2-processor.js.map +1 -0
- package/dist/processors/ecs-processor.d.ts +12 -0
- package/dist/processors/ecs-processor.d.ts.map +1 -0
- package/dist/processors/ecs-processor.js +169 -0
- package/dist/processors/ecs-processor.js.map +1 -0
- package/dist/processors/iam-processor.d.ts +12 -0
- package/dist/processors/iam-processor.d.ts.map +1 -0
- package/dist/processors/iam-processor.js +151 -0
- package/dist/processors/iam-processor.js.map +1 -0
- package/dist/processors/lambda-processor.d.ts +12 -0
- package/dist/processors/lambda-processor.d.ts.map +1 -0
- package/dist/processors/lambda-processor.js +187 -0
- package/dist/processors/lambda-processor.js.map +1 -0
- package/dist/processors/s3-processor.d.ts +27 -0
- package/dist/processors/s3-processor.d.ts.map +1 -0
- package/dist/processors/s3-processor.js +345 -0
- package/dist/processors/s3-processor.js.map +1 -0
- package/dist/processors/sns-processor.d.ts +12 -0
- package/dist/processors/sns-processor.d.ts.map +1 -0
- package/dist/processors/sns-processor.js +157 -0
- package/dist/processors/sns-processor.js.map +1 -0
- package/dist/processors/sqs-processor.d.ts +12 -0
- package/dist/processors/sqs-processor.d.ts.map +1 -0
- package/dist/processors/sqs-processor.js +191 -0
- package/dist/processors/sqs-processor.js.map +1 -0
- package/dist/services/aws-config-service.d.ts +50 -0
- package/dist/services/aws-config-service.d.ts.map +1 -0
- package/dist/services/aws-config-service.js +61 -0
- package/dist/services/aws-config-service.js.map +1 -0
- package/dist/services/aws-credential-manager.d.ts +29 -0
- package/dist/services/aws-credential-manager.d.ts.map +1 -0
- package/dist/services/aws-credential-manager.js +50 -0
- package/dist/services/aws-credential-manager.js.map +1 -0
- package/dist/utils/output-helpers.d.ts +68 -0
- package/dist/utils/output-helpers.d.ts.map +1 -0
- package/dist/utils/output-helpers.js +107 -0
- package/dist/utils/output-helpers.js.map +1 -0
- package/dist/utils/pagination.d.ts +9 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +21 -0
- package/dist/utils/pagination.js.map +1 -0
- package/package.json +51 -5
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsIamProcessor = void 0;
|
|
4
|
+
const cli_server_abstractions_1 = require("@qodalis/cli-server-abstractions");
|
|
5
|
+
const client_iam_1 = require("@aws-sdk/client-iam");
|
|
6
|
+
const output_helpers_1 = require("../utils/output-helpers");
|
|
7
|
+
/** Sub-processor that lists IAM users. */
|
|
8
|
+
class IamUsersProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
9
|
+
credentialManager;
|
|
10
|
+
command = 'users';
|
|
11
|
+
description = 'List IAM users';
|
|
12
|
+
parameters = [
|
|
13
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
14
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
|
|
15
|
+
];
|
|
16
|
+
constructor(credentialManager) {
|
|
17
|
+
super();
|
|
18
|
+
this.credentialManager = credentialManager;
|
|
19
|
+
}
|
|
20
|
+
/** @inheritdoc */
|
|
21
|
+
async handleAsync() {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
/** @inheritdoc */
|
|
25
|
+
async handleStructuredAsync(command) {
|
|
26
|
+
const client = this.credentialManager.getClient(client_iam_1.IAMClient, {
|
|
27
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
const response = await client.send(new client_iam_1.ListUsersCommand({}));
|
|
31
|
+
const users = response.Users ?? [];
|
|
32
|
+
if (users.length === 0) {
|
|
33
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No IAM users found.', style: 'warning' }]);
|
|
34
|
+
}
|
|
35
|
+
const rows = users.map((user) => [
|
|
36
|
+
user.UserName ?? '(unknown)',
|
|
37
|
+
user.UserId ?? '(unknown)',
|
|
38
|
+
user.Arn ?? '(unknown)',
|
|
39
|
+
user.CreateDate ? user.CreateDate.toISOString().slice(0, 10) : '(unknown)',
|
|
40
|
+
]);
|
|
41
|
+
const tableOutput = (0, output_helpers_1.formatAsTable)(['UserName', 'UserId', 'Arn', 'CreateDate'], rows);
|
|
42
|
+
return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, users)]);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to list IAM users: ${err.message ?? err}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Sub-processor that lists IAM roles. */
|
|
50
|
+
class IamRolesProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
51
|
+
credentialManager;
|
|
52
|
+
command = 'roles';
|
|
53
|
+
description = 'List IAM roles';
|
|
54
|
+
parameters = [
|
|
55
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
56
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
|
|
57
|
+
];
|
|
58
|
+
constructor(credentialManager) {
|
|
59
|
+
super();
|
|
60
|
+
this.credentialManager = credentialManager;
|
|
61
|
+
}
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
async handleAsync() {
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
/** @inheritdoc */
|
|
67
|
+
async handleStructuredAsync(command) {
|
|
68
|
+
const client = this.credentialManager.getClient(client_iam_1.IAMClient, {
|
|
69
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
70
|
+
});
|
|
71
|
+
try {
|
|
72
|
+
const response = await client.send(new client_iam_1.ListRolesCommand({}));
|
|
73
|
+
const roles = response.Roles ?? [];
|
|
74
|
+
if (roles.length === 0) {
|
|
75
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No IAM roles found.', style: 'warning' }]);
|
|
76
|
+
}
|
|
77
|
+
const rows = roles.map((role) => [
|
|
78
|
+
role.RoleName ?? '(unknown)',
|
|
79
|
+
role.RoleId ?? '(unknown)',
|
|
80
|
+
role.Arn ?? '(unknown)',
|
|
81
|
+
role.CreateDate ? role.CreateDate.toISOString().slice(0, 10) : '(unknown)',
|
|
82
|
+
]);
|
|
83
|
+
const tableOutput = (0, output_helpers_1.formatAsTable)(['RoleName', 'RoleId', 'Arn', 'CreateDate'], rows);
|
|
84
|
+
return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, roles)]);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to list IAM roles: ${err.message ?? err}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Sub-processor that lists customer-managed IAM policies. */
|
|
92
|
+
class IamPoliciesProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
93
|
+
credentialManager;
|
|
94
|
+
command = 'policies';
|
|
95
|
+
description = 'List IAM policies (local/customer-managed)';
|
|
96
|
+
parameters = [
|
|
97
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
98
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
|
|
99
|
+
];
|
|
100
|
+
constructor(credentialManager) {
|
|
101
|
+
super();
|
|
102
|
+
this.credentialManager = credentialManager;
|
|
103
|
+
}
|
|
104
|
+
/** @inheritdoc */
|
|
105
|
+
async handleAsync() {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
/** @inheritdoc */
|
|
109
|
+
async handleStructuredAsync(command) {
|
|
110
|
+
const client = this.credentialManager.getClient(client_iam_1.IAMClient, {
|
|
111
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
112
|
+
});
|
|
113
|
+
try {
|
|
114
|
+
const response = await client.send(new client_iam_1.ListPoliciesCommand({ Scope: 'Local' }));
|
|
115
|
+
const policies = response.Policies ?? [];
|
|
116
|
+
if (policies.length === 0) {
|
|
117
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No IAM policies found.', style: 'warning' }]);
|
|
118
|
+
}
|
|
119
|
+
const rows = policies.map((policy) => [
|
|
120
|
+
policy.PolicyName ?? '(unknown)',
|
|
121
|
+
policy.Arn ?? '(unknown)',
|
|
122
|
+
String(policy.AttachmentCount ?? 0),
|
|
123
|
+
]);
|
|
124
|
+
const tableOutput = (0, output_helpers_1.formatAsTable)(['PolicyName', 'Arn', 'AttachmentCount'], rows);
|
|
125
|
+
return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, policies)]);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to list IAM policies: ${err.message ?? err}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** Parent processor for IAM sub-commands (users, roles, policies). */
|
|
133
|
+
class AwsIamProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
134
|
+
command = 'iam';
|
|
135
|
+
description = 'AWS IAM operations — users, roles, policies';
|
|
136
|
+
processors;
|
|
137
|
+
constructor(credentialManager) {
|
|
138
|
+
super();
|
|
139
|
+
this.processors = [
|
|
140
|
+
new IamUsersProcessor(credentialManager),
|
|
141
|
+
new IamRolesProcessor(credentialManager),
|
|
142
|
+
new IamPoliciesProcessor(credentialManager),
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
/** @inheritdoc */
|
|
146
|
+
async handleAsync() {
|
|
147
|
+
return '';
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.AwsIamProcessor = AwsIamProcessor;
|
|
151
|
+
//# sourceMappingURL=iam-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam-processor.js","sourceRoot":"","sources":["../../src/processors/iam-processor.ts"],"names":[],"mappings":";;;AAAA,8EAM0C;AAC1C,oDAAyG;AAEzG,4DAKiC;AAEjC,0CAA0C;AAC1C,MAAM,iBAAkB,SAAQ,6CAAmB;IAQlB;IAP7B,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,gBAAgB,CAAC;IAC/B,UAAU,GAAG;QACT,IAAI,uDAA6B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,uDAA6B,CAAC,QAAQ,EAAE,iCAAiC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACnH,CAAC;IAEF,YAA6B,iBAAuC;QAChE,KAAK,EAAE,CAAC;QADiB,sBAAiB,GAAjB,iBAAiB,CAAsB;IAEpE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,WAAW;QACb,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,qBAAqB,CAAC,OAA0B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,sBAAS,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAA,8BAAa,EAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,IAAI,WAAW;gBAC5B,IAAI,CAAC,MAAM,IAAI,WAAW;gBAC1B,IAAI,CAAC,GAAG,IAAI,WAAW;gBACvB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW;aAC7E,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,8BAAa,EAC7B,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAC3C,IAAI,CACP,CAAC;YACF,OAAO,IAAA,8BAAa,EAAC,CAAC,IAAA,kCAAiB,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,IAAA,mCAAkB,EAAC,6BAA6B,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;CACJ;AAED,0CAA0C;AAC1C,MAAM,iBAAkB,SAAQ,6CAAmB;IAQlB;IAP7B,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,gBAAgB,CAAC;IAC/B,UAAU,GAAG;QACT,IAAI,uDAA6B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,uDAA6B,CAAC,QAAQ,EAAE,iCAAiC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACnH,CAAC;IAEF,YAA6B,iBAAuC;QAChE,KAAK,EAAE,CAAC;QADiB,sBAAiB,GAAjB,iBAAiB,CAAsB;IAEpE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,WAAW;QACb,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,qBAAqB,CAAC,OAA0B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,sBAAS,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAA,8BAAa,EAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,IAAI,WAAW;gBAC5B,IAAI,CAAC,MAAM,IAAI,WAAW;gBAC1B,IAAI,CAAC,GAAG,IAAI,WAAW;gBACvB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW;aAC7E,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,8BAAa,EAC7B,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAC3C,IAAI,CACP,CAAC;YACF,OAAO,IAAA,8BAAa,EAAC,CAAC,IAAA,kCAAiB,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,IAAA,mCAAkB,EAAC,6BAA6B,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;CACJ;AAED,8DAA8D;AAC9D,MAAM,oBAAqB,SAAQ,6CAAmB;IAQrB;IAP7B,OAAO,GAAG,UAAU,CAAC;IACrB,WAAW,GAAG,4CAA4C,CAAC;IAC3D,UAAU,GAAG;QACT,IAAI,uDAA6B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,uDAA6B,CAAC,QAAQ,EAAE,iCAAiC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACnH,CAAC;IAEF,YAA6B,iBAAuC;QAChE,KAAK,EAAE,CAAC;QADiB,sBAAiB,GAAjB,iBAAiB,CAAsB;IAEpE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,WAAW;QACb,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,qBAAqB,CAAC,OAA0B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,sBAAS,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,gCAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;YAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAA,8BAAa,EAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,UAAU,IAAI,WAAW;gBAChC,MAAM,CAAC,GAAG,IAAI,WAAW;gBACzB,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;aACtC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,8BAAa,EAC7B,CAAC,YAAY,EAAE,KAAK,EAAE,iBAAiB,CAAC,EACxC,IAAI,CACP,CAAC;YACF,OAAO,IAAA,8BAAa,EAAC,CAAC,IAAA,kCAAiB,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,IAAA,mCAAkB,EAAC,gCAAgC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;CACJ;AAED,sEAAsE;AACtE,MAAa,eAAgB,SAAQ,6CAAmB;IACpD,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,6CAA6C,CAAC;IAC5D,UAAU,CAAyB;IAEnC,YAAY,iBAAuC;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG;YACd,IAAI,iBAAiB,CAAC,iBAAiB,CAAC;YACxC,IAAI,iBAAiB,CAAC,iBAAiB,CAAC;YACxC,IAAI,oBAAoB,CAAC,iBAAiB,CAAC;SAC9C,CAAC;IACN,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,WAAW;QACb,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAlBD,0CAkBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CliCommandProcessor, ICliCommandProcessor } from '@qodalis/cli-server-abstractions';
|
|
2
|
+
import { AwsCredentialManager } from '../services/aws-credential-manager';
|
|
3
|
+
/** Parent processor for Lambda sub-commands (list, invoke, logs). */
|
|
4
|
+
export declare class AwsLambdaProcessor extends CliCommandProcessor {
|
|
5
|
+
command: string;
|
|
6
|
+
description: string;
|
|
7
|
+
processors: ICliCommandProcessor[];
|
|
8
|
+
constructor(credentialManager: AwsCredentialManager);
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
handleAsync(): Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=lambda-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-processor.d.ts","sourceRoot":"","sources":["../../src/processors/lambda-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAInB,oBAAoB,EAEvB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAiM1E,qEAAqE;AACrE,qBAAa,kBAAmB,SAAQ,mBAAmB;IACvD,OAAO,SAAY;IACnB,WAAW,SAAyD;IACpE,UAAU,EAAE,oBAAoB,EAAE,CAAC;gBAEvB,iBAAiB,EAAE,oBAAoB;IASnD,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsLambdaProcessor = void 0;
|
|
4
|
+
const cli_server_abstractions_1 = require("@qodalis/cli-server-abstractions");
|
|
5
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
6
|
+
const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
|
|
7
|
+
const output_helpers_1 = require("../utils/output-helpers");
|
|
8
|
+
/** Sub-processor that lists Lambda functions. */
|
|
9
|
+
class LambdaListProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
10
|
+
credentialManager;
|
|
11
|
+
command = 'list';
|
|
12
|
+
description = 'List Lambda functions';
|
|
13
|
+
parameters = [
|
|
14
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
15
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
|
|
16
|
+
];
|
|
17
|
+
constructor(credentialManager) {
|
|
18
|
+
super();
|
|
19
|
+
this.credentialManager = credentialManager;
|
|
20
|
+
}
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
async handleAsync() {
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
async handleStructuredAsync(command) {
|
|
27
|
+
const client = this.credentialManager.getClient(client_lambda_1.LambdaClient, {
|
|
28
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
const response = await client.send(new client_lambda_1.ListFunctionsCommand({}));
|
|
32
|
+
const functions = response.Functions ?? [];
|
|
33
|
+
if (functions.length === 0) {
|
|
34
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No Lambda functions found.', style: 'warning' }]);
|
|
35
|
+
}
|
|
36
|
+
const rows = functions.map((fn) => [
|
|
37
|
+
fn.FunctionName ?? '(unknown)',
|
|
38
|
+
fn.Runtime ?? '(unknown)',
|
|
39
|
+
fn.MemorySize !== undefined ? String(fn.MemorySize) : '(unknown)',
|
|
40
|
+
fn.LastModified ?? '(unknown)',
|
|
41
|
+
]);
|
|
42
|
+
const tableOutput = (0, output_helpers_1.formatAsTable)(['Name', 'Runtime', 'Memory (MB)', 'Last Modified'], rows);
|
|
43
|
+
return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, functions)]);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to list Lambda functions: ${err.message ?? err}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** Sub-processor that invokes a Lambda function with an optional JSON payload. */
|
|
51
|
+
class LambdaInvokeProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
52
|
+
credentialManager;
|
|
53
|
+
command = 'invoke';
|
|
54
|
+
description = 'Invoke a Lambda function';
|
|
55
|
+
valueRequired = true;
|
|
56
|
+
parameters = [
|
|
57
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('payload', 'JSON payload to send to the function', false, 'string', ['-p']),
|
|
58
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
59
|
+
];
|
|
60
|
+
constructor(credentialManager) {
|
|
61
|
+
super();
|
|
62
|
+
this.credentialManager = credentialManager;
|
|
63
|
+
}
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
async handleAsync() {
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
/** @inheritdoc */
|
|
69
|
+
async handleStructuredAsync(command) {
|
|
70
|
+
const functionName = (0, cli_server_abstractions_1.getPositionalText)(command);
|
|
71
|
+
if (!functionName) {
|
|
72
|
+
return (0, output_helpers_1.buildErrorResponse)('Function name is required. Usage: lambda invoke <function-name>');
|
|
73
|
+
}
|
|
74
|
+
const client = this.credentialManager.getClient(client_lambda_1.LambdaClient, {
|
|
75
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
76
|
+
});
|
|
77
|
+
const payloadStr = command.args?.payload;
|
|
78
|
+
try {
|
|
79
|
+
const params = { FunctionName: functionName };
|
|
80
|
+
if (payloadStr) {
|
|
81
|
+
params.Payload = new TextEncoder().encode(payloadStr);
|
|
82
|
+
}
|
|
83
|
+
const response = await client.send(new client_lambda_1.InvokeCommand(params));
|
|
84
|
+
if (response.FunctionError) {
|
|
85
|
+
const errorBody = response.Payload
|
|
86
|
+
? new TextDecoder().decode(response.Payload)
|
|
87
|
+
: '(no details)';
|
|
88
|
+
return (0, output_helpers_1.buildErrorResponse)(`Function error (${response.FunctionError}): ${errorBody}`);
|
|
89
|
+
}
|
|
90
|
+
const resultBody = response.Payload
|
|
91
|
+
? new TextDecoder().decode(response.Payload)
|
|
92
|
+
: 'null';
|
|
93
|
+
let parsed;
|
|
94
|
+
try {
|
|
95
|
+
parsed = JSON.parse(resultBody);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
parsed = resultBody;
|
|
99
|
+
}
|
|
100
|
+
return (0, output_helpers_1.buildResponse)([
|
|
101
|
+
(0, output_helpers_1.formatAsJson)({
|
|
102
|
+
StatusCode: response.StatusCode,
|
|
103
|
+
ExecutedVersion: response.ExecutedVersion ?? '(unknown)',
|
|
104
|
+
Result: parsed,
|
|
105
|
+
}),
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to invoke function: ${err.message ?? err}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** Sub-processor that fetches recent CloudWatch logs for a Lambda function. */
|
|
114
|
+
class LambdaLogsProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
115
|
+
credentialManager;
|
|
116
|
+
command = 'logs';
|
|
117
|
+
description = 'View recent logs for a Lambda function';
|
|
118
|
+
valueRequired = true;
|
|
119
|
+
parameters = [
|
|
120
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('limit', 'Maximum number of log events (default: 50)', false, 'number', ['-l'], '50'),
|
|
121
|
+
new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
|
|
122
|
+
];
|
|
123
|
+
constructor(credentialManager) {
|
|
124
|
+
super();
|
|
125
|
+
this.credentialManager = credentialManager;
|
|
126
|
+
}
|
|
127
|
+
/** @inheritdoc */
|
|
128
|
+
async handleAsync() {
|
|
129
|
+
return '';
|
|
130
|
+
}
|
|
131
|
+
/** @inheritdoc */
|
|
132
|
+
async handleStructuredAsync(command) {
|
|
133
|
+
const functionName = (0, cli_server_abstractions_1.getPositionalText)(command);
|
|
134
|
+
if (!functionName) {
|
|
135
|
+
return (0, output_helpers_1.buildErrorResponse)('Function name is required. Usage: lambda logs <function-name>');
|
|
136
|
+
}
|
|
137
|
+
const limit = command.args?.limit ? Number(command.args.limit) : 50;
|
|
138
|
+
if (isNaN(limit) || limit <= 0) {
|
|
139
|
+
return (0, output_helpers_1.buildErrorResponse)('--limit must be a positive number.');
|
|
140
|
+
}
|
|
141
|
+
const client = this.credentialManager.getClient(client_cloudwatch_logs_1.CloudWatchLogsClient, {
|
|
142
|
+
region: command.args?.region ? String(command.args.region) : undefined,
|
|
143
|
+
});
|
|
144
|
+
const logGroupName = `/aws/lambda/${functionName}`;
|
|
145
|
+
try {
|
|
146
|
+
const response = await client.send(new client_cloudwatch_logs_1.FilterLogEventsCommand({
|
|
147
|
+
logGroupName,
|
|
148
|
+
limit,
|
|
149
|
+
}));
|
|
150
|
+
const events = response.events ?? [];
|
|
151
|
+
if (events.length === 0) {
|
|
152
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: `No log events found for ${logGroupName}.`, style: 'warning' }]);
|
|
153
|
+
}
|
|
154
|
+
const lines = events.map((event) => {
|
|
155
|
+
const timestamp = event.timestamp
|
|
156
|
+
? new Date(event.timestamp).toISOString().slice(0, 19).replace('T', ' ')
|
|
157
|
+
: '(unknown)';
|
|
158
|
+
const message = (event.message ?? '').trimEnd();
|
|
159
|
+
return `${timestamp} ${message}`;
|
|
160
|
+
});
|
|
161
|
+
return (0, output_helpers_1.buildResponse)([{ type: 'text', value: lines.join('\n') }]);
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
return (0, output_helpers_1.buildErrorResponse)(`Failed to fetch logs: ${err.message ?? err}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** Parent processor for Lambda sub-commands (list, invoke, logs). */
|
|
169
|
+
class AwsLambdaProcessor extends cli_server_abstractions_1.CliCommandProcessor {
|
|
170
|
+
command = 'lambda';
|
|
171
|
+
description = 'AWS Lambda operations — list, invoke, and view logs';
|
|
172
|
+
processors;
|
|
173
|
+
constructor(credentialManager) {
|
|
174
|
+
super();
|
|
175
|
+
this.processors = [
|
|
176
|
+
new LambdaListProcessor(credentialManager),
|
|
177
|
+
new LambdaInvokeProcessor(credentialManager),
|
|
178
|
+
new LambdaLogsProcessor(credentialManager),
|
|
179
|
+
];
|
|
180
|
+
}
|
|
181
|
+
/** @inheritdoc */
|
|
182
|
+
async handleAsync() {
|
|
183
|
+
return '';
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.AwsLambdaProcessor = AwsLambdaProcessor;
|
|
187
|
+
//# sourceMappingURL=lambda-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-processor.js","sourceRoot":"","sources":["../../src/processors/lambda-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CliCommandProcessor, ICliCommandProcessor } from '@qodalis/cli-server-abstractions';
|
|
2
|
+
import { AwsCredentialManager } from '../services/aws-credential-manager';
|
|
3
|
+
/**
|
|
4
|
+
* Parses an S3 URI (s3://bucket/key) into its bucket and key components.
|
|
5
|
+
* @param uri - The S3 URI to parse.
|
|
6
|
+
* @returns An object with `bucket` and `key` properties, or `null` if the URI is invalid.
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseS3Uri(uri: string): {
|
|
9
|
+
bucket: string;
|
|
10
|
+
key: string;
|
|
11
|
+
} | null;
|
|
12
|
+
/**
|
|
13
|
+
* Formats a byte count into a human-readable string (e.g., '1.5 MB').
|
|
14
|
+
* @param bytes - The number of bytes.
|
|
15
|
+
* @returns A formatted string with the appropriate unit.
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatBytes(bytes: number): string;
|
|
18
|
+
/** Parent processor for S3 sub-commands (ls, cp, rm, mb, rb, presign). */
|
|
19
|
+
export declare class AwsS3Processor extends CliCommandProcessor {
|
|
20
|
+
command: string;
|
|
21
|
+
description: string;
|
|
22
|
+
processors: ICliCommandProcessor[];
|
|
23
|
+
constructor(credentialManager: AwsCredentialManager);
|
|
24
|
+
/** @inheritdoc */
|
|
25
|
+
handleAsync(): Promise<string>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=s3-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-processor.d.ts","sourceRoot":"","sources":["../../src/processors/s3-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAInB,oBAAoB,EAEvB,MAAM,kCAAkC,CAAC;AAY1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAY1E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI9E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAuVD,0EAA0E;AAC1E,qBAAa,cAAe,SAAQ,mBAAmB;IACnD,OAAO,SAAQ;IACf,WAAW,SAAmE;IAC9E,UAAU,EAAE,oBAAoB,EAAE,CAAC;gBAEvB,iBAAiB,EAAE,oBAAoB;IAYnD,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}
|