Текущее состояние
Это описание прототипа, а не готовности версий 0.1.0/0.2.0. Технический обзор и результаты тестов ниже относятся к 19 сентября 2026. Документация и демонстрация чата обновлялись позднее.
Реализовано
| Область | Фактическое состояние |
|---|---|
| Backend | NestJS application context, MCP через stdio, без HTTP API |
| MCP | 6 инструментов: test_connection, create_audit, download_site, scan_site, get_findings, cleanup_audit; префикс securify_ |
| Подключение | SFTP по паролю, FTP, explicit FTPS; проверка подключения и скачивание |
| Workspace | Отдельная временная папка на аудит, проверка путей, пропуск symlink при скачивании |
| Ограничения | Лимиты числа файлов, суммарного и индивидуального размера по метаданным; таймаут подключения |
| CMS | Определение WordPress/OpenCart; fallback unknown-php/unknown |
| Сканирование | Regex-эвристики подозрительного PHP, поиск отдельных форм секретов, инвентаризация CMS, исполняемые файлы в uploads WordPress |
| Результат | JSON с CMS, инвентаризацией, findings и severity; Zod-валидация |
| Сессии | Map в памяти процесса; результат пропадает после перезапуска |
| Логи | Структурированный stderr, редактирование чувствительных полей, request-ID каждого вызова инструмента |
| Права | Общий слой проверки и журнал аудита есть; локальный stdio MCP работает как оператор без доступа к данным команд, ключи ещё не реализованы |
| Вход и проекты | Регистрация с подтверждением email, вход, сессии, личная команда и проекты реализованы в API как операции домена; HTTP и экраны к ним ещё не подключены |
| Frontend | Стартовая страница NuxtWelcome; связи с backend нет |
| Локальные fixtures | Docker Compose для FTP/SFTP и синтетические PHP-сайты |
Отсутствуют кабинет, авторизация, биллинг, история в БД, очередь задач, расписание сканирования, база CVE, автоматическое исправление и собственная интеграция с LLM. Интерпретация результата сейчас возложена на вызывающего агента.
Подтверждённые пробелы
audit/domain/audit.service.ts: пароль удаляется после успешного скачивания, но остаётся вconnectionпри ошибке. Утверждение README об очистке при любом исходе не соответствует коду.setup/config(ILimits):AUDIT_TIMEOUT_MSобъявлен, но общий дедлайн не применяется. Нет TTL сессий и автоматической очистки зависших workspace.AuditService.cleanupAudit: ошибка удаления папки подавляется, сессия удаляется и возвращаетсяcleaned, даже если файлы остались.AuditService.downloadSite: проверяется наличие connection, а не строгое состояниеcreated; возможны повторные конкурентные скачивания.connector/data/repositories/{sftp,ftp}.repository.ts: ошибки чтения каталогов скрываются. Неполное скачивание может выглядеть успешным.- Признак
truncatedесть в ответе скачивания, но не сохраняется для итогового отчёта. Списокskippedот коннектора не доходит до пользователя через audit. scan/data/repositories/walkFiles.util.ts: фильтр черезpath.extnameпропускает файл с именем.env, несмотря на наличие.envв списке расширений сканера. В правилах scanner (SECU-24) исправлено: dotenv-файлы выбираются по имени; stdio MCP вapi/по-прежнему работает на своих правилах с этим пропуском.ScanGateway: полеextensionsвсегда пустое; CMS-находки содержат лишь частичную инвентаризацию в metadata.- Настройки читаются из
process.envфабриками провайдеров при создании приложения (setup/config/data/loadSettings.util.ts), Nest ConfigModule указывает.env.dev. Других способов задать лимиты (файл, CLI) нет. .husky/pre-commitвызывает lint-staged, который пытается запускать ESLint вapp/, где нет ни зависимости ESLint, ни его конфигурации.
Это список обнаруженных ограничений, не полный аудит безопасности сервиса. Исправления нужно подтвердить повторной проверкой кода.
Проверки исходного состояния
Среда: Node 22.23.1, Bun 1.3.14, уже установленные зависимости api/.
| Проверка | Результат |
|---|---|
Jest bun run test --runInBand | 26 suites, 86 тестов прошли |
bun run typecheck | Успешно |
bun run check | CleanSlice: успешно, 5 групп, 83 модуля |
bun run build | Успешно |
eslint 'src/**/*.ts' | 0 ошибок, 71 предупреждение |
node dist/main.js </dev/null | Сервер зарегистрировал 6 инструментов и завершился с кодом 0 |
Проверка запуска не заменяет MCP end-to-end тест. Docker-коннекторы, реальные сайты, сборка frontend, чистая установка и доступы внешних сервисов в этом обзоре не проверялись.
Что добавлено в документацию
Главная и docs оформлены в общей дизайн-системе. Чат на главной — локальная демонстрация без сетевых запросов. Установлен TypeSafe skill для агента разработки; продуктовой интеграции TypeSafe нет.
0.1.0 описывает базу, очередь, снимки, изолированный анализ и исправление копии. 0.2.0 — клиентский чат с Agentfy/Bridle. Эти возможности ещё предстоит реализовать.