@quiltdata/benchling-webhook 0.9.3-20251217T064628Z → 0.9.3
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/bin/cli.js +3 -10
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/logs.d.ts +0 -1
- package/dist/bin/commands/logs.d.ts.map +1 -1
- package/dist/bin/commands/logs.js +54 -259
- package/dist/bin/commands/logs.js.map +1 -1
- package/dist/bin/commands/status.d.ts +0 -5
- package/dist/bin/commands/status.d.ts.map +1 -1
- package/dist/bin/commands/status.js +2 -56
- package/dist/bin/commands/status.js.map +1 -1
- package/dist/lib/utils/ecs-service-discovery.d.ts +0 -33
- package/dist/lib/utils/ecs-service-discovery.d.ts.map +1 -1
- package/dist/lib/utils/ecs-service-discovery.js +0 -319
- package/dist/lib/utils/ecs-service-discovery.js.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.d.ts.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.js +4 -42
- package/dist/lib/wizard/phase3-parameter-collection.js.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.js +0 -46
- package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.js +0 -15
- package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
- package/dist/package.json +1 -3
- package/package.json +1 -3
package/dist/bin/cli.js
CHANGED
|
@@ -52,7 +52,6 @@ const install_1 = require("./commands/install");
|
|
|
52
52
|
const status_1 = require("./commands/status");
|
|
53
53
|
const logs_1 = require("./commands/logs");
|
|
54
54
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
55
|
-
const DEFAULT_LOG_LIMIT = 5; // Number of log entries to show per log group (health checks dominate, so keep this small)
|
|
56
55
|
const program = new commander_1.Command();
|
|
57
56
|
program
|
|
58
57
|
.name("benchling-webhook")
|
|
@@ -224,9 +223,8 @@ program
|
|
|
224
223
|
.option("--type <type>", "Log group to view: all (default), ecs, api, api-exec", "all")
|
|
225
224
|
.option("--since <time>", "Time period to fetch logs (examples: 5m, 1h, 2d)", "5m")
|
|
226
225
|
.option("--filter <pattern>", "Filter logs by pattern (example: ERROR)")
|
|
227
|
-
.option("--limit <n>",
|
|
226
|
+
.option("--limit <n>", "Number of log entries to show per log group (default: 5)", "5")
|
|
228
227
|
.option("--timer <seconds>", "Auto-refresh interval in seconds (default: 10, use 0 to disable)", "10")
|
|
229
|
-
.option("--include-health", "Include health check logs (excluded by default)", false)
|
|
230
228
|
.addHelpText("after", `
|
|
231
229
|
|
|
232
230
|
Log Types:
|
|
@@ -235,8 +233,6 @@ Log Types:
|
|
|
235
233
|
api API Gateway access logs (request/response info)
|
|
236
234
|
api-exec API Gateway execution logs (detailed debugging)
|
|
237
235
|
|
|
238
|
-
Note: Health check logs are automatically filtered out by default. Use --include-health to show them.
|
|
239
|
-
|
|
240
236
|
Examples:
|
|
241
237
|
View all logs (auto-refreshes every 10 seconds):
|
|
242
238
|
$ npx @quiltdata/benchling-webhook logs --profile sales
|
|
@@ -244,11 +240,8 @@ Examples:
|
|
|
244
240
|
View only ECS logs:
|
|
245
241
|
$ npx @quiltdata/benchling-webhook logs --profile sales --type ecs
|
|
246
242
|
|
|
247
|
-
Show last
|
|
248
|
-
$ npx @quiltdata/benchling-webhook logs --profile sales --limit
|
|
249
|
-
|
|
250
|
-
Include health check logs:
|
|
251
|
-
$ npx @quiltdata/benchling-webhook logs --profile sales --include-health
|
|
243
|
+
Show last 10 entries per log group:
|
|
244
|
+
$ npx @quiltdata/benchling-webhook logs --profile sales --limit 10
|
|
252
245
|
|
|
253
246
|
Disable auto-refresh (single snapshot):
|
|
254
247
|
$ npx @quiltdata/benchling-webhook logs --profile sales --timer 0
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../bin/commands/logs.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAIH,OAAO,EAGH,KAAK,gBAAgB,EACxB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../bin/commands/logs.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAIH,OAAO,EAGH,KAAK,gBAAgB,EACxB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAwVD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmMvF"}
|
|
@@ -22,10 +22,7 @@ const xdg_config_1 = require("../../lib/xdg-config");
|
|
|
22
22
|
const ecs_service_discovery_1 = require("../../lib/utils/ecs-service-discovery");
|
|
23
23
|
const time_format_1 = require("../../lib/utils/time-format");
|
|
24
24
|
const cli_helpers_1 = require("../../lib/utils/cli-helpers");
|
|
25
|
-
const status_1 = require("./status");
|
|
26
25
|
const STACK_NAME = "BenchlingWebhookStack";
|
|
27
|
-
const DEFAULT_LOG_LIMIT = 20; // Number of meaningful log entries to show per log group (after filtering health checks)
|
|
28
|
-
const FETCH_LIMIT = 100; // Fetch more logs to ensure we get meaningful entries after filtering
|
|
29
26
|
/**
|
|
30
27
|
* Get AWS region and deployment info from profile configuration
|
|
31
28
|
*/
|
|
@@ -35,8 +32,6 @@ function getDeploymentInfo(profile, configStorage) {
|
|
|
35
32
|
if (config.deployment?.region) {
|
|
36
33
|
const region = config.deployment.region;
|
|
37
34
|
const integratedMode = config.integratedStack || false;
|
|
38
|
-
// Get catalog DNS from config
|
|
39
|
-
const catalogDns = config.quilt?.catalog;
|
|
40
35
|
// Try to get webhook endpoint from deployment tracking
|
|
41
36
|
let webhookEndpoint;
|
|
42
37
|
const deployments = configStorage.getDeployments(profile);
|
|
@@ -57,8 +52,6 @@ function getDeploymentInfo(profile, configStorage) {
|
|
|
57
52
|
integratedMode: true,
|
|
58
53
|
quiltStackName: match[1],
|
|
59
54
|
webhookEndpoint,
|
|
60
|
-
catalogDns,
|
|
61
|
-
stackArn: config.quilt.stackArn,
|
|
62
55
|
};
|
|
63
56
|
}
|
|
64
57
|
}
|
|
@@ -68,7 +61,6 @@ function getDeploymentInfo(profile, configStorage) {
|
|
|
68
61
|
stackName: STACK_NAME,
|
|
69
62
|
integratedMode: false,
|
|
70
63
|
webhookEndpoint,
|
|
71
|
-
catalogDns,
|
|
72
64
|
};
|
|
73
65
|
}
|
|
74
66
|
}
|
|
@@ -78,32 +70,6 @@ function getDeploymentInfo(profile, configStorage) {
|
|
|
78
70
|
}
|
|
79
71
|
return null;
|
|
80
72
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Query webhook URL from CloudFormation stack outputs (for integrated mode)
|
|
83
|
-
*/
|
|
84
|
-
async function queryWebhookEndpoint(stackArn, region, awsProfile) {
|
|
85
|
-
try {
|
|
86
|
-
const clientConfig = { region };
|
|
87
|
-
if (awsProfile) {
|
|
88
|
-
clientConfig.credentials = (0, credential_providers_1.fromIni)({ profile: awsProfile });
|
|
89
|
-
}
|
|
90
|
-
const cfClient = new client_cloudformation_1.CloudFormationClient(clientConfig);
|
|
91
|
-
const command = new client_cloudformation_1.DescribeStacksCommand({ StackName: stackArn });
|
|
92
|
-
const response = await cfClient.send(command);
|
|
93
|
-
const stack = response.Stacks?.[0];
|
|
94
|
-
if (stack?.Outputs) {
|
|
95
|
-
// Look for BenchlingWebhookEndpoint, WebhookEndpoint, or BenchlingUrl
|
|
96
|
-
const webhookOutput = stack.Outputs.find((o) => o.OutputKey === "BenchlingWebhookEndpoint" ||
|
|
97
|
-
o.OutputKey === "WebhookEndpoint" ||
|
|
98
|
-
o.OutputKey === "BenchlingUrl");
|
|
99
|
-
return webhookOutput?.OutputValue;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
console.warn(chalk_1.default.dim(`Could not query webhook URL from stack: ${error.message}`));
|
|
104
|
-
}
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
73
|
/**
|
|
108
74
|
* Double the time range, capping at 7 days
|
|
109
75
|
*/
|
|
@@ -121,14 +87,9 @@ function expandTimeRange(currentSince) {
|
|
|
121
87
|
*/
|
|
122
88
|
async function getLogGroupsFromStack(stackName, region, integratedMode, awsProfile) {
|
|
123
89
|
try {
|
|
124
|
-
// For integrated mode,
|
|
90
|
+
// For integrated mode, use shared ECS service discovery
|
|
125
91
|
if (integratedMode) {
|
|
126
|
-
|
|
127
|
-
(0, ecs_service_discovery_1.discoverECSServiceLogGroups)(stackName, region, awsProfile),
|
|
128
|
-
(0, ecs_service_discovery_1.discoverAPIGatewayLogGroups)(stackName, region, awsProfile),
|
|
129
|
-
]);
|
|
130
|
-
// Merge both log group collections
|
|
131
|
-
return { ...ecsLogGroups, ...apiGatewayLogGroups };
|
|
92
|
+
return await (0, ecs_service_discovery_1.discoverECSServiceLogGroups)(stackName, region, awsProfile);
|
|
132
93
|
}
|
|
133
94
|
// For standalone mode, use stack outputs
|
|
134
95
|
const clientConfig = { region };
|
|
@@ -163,22 +124,10 @@ async function getLogGroupsFromStack(stackName, region, integratedMode, awsProfi
|
|
|
163
124
|
return {};
|
|
164
125
|
}
|
|
165
126
|
}
|
|
166
|
-
/**
|
|
167
|
-
* Check if a log message is a health check
|
|
168
|
-
*/
|
|
169
|
-
function isHealthCheck(message) {
|
|
170
|
-
const healthCheckPatterns = [
|
|
171
|
-
/GET\s+\/health/i,
|
|
172
|
-
/GET\s+\/healthcheck/i,
|
|
173
|
-
/ELB-HealthChecker/i,
|
|
174
|
-
/"GET\s+\/\s+HTTP/i, // Root path health checks
|
|
175
|
-
];
|
|
176
|
-
return healthCheckPatterns.some((pattern) => pattern.test(message));
|
|
177
|
-
}
|
|
178
127
|
/**
|
|
179
128
|
* Fetch logs from a single log group
|
|
180
129
|
*/
|
|
181
|
-
async function fetchLogsFromGroup(logGroupName, region, since, limit,
|
|
130
|
+
async function fetchLogsFromGroup(logGroupName, region, since, limit, filterPattern, awsProfile) {
|
|
182
131
|
try {
|
|
183
132
|
const clientConfig = { region };
|
|
184
133
|
if (awsProfile) {
|
|
@@ -186,26 +135,14 @@ async function fetchLogsFromGroup(logGroupName, region, since, limit, includeHea
|
|
|
186
135
|
}
|
|
187
136
|
const logsClient = new client_cloudwatch_logs_1.CloudWatchLogsClient(clientConfig);
|
|
188
137
|
const startTime = Date.now() - (0, time_format_1.parseTimeRange)(since);
|
|
189
|
-
// Fetch more logs than needed to account for filtering
|
|
190
|
-
const fetchLimit = includeHealth ? limit : FETCH_LIMIT;
|
|
191
138
|
const command = new client_cloudwatch_logs_1.FilterLogEventsCommand({
|
|
192
139
|
logGroupName,
|
|
193
140
|
startTime,
|
|
194
141
|
filterPattern,
|
|
195
|
-
limit
|
|
142
|
+
limit,
|
|
196
143
|
});
|
|
197
144
|
const response = await logsClient.send(command);
|
|
198
|
-
|
|
199
|
-
// Sort by timestamp descending (most recent first) BEFORE filtering
|
|
200
|
-
// This ensures we filter from the most recent logs, not oldest
|
|
201
|
-
events.sort((a, b) => (b.timestamp || 0) - (a.timestamp || 0));
|
|
202
|
-
// Filter out health checks unless explicitly requested
|
|
203
|
-
if (!includeHealth) {
|
|
204
|
-
events = events.filter((event) => !isHealthCheck(event.message || ""));
|
|
205
|
-
}
|
|
206
|
-
// Limit to the requested number of entries
|
|
207
|
-
events = events.slice(0, limit);
|
|
208
|
-
return events;
|
|
145
|
+
return response.events || [];
|
|
209
146
|
}
|
|
210
147
|
catch (error) {
|
|
211
148
|
console.warn(chalk_1.default.dim(`Could not fetch logs from ${logGroupName}: ${error.message}`));
|
|
@@ -215,33 +152,18 @@ async function fetchLogsFromGroup(logGroupName, region, since, limit, includeHea
|
|
|
215
152
|
/**
|
|
216
153
|
* Display logs in organized sections
|
|
217
154
|
*/
|
|
218
|
-
function displayLogs(logGroups, profile, region, since, limit, webhookEndpoint,
|
|
155
|
+
function displayLogs(logGroups, profile, region, since, limit, webhookEndpoint, expanded) {
|
|
219
156
|
const timeStr = (0, time_format_1.formatLocalDateTime)(new Date());
|
|
220
157
|
const timezone = (0, time_format_1.getLocalTimezone)();
|
|
221
158
|
console.log(chalk_1.default.bold(`\nLogs for Profile: ${profile} @ ${timeStr} (${timezone})\n`));
|
|
222
159
|
console.log(chalk_1.default.dim("─".repeat(80)));
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
console.log(`${dnsText} ${webhookText}`.trim());
|
|
160
|
+
// Show webhook URL prominently at the top
|
|
161
|
+
if (webhookEndpoint) {
|
|
162
|
+
console.log(`${chalk_1.default.bold("Webhook URL:")} ${chalk_1.default.cyan(webhookEndpoint)}`);
|
|
163
|
+
console.log(chalk_1.default.dim("─".repeat(80)));
|
|
228
164
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
? rolloutStatus === "COMPLETED"
|
|
232
|
-
? chalk_1.default.green("✓")
|
|
233
|
-
: rolloutStatus === "FAILED"
|
|
234
|
-
? chalk_1.default.red("✗ FAILED")
|
|
235
|
-
: chalk_1.default.yellow("⟳ " + rolloutStatus)
|
|
236
|
-
: "";
|
|
237
|
-
const expandedText = expanded ? chalk_1.default.yellow(" (auto-expanded)") : "";
|
|
238
|
-
// Strip UUID from stack ARN for cleaner display
|
|
239
|
-
// arn:aws:cloudformation:us-east-2:712023778557:stack/tf-dev-bench2/4c744610... -> arn:aws:cloudformation:us-east-2:712023778557:stack/tf-dev-bench2
|
|
240
|
-
const cleanStackArn = stackArn ? stackArn.replace(/\/[a-f0-9-]{36}$/, "") : undefined;
|
|
241
|
-
const stackText = cleanStackArn ? `${chalk_1.default.bold("Stack:")} ${chalk_1.default.cyan(cleanStackArn)}` : `${chalk_1.default.bold("Region:")} ${chalk_1.default.cyan(region)}`;
|
|
242
|
-
console.log(`${stackText} ` +
|
|
243
|
-
`${chalk_1.default.bold("Range:")} ${chalk_1.default.cyan(`Last ${since}`)}${expandedText} ` +
|
|
244
|
-
`${chalk_1.default.bold("Tail:")} ${chalk_1.default.cyan(`~${limit}`)}${rolloutText ? ` ${chalk_1.default.bold("Status:")} ${rolloutText}` : ""}`);
|
|
165
|
+
console.log(`${chalk_1.default.bold("Region:")} ${chalk_1.default.cyan(region)} ${chalk_1.default.bold("Time Range:")} ${chalk_1.default.cyan(`Last ${since}`)}${expanded ? chalk_1.default.yellow(" (auto-expanded)") : ""}`);
|
|
166
|
+
console.log(`${chalk_1.default.bold("Showing:")} ${chalk_1.default.cyan(`Last ~${limit} entries per log group`)}`);
|
|
245
167
|
console.log(chalk_1.default.dim("─".repeat(80)));
|
|
246
168
|
console.log("");
|
|
247
169
|
// Display each log group in its own section
|
|
@@ -258,76 +180,22 @@ function displayLogs(logGroups, profile, region, since, limit, webhookEndpoint,
|
|
|
258
180
|
if (!entry.timestamp || !entry.message)
|
|
259
181
|
continue;
|
|
260
182
|
const timeDisplay = (0, time_format_1.formatLocalTime)(entry.timestamp);
|
|
183
|
+
// Color code by log level if detectable
|
|
261
184
|
let message = entry.message.trim();
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
try {
|
|
266
|
-
parsedLog = JSON.parse(message);
|
|
267
|
-
isJsonLog = true;
|
|
185
|
+
let messageColor = chalk_1.default.white;
|
|
186
|
+
if (message.includes("ERROR") || message.includes("CRITICAL")) {
|
|
187
|
+
messageColor = chalk_1.default.red;
|
|
268
188
|
}
|
|
269
|
-
|
|
270
|
-
|
|
189
|
+
else if (message.includes("WARNING") || message.includes("WARN")) {
|
|
190
|
+
messageColor = chalk_1.default.yellow;
|
|
271
191
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
// API Gateway access log format
|
|
275
|
-
const ip = parsedLog.ip;
|
|
276
|
-
const httpMethod = parsedLog.httpMethod;
|
|
277
|
-
const resourcePath = parsedLog.resourcePath;
|
|
278
|
-
const status = parsedLog.status;
|
|
279
|
-
const requestTime = parsedLog.requestTime;
|
|
280
|
-
const responseLength = parsedLog.responseLength;
|
|
281
|
-
const protocol = parsedLog.protocol;
|
|
282
|
-
// Color code by status
|
|
283
|
-
let statusColor = chalk_1.default.white;
|
|
284
|
-
if (status) {
|
|
285
|
-
if (status >= 500) {
|
|
286
|
-
statusColor = chalk_1.default.red.bold;
|
|
287
|
-
}
|
|
288
|
-
else if (status >= 400) {
|
|
289
|
-
statusColor = chalk_1.default.yellow;
|
|
290
|
-
}
|
|
291
|
-
else if (status >= 300) {
|
|
292
|
-
statusColor = chalk_1.default.cyan;
|
|
293
|
-
}
|
|
294
|
-
else if (status >= 200) {
|
|
295
|
-
statusColor = chalk_1.default.green;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
// Build formatted log line
|
|
299
|
-
const parts = [];
|
|
300
|
-
if (ip)
|
|
301
|
-
parts.push(chalk_1.default.dim(`IP: ${ip}`));
|
|
302
|
-
if (httpMethod && resourcePath)
|
|
303
|
-
parts.push(`${chalk_1.default.bold(httpMethod)} ${resourcePath}`);
|
|
304
|
-
if (status)
|
|
305
|
-
parts.push(`${statusColor(status.toString())}`);
|
|
306
|
-
if (responseLength !== undefined)
|
|
307
|
-
parts.push(chalk_1.default.dim(`${responseLength} bytes`));
|
|
308
|
-
if (protocol)
|
|
309
|
-
parts.push(chalk_1.default.dim(protocol));
|
|
310
|
-
if (requestTime)
|
|
311
|
-
parts.push(chalk_1.default.dim(`(${requestTime})`));
|
|
312
|
-
console.log(` ${chalk_1.default.dim(timeDisplay)} ${parts.join(" ")}`);
|
|
192
|
+
else if (message.includes("INFO")) {
|
|
193
|
+
messageColor = chalk_1.default.cyan;
|
|
313
194
|
}
|
|
314
|
-
else {
|
|
315
|
-
|
|
316
|
-
let messageColor = chalk_1.default.white;
|
|
317
|
-
if (message.includes("ERROR") || message.includes("CRITICAL")) {
|
|
318
|
-
messageColor = chalk_1.default.red;
|
|
319
|
-
}
|
|
320
|
-
else if (message.includes("WARNING") || message.includes("WARN")) {
|
|
321
|
-
messageColor = chalk_1.default.yellow;
|
|
322
|
-
}
|
|
323
|
-
else if (message.includes("INFO")) {
|
|
324
|
-
messageColor = chalk_1.default.cyan;
|
|
325
|
-
}
|
|
326
|
-
else if (message.includes("DEBUG")) {
|
|
327
|
-
messageColor = chalk_1.default.dim;
|
|
328
|
-
}
|
|
329
|
-
console.log(` ${chalk_1.default.dim(timeDisplay)} ${messageColor(message)}`);
|
|
195
|
+
else if (message.includes("DEBUG")) {
|
|
196
|
+
messageColor = chalk_1.default.dim;
|
|
330
197
|
}
|
|
198
|
+
console.log(` ${chalk_1.default.dim(timeDisplay)} ${messageColor(message)}`);
|
|
331
199
|
}
|
|
332
200
|
console.log("");
|
|
333
201
|
}
|
|
@@ -336,83 +204,38 @@ function displayLogs(logGroups, profile, region, since, limit, webhookEndpoint,
|
|
|
336
204
|
/**
|
|
337
205
|
* Fetch logs from all relevant log groups
|
|
338
206
|
*/
|
|
339
|
-
async function fetchAllLogs(stackName, region, since, limit, type, integratedMode,
|
|
207
|
+
async function fetchAllLogs(stackName, region, since, limit, type, integratedMode, filterPattern, awsProfile) {
|
|
340
208
|
// Get log groups from stack
|
|
341
209
|
const discoveredLogGroups = await getLogGroupsFromStack(stackName, region, integratedMode, awsProfile);
|
|
342
210
|
const result = [];
|
|
343
211
|
// For integrated mode, query all discovered log groups
|
|
344
212
|
if (integratedMode) {
|
|
345
|
-
// Deduplicate log groups (multiple ECS services may share the same log group)
|
|
346
|
-
const uniqueLogGroups = new Map();
|
|
347
|
-
for (const [serviceName, logGroupName] of Object.entries(discoveredLogGroups)) {
|
|
348
|
-
// Keep the first service name for each unique log group
|
|
349
|
-
if (!uniqueLogGroups.has(logGroupName)) {
|
|
350
|
-
uniqueLogGroups.set(logGroupName, serviceName);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
213
|
// If type is specified and not "all", filter to only matching services
|
|
354
|
-
const logGroupEntries =
|
|
214
|
+
const logGroupEntries = Object.entries(discoveredLogGroups);
|
|
355
215
|
for (const [serviceName, logGroupName] of logGroupEntries) {
|
|
356
|
-
// Determine log type
|
|
357
|
-
let logType = "ecs";
|
|
358
|
-
if (serviceName.includes("api-gateway")) {
|
|
359
|
-
logType = "api-gateway";
|
|
360
|
-
}
|
|
361
216
|
// If type filter is specified, only show matching services
|
|
362
217
|
if (type !== "all") {
|
|
363
|
-
// For integrated mode
|
|
364
|
-
// -
|
|
365
|
-
|
|
366
|
-
// - "api-exec" type shows API Gateway execution logs
|
|
367
|
-
if (type === "ecs" && logType !== "ecs") {
|
|
368
|
-
continue;
|
|
369
|
-
}
|
|
370
|
-
if ((type === "api" || type === "api-exec") && logType !== "api-gateway") {
|
|
371
|
-
continue;
|
|
372
|
-
}
|
|
373
|
-
// For API Gateway, further filter by access vs execution
|
|
374
|
-
if (type === "api" && !serviceName.includes("access")) {
|
|
375
|
-
continue;
|
|
376
|
-
}
|
|
377
|
-
if (type === "api-exec" && !serviceName.includes("execution")) {
|
|
218
|
+
// For integrated mode, "ecs" type shows all ECS services
|
|
219
|
+
// Other types (api, api-exec) are not available in integrated mode
|
|
220
|
+
if (type !== "ecs") {
|
|
378
221
|
continue;
|
|
379
222
|
}
|
|
380
223
|
}
|
|
381
|
-
// Fetch logs from this group
|
|
382
|
-
const entries = await fetchLogsFromGroup(logGroupName, region, since, limit,
|
|
383
|
-
//
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
else {
|
|
393
|
-
displayName = "API Gateway Logs";
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
else {
|
|
397
|
-
// ECS service - use log group name for shared log groups
|
|
398
|
-
// If log group name looks like a simple identifier, use it directly
|
|
399
|
-
if (logGroupName.includes("/") || logGroupName.startsWith("ecs-")) {
|
|
400
|
-
// Standard ECS log group format - extract friendly name from service
|
|
401
|
-
displayName = serviceName
|
|
402
|
-
.split("-")
|
|
403
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
404
|
-
.join(" ");
|
|
405
|
-
displayName = `${displayName} (ECS)`;
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
// Simple shared log group name - use it directly
|
|
409
|
-
displayName = `${logGroupName} (ECS)`;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
224
|
+
// Fetch logs from this group
|
|
225
|
+
const entries = await fetchLogsFromGroup(logGroupName, region, since, limit, filterPattern, awsProfile);
|
|
226
|
+
// Sort by timestamp descending (most recent first) and limit
|
|
227
|
+
const sortedEntries = entries
|
|
228
|
+
.sort((a, b) => (b.timestamp || 0) - (a.timestamp || 0))
|
|
229
|
+
.slice(0, limit);
|
|
230
|
+
// Create friendly display name from service name
|
|
231
|
+
const displayName = serviceName
|
|
232
|
+
.split("-")
|
|
233
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
234
|
+
.join(" ");
|
|
412
235
|
result.push({
|
|
413
236
|
name: logGroupName,
|
|
414
|
-
displayName
|
|
415
|
-
entries,
|
|
237
|
+
displayName: `${displayName} (ECS)`,
|
|
238
|
+
entries: sortedEntries,
|
|
416
239
|
});
|
|
417
240
|
}
|
|
418
241
|
return result;
|
|
@@ -442,12 +265,16 @@ async function fetchAllLogs(stackName, region, since, limit, type, integratedMod
|
|
|
442
265
|
default:
|
|
443
266
|
displayName = logType;
|
|
444
267
|
}
|
|
445
|
-
// Fetch logs from this group
|
|
446
|
-
const entries = await fetchLogsFromGroup(logGroupName, region, since, limit,
|
|
268
|
+
// Fetch logs from this group
|
|
269
|
+
const entries = await fetchLogsFromGroup(logGroupName, region, since, limit, filterPattern, awsProfile);
|
|
270
|
+
// Sort by timestamp descending (most recent first) and limit
|
|
271
|
+
const sortedEntries = entries
|
|
272
|
+
.sort((a, b) => (b.timestamp || 0) - (a.timestamp || 0))
|
|
273
|
+
.slice(0, limit);
|
|
447
274
|
result.push({
|
|
448
275
|
name: logGroupName,
|
|
449
276
|
displayName,
|
|
450
|
-
entries,
|
|
277
|
+
entries: sortedEntries,
|
|
451
278
|
});
|
|
452
279
|
}
|
|
453
280
|
return result;
|
|
@@ -456,7 +283,7 @@ async function fetchAllLogs(stackName, region, since, limit, type, integratedMod
|
|
|
456
283
|
* Logs command implementation
|
|
457
284
|
*/
|
|
458
285
|
async function logsCommand(options = {}) {
|
|
459
|
-
const { profile = "default", awsProfile, type = "all", since = "5m", filter, follow = false, timer, limit =
|
|
286
|
+
const { profile = "default", awsProfile, type = "all", since = "5m", filter, follow = false, timer, limit = 5, configStorage, } = options;
|
|
460
287
|
// Validate log type
|
|
461
288
|
if (!["ecs", "api", "api-exec", "authorizer", "all"].includes(type)) {
|
|
462
289
|
const errorMsg = "Invalid log type. Must be 'ecs', 'api', 'api-exec', 'authorizer', or 'all'";
|
|
@@ -485,33 +312,9 @@ async function logsCommand(options = {}) {
|
|
|
485
312
|
console.error(chalk_1.default.red(`\n❌ ${errorMsg}\n`));
|
|
486
313
|
return { success: false, error: errorMsg };
|
|
487
314
|
}
|
|
488
|
-
|
|
489
|
-
// For integrated mode,
|
|
490
|
-
|
|
491
|
-
webhookEndpoint = await queryWebhookEndpoint(stackArn, region, awsProfile);
|
|
492
|
-
// Cache the webhook URL in deployments.json for future lookups
|
|
493
|
-
if (webhookEndpoint) {
|
|
494
|
-
try {
|
|
495
|
-
xdg.recordDeployment(profile, {
|
|
496
|
-
stage: "prod",
|
|
497
|
-
endpoint: webhookEndpoint,
|
|
498
|
-
timestamp: new Date().toISOString(),
|
|
499
|
-
imageTag: "integrated", // Marker for integrated stack (no image deployment)
|
|
500
|
-
stackName: quiltStackName || "QuiltStack",
|
|
501
|
-
region,
|
|
502
|
-
});
|
|
503
|
-
}
|
|
504
|
-
catch (error) {
|
|
505
|
-
// Non-fatal - just means we'll query again next time
|
|
506
|
-
console.warn(chalk_1.default.dim(`Could not cache webhook URL: ${error.message}`));
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
// For integrated mode, use full stack ARN if available (for API Gateway discovery),
|
|
511
|
-
// otherwise use extracted stack name; for standalone use BenchlingWebhookStack
|
|
512
|
-
const stackName = integratedMode && stackArn ? stackArn :
|
|
513
|
-
integratedMode && quiltStackName ? quiltStackName :
|
|
514
|
-
STACK_NAME;
|
|
315
|
+
const { region, integratedMode, quiltStackName, webhookEndpoint } = deploymentInfo;
|
|
316
|
+
// For integrated mode, use Quilt stack name; for standalone use BenchlingWebhookStack
|
|
317
|
+
const stackName = integratedMode && quiltStackName ? quiltStackName : STACK_NAME;
|
|
515
318
|
// Parse timer value
|
|
516
319
|
const refreshInterval = (0, cli_helpers_1.parseTimerValue)(timer);
|
|
517
320
|
// Setup Ctrl+C handler for graceful exit
|
|
@@ -533,7 +336,7 @@ async function logsCommand(options = {}) {
|
|
|
533
336
|
(0, cli_helpers_1.clearScreen)();
|
|
534
337
|
}
|
|
535
338
|
// Fetch logs from all relevant log groups
|
|
536
|
-
const logGroups = await fetchAllLogs(stackName, region, currentSince, limit, type, integratedMode,
|
|
339
|
+
const logGroups = await fetchAllLogs(stackName, region, currentSince, limit, type, integratedMode, filter, awsProfile);
|
|
537
340
|
// Check if any log group has entries
|
|
538
341
|
const totalEntries = logGroups.reduce((sum, lg) => sum + lg.entries.length, 0);
|
|
539
342
|
const hasLogs = totalEntries > 0;
|
|
@@ -578,16 +381,8 @@ async function logsCommand(options = {}) {
|
|
|
578
381
|
await (0, cli_helpers_1.sleep)(500);
|
|
579
382
|
continue;
|
|
580
383
|
}
|
|
581
|
-
// Fetch ECS rollout status (optional, non-blocking)
|
|
582
|
-
let rolloutStatus;
|
|
583
|
-
try {
|
|
584
|
-
rolloutStatus = await (0, status_1.getEcsRolloutStatus)(integratedMode && quiltStackName ? quiltStackName : STACK_NAME, region, awsProfile);
|
|
585
|
-
}
|
|
586
|
-
catch {
|
|
587
|
-
// Silently ignore errors - rollout status is optional
|
|
588
|
-
}
|
|
589
384
|
// Display logs
|
|
590
|
-
displayLogs(logGroups, profile, region, currentSince, limit, webhookEndpoint,
|
|
385
|
+
displayLogs(logGroups, profile, region, currentSince, limit, webhookEndpoint, wasExpanded);
|
|
591
386
|
result.logGroups = logGroups;
|
|
592
387
|
// If no logs found at max range, show helpful message
|
|
593
388
|
if (!hasLogs && currentSince === "7d") {
|