@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
TypeScript
/**
* 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