@inso_web/els-mcp
Version:
MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.
29 lines • 1.46 kB
TypeScript
import type { RequestHandler } from 'express';
import type { Logger } from 'pino';
import type { RedisService } from '../../cache/redis.js';
/**
* Rate-limit middleware для **будущего** Dynamic Client Registration
* endpoint (`POST /oauth/register`). DCR ещё не реализован в auth-сервисе —
* этот файл — ready-for-future stub.
*
* Алгоритм:
* - Redis-based sliding window: один счётчик per IP, ключ `mcp:dcr:rl:{ip}`.
* - INCR + EXPIRE (на первый INCR) на window секунд.
* - Если current > limit → 429 + `Retry-After`.
* - Если Redis недоступен → fail-open (предупреждаем в log).
*
* Default лимит: 10 регистраций / час / IP. Можно тюнить через опции.
*
* NB: Подключать middleware ТОЛЬКО когда `/oauth/register` появится.
* Сейчас файл существует, но не используется в `http/app.ts`.
*/
export interface CreateDcrRateLimitOptions {
redis?: RedisService | null;
/** Лимит запросов на окно. Default 10. */
limit?: number;
/** Длина окна в секундах. Default 3600 (1 час). */
windowSec?: number;
log?: Logger;
}
export declare function createDcrRateLimit(opts?: CreateDcrRateLimitOptions): RequestHandler;
//# sourceMappingURL=dcrRateLimit.d.ts.map