Releases: RasEcosystem/ras-gate
Release list
RasGate 0.2.1
Главное
RasGate 0.2.1 усиливает надёжность выполнения RAC-команд и добавляет средства
установки приложения в качестве службы Windows или systemd.
Релиз включает изменения промежуточной версии 0.2.0.
Надёжность выполнения RAC
- добавлена явная семантика результатов
succeeded,failedиunknown; - усилена обработка таймаутов, отмены и завершения дерева процессов;
- добавлены ограничения на количество и размер аргументов;
- ограничен размер
stdoutиstderr; - выполнение ограничено числом параллельных процессов;
- результат с неопределённым внешним состоянием явно помечается как небезопасный
для автоматического повтора; - проверка
rac --versionиспользует кэширование и single-flight.
API и диагностика
- унифицированы успешные и ошибочные JSON-ответы;
- добавлен
X-Trace-Id; - добавлено безопасное структурированное журналирование HTTP, RAC и событий жизненного цикла;
- сырые аргументы RAC, API-ключи и содержимое вывода не записываются в журнал;
- расширена проверка конфигурации при запуске.
Установка в качестве службы
- добавлена команда
--validate-config, не открывающая HTTP-порт и не
запускающая RAC; - добавлены скрипты установки и удаления Windows Service;
- добавлены unit-файл и скрипты установки systemd;
- Linux-служба работает от отдельного непривилегированного пользователя
rasgate; - конфигурация теперь загружается относительно каталога приложения, независимо
от текущего рабочего каталога процесса.
Важно для клиентов API
Поле success описывает обработку HTTP-запроса. Результат RAC-команды необходимо
определять по outcome, exitCode и timedOut.
Результат unknown нельзя автоматически повторять: команда могла изменить
состояние кластера до таймаута, отмены или ошибки очистки ресурсов.
Артефакты
rasgate-0.2.1-linux-x64.tar.gz— self-contained сборка для Linux x64;rasgate-0.2.1-win-x64.zip— self-contained сборка для Windows x64;SHA256SUMS— контрольные суммы архивов.
Установка отдельного .NET Runtime не требуется.
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 не требуется.
RasGate 0.0.1
🚀 RasGate 0.0.1
Первый публичный релиз RasGate — HTTP-шлюза для выполнения команд 1C:Enterprise Remote Administrative Client (rac).
Статус релиза
Версия опубликована как предварительная.
Проверены:
- запуск RasGate под Windows;
- получение статуса RAC;
- выполнение команд управления кластером;
- обработка успешных и ошибочных результатов RAC.
Остальные группы команд RAC используют тот же механизм выполнения, но пока не прошли систематическое интеграционное тестирование.
Не рекомендуется использовать эту версию в критичных производственных сценариях без предварительной проверки необходимых команд в тестовой среде.