Тестовое на позицию стажёра в Market Intelligence

🔁 От кого: Avito Tech

☝🏻Суть: Нужно сделать HTTP-сервис для одноразовых секретов, что-то наподобие One Time Secret. Он должен позволить создать секрет, задать кодовую фразу для его открытия и cгенерировать код, по которому можно прочитать секрет только один раз. UI не нужен, это должен быть JSON API-сервис. Для его написания можно использовать FastAPI или любой другой фреймворк.

Метод /generate должен принимать секрет и кодовую фразу и отдавать secret_key, по которому этот секрет можно получить.

Метод /secrets/{secret_key} принимает на вход кодовую фразу и отдает секрет.

⚔️Требования: 🔹 всё должно быть написано на Python версии >=3.7; 🔹 сервис должен запускаться с помощью docker-compose up; 🔹 код должен соответствовать PEP, необходимо использование type hints, к публичным методам должна быть написана документация на английском языке; 🔹 используемые технологии на ваш выбор, к ним требований нет.

Необязательные задачи: ➕ есть тесты (постарайтесь достичь покрытия в 70% и больше). Можно использовать pytest или любую другую библиотеку для тестирования. ➕ сервис асинхронно обрабатывает запросы. ➕ данные сервиса хранятся во внешнем хранилище, запуск которого также описан в docker-compose. Мы рекомендуем использовать MongoDB, но вы можете использовать любую подходящую базу. ➕ секреты и кодовые фразы не хранятся в базе в открытом виде. ➕ добавлена возможность задавать время жизни для секретов. Можно попробовать реализовать это с помощью TTL-индексов.

#тестовое | 🍩 Поддержать канал 🫶
repost

298

input message

напишите коммент

· 18.10

Хорошая идея для пет проекта, спасибо)

ответить

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь