Skip to content

RasGate 0.1.0

Choose a tag to compare

@zmaxb zmaxb released this 31 Jul 18:33
· 5 commits to main since this release

Главное в этом релизе

RasGate 0.1.0 — крупное обновление HTTP-шлюза для выполнения команд RAC платформы 1С:Предприятие.

Этот релиз подготавливает RasGate к переходу в режим сопровождения: основной функциональный контур стабилизирован, а дальнейший фокус смещается на развёртывание, безопасность, ограничения ресурсов, диагностику, тестирование и эксплуатационную надёжность.

В релизе усилена безопасность выполнения команд, добавлены ограничения ресурсов, диагностика экземпляра, готовое контейнерное развёртывание и полный набор нагрузочных сценариев.

Безопасность и API

  • выполнение POST /rac/execute защищено API-ключом через заголовок X-Api-Key;
  • API-ключи сравниваются с помощью криптографической операции с постоянным временем выполнения;
  • добавлены структурированные ответы 401 Unauthorized;
  • добавлен метод GET /rasgate/status с именем экземпляра и версией сборки;
  • схема авторизации отражена в OpenAPI и коллекции Postman;
  • журналирование тела и строки запроса удалено для снижения риска утечки чувствительных данных.

Контроль выполнения RAC

  • добавлен независимый лимит размера stdout и stderr;
  • процесс RAC завершается при превышении Rac:MaxOutputBytes;
  • превышение лимита возвращает структурированную ошибку 502 rac_output_limit_exceeded;
  • сохранены ограничения параллельных процессов, таймауты и отмена выполнения;
  • ответы 429 rac_capacity_exceeded обеспечивают контролируемую защиту от перегрузки.

Развёртывание в Docker

  • добавлены многоэтапный Dockerfile и готовая production-конфигурация Docker Compose;
  • контейнер работает от непривилегированного пользователя с файловой системой только для чтения;
  • отключены Linux capabilities и включён режим no-new-privileges;
  • файловые логи сохраняются в отдельном Docker volume;
  • Linux-версия RAC подключается с хоста в режиме только для чтения;
  • порт по умолчанию публикуется только на 127.0.0.1.

Исполняемый файл RAC не входит в Docker-образ и должен быть установлен на хосте.

Тестирование

  • добавлены k6-сценарии smoke, load, stress и soak;
  • поддержаны контейнерное тестирование и запуск локального k6 против удалённого RasGate;
  • добавлены цели Makefile load-run и load-remote;
  • обновлены коллекция Postman, документация и примеры конфигурации;
  • расширено покрытие модульными и интеграционными тестами;
  • успешно пройдены все 36 автоматических тестов.

RasGate прошёл smoke-, load-, stress- и soak-тестирование без критических ошибок.
Отчёт о результатах тестирования

Несовместимые изменения

  • POST /rac/execute теперь требует корректный заголовок X-Api-Key;
  • API-ключ задаётся через RasGate:ApiKey или переменную окружения RasGate__ApiKey;
  • адрес по умолчанию изменён с 0.0.0.0:5050 на 127.0.0.1:5050;
  • для удалённого доступа необходимо явно изменить Urls и настроить сетевой экран;
  • Swagger UI удалён; в окружении Development доступен OpenAPI-документ ASP.NET Core.

Перед запуском обязательно замените пример API-ключа собственным секретным значением.

Артефакты

  • rasgate-0.1.0-linux-x64.tar.gz — self-contained сборка для Linux x64;
  • rasgate-0.1.0-win-x64.zip — self-contained сборка для Windows x64;
  • SHA256SUMS — контрольные суммы релизных архивов.

Установка отдельного .NET Runtime не требуется.