[x] Добавлен concurrency limiter, в кофиг-файле требуется указать concurrency_limit;
[x] Добавлен rate limiter, кофиг-файл требует указать структуру rate_limit, в которую передается 2 поля: количество запросов в секунду (limit) и количество допустимых одновременных запросов при имеющихся токенах (burst);
[x] Добавлена аутентификация пользователей по ролевой модели, время жизни токена задается через структуру auth, которая требует 2 поля: secret и token_max_time;
[x] Пользователь проходит аутентификацию через /login;
[x] С помощью миграций созданы 3 пользователя с разными ролями;
[x] POST /update доступен только пользователю с ролью admin.
Запуск и тестирование
Для запуска при использовании podman:
make server
При использовании docker:
make docker_up
make run
Запросы для тестирования приведены в test.sh, test.http
В тех же файлах указаны данные для логина пользователей
Очистка ресурсов
make clean
Останавливает и удаляет созданные контейнеры, но не удаляет volume.
concurrency_limit
;rate_limit
, в которую передается 2 поля: количество запросов в секунду (limit
) и количество допустимых одновременных запросов при имеющихся токенах (burst
);auth
, которая требует 2 поля:secret
иtoken_max_time
;Запуск и тестирование
podman
:При использовании
docker
:Запросы для тестирования приведены в test.sh, test.http В тех же файлах указаны данные для логина пользователей
Очистка ресурсов
Останавливает и удаляет созданные контейнеры, но не удаляет volume.