Перейти к содержимому

Текущее состояние ​

Это описание прототипа, а не готовности версий 0.1.0/0.2.0. Технический обзор и результаты тестов ниже относятся к 19 сентября 2026. Документация и демонстрация чата обновлялись позднее.

Реализовано ​

ОбластьФактическое состояние
BackendNestJS application context, MCP через stdio, без HTTP API
MCP6 инструментов: 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 нет
Локальные fixturesDocker Compose для FTP/SFTP и синтетические PHP-сайты

Отсутствуют кабинет, авторизация, биллинг, история в БД, очередь задач, расписание сканирования, база CVE, автоматическое исправление и собственная интеграция с LLM. Интерпретация результата сейчас возложена на вызывающего агента.

Подтверждённые пробелы ​

  1. audit/domain/audit.service.ts: пароль удаляется после успешного скачивания, но остаётся в connection при ошибке. Утверждение README об очистке при любом исходе не соответствует коду.
  2. setup/config (ILimits): AUDIT_TIMEOUT_MS объявлен, но общий дедлайн не применяется. Нет TTL сессий и автоматической очистки зависших workspace.
  3. AuditService.cleanupAudit: ошибка удаления папки подавляется, сессия удаляется и возвращается cleaned, даже если файлы остались.
  4. AuditService.downloadSite: проверяется наличие connection, а не строгое состояние created; возможны повторные конкурентные скачивания.
  5. connector/data/repositories/{sftp,ftp}.repository.ts: ошибки чтения каталогов скрываются. Неполное скачивание может выглядеть успешным.
  6. Признак truncated есть в ответе скачивания, но не сохраняется для итогового отчёта. Список skipped от коннектора не доходит до пользователя через audit.
  7. scan/data/repositories/walkFiles.util.ts: фильтр через path.extname пропускает файл с именем .env, несмотря на наличие .env в списке расширений сканера. В правилах scanner (SECU-24) исправлено: dotenv-файлы выбираются по имени; stdio MCP в api/ по-прежнему работает на своих правилах с этим пропуском.
  8. ScanGateway: поле extensions всегда пустое; CMS-находки содержат лишь частичную инвентаризацию в metadata.
  9. Настройки читаются из process.env фабриками провайдеров при создании приложения (setup/config/data/loadSettings.util.ts), Nest ConfigModule указывает .env.dev. Других способов задать лимиты (файл, CLI) нет.
  10. .husky/pre-commit вызывает lint-staged, который пытается запускать ESLint в app/, где нет ни зависимости ESLint, ни его конфигурации.

Это список обнаруженных ограничений, не полный аудит безопасности сервиса. Исправления нужно подтвердить повторной проверкой кода.

Проверки исходного состояния ​

Среда: Node 22.23.1, Bun 1.3.14, уже установленные зависимости api/.

ПроверкаРезультат
Jest bun run test --runInBand26 suites, 86 тестов прошли
bun run typecheckУспешно
bun run checkCleanSlice: успешно, 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. Эти возможности ещё предстоит реализовать.

Securify · Документация проекта · Прототип → MVP