Техническое задание: Web API для CoreDNS

Цель проекта

Разработать легковесное и безопасное веб-приложение программируемого интерфейса (API) для динамического управления DNS-сервером CoreDNS. API должно предоставлять удобный способ администрирования доменных зон и записей через HTTP-запросы.

Ключевые функциональные требования

1. Режимы работы API

  • Простой режим (Simple): Поддержка только записей типа A для создания и управления host-файлом.
  • Полный режим (Full): Поддержка полноценных zone-файлов со всеми основными типами DNS-записей (A, AAAA, CNAME, MX, TXT и др.).

2. Безопасность и аутентификация

  • Реализация авторизации всех входящих запросов.
  • Использование механизма подписи запросов через пару api-key и api-secret.

3. Логирование и аудит

  • Интеграция с Immudb для обеспечения неизменяемого (immutable) журналирования всех операций и запросов к API.
  • В логах должны фиксироваться: тип операции, данные запроса, временная метка, идентификатор инициатора.

4. Валидация данных

  • Реализация строгой проверки корректности всех входящих данных для DNS-записей (формат IP-адресов, доменных имен, TTL и т.д.).
  • API должно возвращать понятные ошибки при некорректном вводе.

5. Управление данными

  • Создание, чтение, обновление и удаление (CRUD) пулов доменов.
  • Создание, чтение, обновление и удаление DNS-записей внутри каждого домена.
  • Организация локального (промежуточного) хранилища данных для обеспечения отказоустойчивости и скорости отклика.

Технические ожидания

  • Код должен быть чистым, документированным и готовым к развертыванию в production-среде.
  • Архитектура API должна быть модульной и масштабируемой.
  • Необходимо предоставить базовую документацию по конечным точкам (endpoints) API и примеры запросов.

Разработка многофункционального мобильного приложения для диагностики автомобилей

Требуется создать приложение для смартфона, объединяющее в одном интерфейсе несколько полезных функций для диагностики состояния автомобиля. Все технические детали и список конкретных функций будут согласованы с исполнителем.