@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 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>", `Number of log entries to show per log group (default: ${DEFAULT_LOG_LIMIT})`, String(DEFAULT_LOG_LIMIT))
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 20 meaningful entries (excluding health checks):
248
- $ npx @quiltdata/benchling-webhook logs --profile sales --limit 20
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
@@ -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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"}
@@ -21,7 +21,6 @@ export interface LogsCommandOptions {
21
21
  configStorage?: XDGBase;
22
22
  timer?: string | number;
23
23
  limit?: number;
24
- includeHealth?: boolean;
25
24
  }
26
25
  export interface LogsResult {
27
26
  success: boolean;
@@ -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;AAUlD,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;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;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;AAkhBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0OvF"}
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, discover both ECS services and API Gateway logs
90
+ // For integrated mode, use shared ECS service discovery
125
91
  if (integratedMode) {
126
- const [ecsLogGroups, apiGatewayLogGroups] = await Promise.all([
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, includeHealth, filterPattern, awsProfile) {
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: fetchLimit,
142
+ limit,
196
143
  });
197
144
  const response = await logsClient.send(command);
198
- let events = response.events || [];
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, catalogDns, expanded, rolloutStatus, stackArn) {
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
- // Compact header: Catalog DNS and Webhook URL on one line
224
- const dnsText = catalogDns ? `${chalk_1.default.bold("Catalog:")} ${chalk_1.default.cyan(catalogDns)}` : "";
225
- const webhookText = webhookEndpoint ? `${chalk_1.default.bold("Webhook:")} ${chalk_1.default.cyan(webhookEndpoint)}` : "";
226
- if (dnsText || webhookText) {
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
- // Second line: Stack ARN (or Region), Time Range, Limit, and Rollout Status
230
- const rolloutText = rolloutStatus
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
- // Try to parse as JSON (API Gateway access logs are JSON formatted)
263
- let isJsonLog = false;
264
- let parsedLog = null;
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
- catch {
270
- // Not JSON, treat as plain text
189
+ else if (message.includes("WARNING") || message.includes("WARN")) {
190
+ messageColor = chalk_1.default.yellow;
271
191
  }
272
- // Format JSON logs in a more readable way
273
- if (isJsonLog && parsedLog) {
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
- // Plain text log - color code by log level if detectable
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, includeHealth, filterPattern, awsProfile) {
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 = Array.from(uniqueLogGroups.entries()).map(([logGroupName, serviceName]) => [serviceName, logGroupName]);
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
- // - "ecs" type shows all ECS services
365
- // - "api" type shows API Gateway access logs
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 (already sorted and limited)
382
- const entries = await fetchLogsFromGroup(logGroupName, region, since, limit, includeHealth, filterPattern, awsProfile);
383
- // Create friendly display name
384
- let displayName;
385
- if (logType === "api-gateway") {
386
- if (serviceName.includes("access")) {
387
- displayName = "API Gateway Access Logs";
388
- }
389
- else if (serviceName.includes("execution")) {
390
- displayName = "API Gateway Execution Logs";
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 (already sorted and limited)
446
- const entries = await fetchLogsFromGroup(logGroupName, region, since, limit, includeHealth, filterPattern, awsProfile);
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 = DEFAULT_LOG_LIMIT, configStorage, includeHealth = false, } = options;
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
- let { region, integratedMode, quiltStackName, webhookEndpoint, catalogDns, stackArn } = deploymentInfo;
489
- // For integrated mode, query webhook URL from CloudFormation if not in deployments.json
490
- if (integratedMode && !webhookEndpoint && stackArn) {
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, includeHealth, filter, awsProfile);
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, catalogDns, wasExpanded, rolloutStatus, stackArn);
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") {