Skip to content

API сервис позволяет создать секрет, задать кодовую фразу для его открытия и cгенерировать код, по которому можно прочитать секрет только один раз.

Notifications You must be signed in to change notification settings

blakkheart/secrets_test_task

Repository files navigation

🔐 Secret API 🔐

Описание

API сервис позволяет создать секрет, задать кодовую фразу для его открытия и cгенерировать код, по которому можно прочитать секрет только один раз.

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

Сервис асинхронно обрабатывает запросы. Данные сервиса хранятся во внешнем хранилище, запуск которого описан в docker-compose. Секреты и кодовые фразы не хранятся в базе в открытом виде. Задано время жизни для секретов с помощью TTL индексов. В данной реализации секрет существует 7 дней с момента создания, после чего автоматически удаляется базой данных.

Стэк технологий

  • FastAPI — фреймворк.
  • MongoDB — база данных приложения.
  • Motor — драйвер для соединения MongoDB и FastAPI.
  • cryptography — для шифрования чувствительной информации.
  • pytest + pytest-asyncio — для асинхронных тестов.
  • Docker — контейнеризация приложения.
  • Jinja2 + Bootstrap — для небольшой визуальной части проекта.

Установка

  1. Склонируйте репозиторий:
git clone https://github.com/blakkheart/secrets_test_task.git
  1. Перейдите в директорию проекта:
cd secrets_test_task
  1. Установите и активируйте виртуальное окружение:
    • Windows
    python -m venv venv
    source venv/Scripts/activate
    • Linux/macOS
    python3 -m venv venv
    source venv/bin/activate
  2. Обновите pip:
    • Windows
    (venv) python -m pip install --upgrade pip
    • Linux/macOS
    (venv) python3 -m pip install --upgrade pip
  3. Установите зависимости из файла requirements.txt:
    (venv) pip install -r requirements.txt

Создайте и заполните файл .env по примеру с файлом .env.example, который находится в корневой директории.

Использование

  1. Введите команду для запуска докер-контейнера:
    docker compose up

Cервер запустится по адресу localhost:8000 и вы сможете получить доступ к API. Доступны эндпоинты:

  • localhost:8000/generate — POST запрос c параметрами:
    {
    "code_phrase": "string",
    "secret": "string"
    }
  • localhost:8000/generate/{secret_key} — POST запрос c параметрами:
    {
    "code_phrase": "string"
    }
  • localhost:8000 - демо проекта.
  • localhost:8000/docs - документация проекта.

Дополнительно

Можно запустить тесты из основной директории с помощью команды pytest

About

API сервис позволяет создать секрет, задать кодовую фразу для его открытия и cгенерировать код, по которому можно прочитать секрет только один раз.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published