Skip to content

Commit d54ee46

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/feature/service-logs-ui' into feature/service-logs-ui
2 parents 5818bbf + 576a3b6 commit d54ee46

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

bin/lib/logs.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import fs from 'fs';
22
import path from 'path';
33
import { spawn } from 'node:child_process';
44
import chalk from 'chalk';
5+
import _ from 'lodash';
56

67
// Log levels and their colors
78
const LOG_LEVELS = {
@@ -121,7 +122,8 @@ async function readLogsFromFile(filePath, options = {}) {
121122
}
122123

123124
if (options.filter) {
124-
const regex = new RegExp(options.filter, 'i');
125+
const safeFilter = _.escapeRegExp(options.filter);
126+
const regex = new RegExp(safeFilter, 'i');
125127
logs = logs.filter(log => regex.test(log.message) || regex.test(log.raw));
126128
}
127129

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
"degit": "^2.8.4",
5454
"fs-extra": "^11.3.2",
5555
"prompts": "^2.4.2",
56-
"execa": "^9.6.0"
56+
"execa": "^9.6.0",
57+
"lodash": "^4.17.21"
5758
},
5859
"devDependencies": {
5960
"vitepress": "^1.3.3",

templates/node/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dev": "node src/index.js"
77
},
88
"dependencies": {
9-
"express": "^4.19.2"
9+
"express": "^4.19.2",
10+
"express-rate-limit": "^8.2.1"
1011
}
1112
}

templates/node/src/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import express from 'express';
22
import fs from 'fs';
33
import path from 'path';
4+
import rateLimit from 'express-rate-limit';
45

56
// Initialize logger
67
let logger;
@@ -25,6 +26,13 @@ function log(level, message, data = {}) {
2526
const app = express();
2627
const port = process.env.PORT || 3001;
2728

29+
// Set up rate limiter for the /logs endpoint (max 5 requests per minute)
30+
const logsLimiter = rateLimit({
31+
windowMs: 60 * 1000, // 1 minute
32+
max: 5,
33+
message: { error: 'Too many requests, please try again later.' }
34+
});
35+
2836
// Middleware for request logging
2937
app.use((req, res, next) => {
3038
log('info', `${req.method} ${req.path}`, {
@@ -41,7 +49,7 @@ app.get('/health', (_req, res) => {
4149
res.json({ status: 'ok', service: 'node' });
4250
});
4351

44-
app.get('/logs', (req, res) => {
52+
app.get('/logs', logsLimiter, (req, res) => {
4553
try {
4654
const { tail = 50, level, since } = req.query;
4755

0 commit comments

Comments
 (0)