RasGate 0.1.0
Главное в этом релизе
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 не требуется.