Skip to content

v0.3.0: Polish, Security Hardening & ГОСТ 34 Operations Suite

Choose a tag to compare

@onixus onixus released this 25 Aug 18:08
· 326 commits to main since this release

🚀 Релиз v0.3.0 — EvaCal

📑 1. Эксплуатационная документация ГОСТ 34

  • Руководство пользователя (РП) — генератор lib/gost34/templates/rp34.ts (код 30 по ГОСТ 34.201 / РД 50-34.698-90 п. 2.9): назначение, условия применения, ролевая модель, регламент типовых операций и сценарии аварийного восстановления.
  • Руководство системного администратора (РА) — генератор lib/gost34/templates/ra34.ts (код 31 по ГОСТ 34.201): архитектурные требования, регламент развертывания через Docker Compose, управление безопасностью и мониторинг через /api/health.
  • Расширен тип GostDocumentType (TZ | PZ | AF | PMI | SPEC | RP | RA) и реестр генераторов.

🛡️ 2. Безопасность и AppSec

  • Formula Injection (CWE-1236): автоматическое экранирование спецсимволов =, +, -, @, \t, \r при формировании Excel-книг (lib/xlsx.ts).
  • Инвалидация сессий: серверный механизм немедленного отзыва сессионных токенов (revokeSession, isSessionRevoked) при выходе из системы.
  • Харденинг Nginx: server_tokens off;, добавлены заголовки X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, включено gzip-сжатие.

⚙️ 3. DevOps, CI/CD и контейнеризация

  • Базовые образы: зафиксирован точный тег node:22.14-alpine3.21 в Dockerfile и Jenkinsfile.
  • Исправление отдачи статики: добавлено копирование каталога public/ в финальный образ runner.
  • Мониторинг: внедрен HEALTHCHECK (30s) и эндпоинт GET /api/health.
  • Ресурсы и логи: настроена ротация логов (драйвер json-file, 5x20MB) и лимиты ресурсов (2 CPU, 2048 MB RAM) в docker-compose.yml.

🧮 4. Финансовый калькулятор

  • Защита от распространения NaN / Infinity в расчетах маржинальности, налогов и ставок (lib/commercial.ts).

🧪 Тестирование и качество

  • 40 тестовых наборов, 368 тестов (100% успех)
  • TypeScript & ESLint: 0 ошибок, 0 предупреждений
  • Next.js Production Build: 23/23 routes скомпилированы успешно