fix(api): also rate limit etapi docs endpoint

This commit is contained in:
perf3ct 2025-07-14 21:12:00 +00:00
parent df2cede075
commit 3f5df18d6c
No known key found for this signature in database
GPG Key ID: 569C4EEC436F5232

View File

@ -3,12 +3,18 @@ import type { Router } from "express";
import fs from "fs";
import path from "path";
import { RESOURCE_DIR } from "../services/resource_dir";
import rateLimit from "express-rate-limit";
const specPath = path.join(RESOURCE_DIR, "etapi.openapi.yaml");
let spec: string | null = null;
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
});
function register(router: Router) {
router.get("/etapi/etapi.openapi.yaml", (_, res) => {
router.get("/etapi/etapi.openapi.yaml", limiter, (_, res) => {
if (!spec) {
spec = fs.readFileSync(specPath, "utf8");
}