Разработать приложение, которое будет предоставлять REST API для запуска команд. Команда представляет собой bash-скрипт. Приложение должно позволять параллельно запускать произвольное количество команд.
Приложение должно иметь базу данных для хранения команд.
API приложения должно содержать следующий функционал:
- Создание новой команды. Запускает переданную bash-команду, сохраняет результат выполнения в БД.
- Получение списка команд
- Получение одной команды
Написать тесты.
Написать инструкцию по запуску программы.
Если какие-то требования не указаны, либо имеют двойное толкование, то они остаются на усмотрение соискателя. Желательно в записке к решенному заданию описать, какие вопросы возникали и какие решения были приняты.
Эти задания не обязательны для выполнения, однако позволят вам более полно показать свои знания и навыки.
- Добавить в API метод для остановки команды
- Поддержка долгих команд (сохранять вывод команды в БД по мере ее выполнения, отображать вывод при получении одной команды)
- Сборка и деплой приложения. (Например: сборка deb/rpm-пакетов, Docker-образов, настроенный пайплайн в Gitlab CI, и пр.)
- Можно добавить произвольный функционал, чтобы более полно показать свои навыки, но в таком случае обязательно его задокументировать
- Принятые в ходе разработки решения описать в виде ADR
Операционная система: MacOS или Linux (дистрибутив на выбор соискателя, указать выбранный в записке к решенному заданию)
Язык программирования: Golang
Библиотеки: Стандартную библиотеку языка можно использовать без ограничений. Сторонние можно использовать любые, но чем меньше - тем лучше.
База данных: Postgres