UNPKG

@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-запуска.

55 lines 2.37 kB
/** * Audit chain verification. * * Проходит по строкам `mcp_audit.audit_log` в порядке `createdAt ASC` для * заданного `appId` (и опционального диапазона дат) и проверяет, что * `rowHash = sha256(prevRowHash + content)` совпадает со stored значением. * * Используется: * - в CLI команде `els-mcp verify-audit --app=X --from=Y --to=Z` * (см. `src/cli.ts`) * - в smoke / health-check скриптах * * Поведение при отсутствии Prisma client — корректно возвращает пустой * результат с `prismaAvailable=false`. */ import type { Logger } from 'pino'; import { type McpPrismaClient } from './prisma.js'; export interface VerifyChainOptions { appId: string; /** ISO-дата (inclusive). Если не задана — с начала. */ from?: string | Date; /** ISO-дата (exclusive). Если не задана — до конца. */ to?: string | Date; /** Batch size для пагинации. Default 1000. */ batchSize?: number; databaseUrl?: string; log?: Logger; prismaOverride?: McpPrismaClient | null; } export interface VerifyBreakInfo { /** Row id (или string-представление), на котором сломалась chain. */ id: string; /** ISO-timestamp проблемной строки. */ createdAt: string; /** Ожидаемый rowHash (пересчитанный). */ expectedHash: string; /** Stored rowHash. */ actualHash: string; } export interface VerifyChainResult { totalChecked: number; prismaAvailable: boolean; /** null если цепочка корректна. Иначе — детали первого разрыва. */ breakAt: VerifyBreakInfo | null; } /** * Verifies the audit hash-chain integrity for `appId`. * Не модифицирует БД, читает в batch'ах для крупных таблиц. */ export declare function verifyChain(opts: VerifyChainOptions): Promise<VerifyChainResult>; /** * Pretty-printer для CLI: возвращает многострочный отчёт. */ export declare function formatVerifyResult(result: VerifyChainResult): string; //# sourceMappingURL=verify.d.ts.map