Сервис синхронизации баз данных между серверами + консольная утилита

Ссылка на работу
image
Заказчик: itBoat — международный маркетплейс яхт и катеров (itboat.com). Идея: у команды три копии проекта — боевая, тестовая и локальная. Чтобы проверять доработки на реальных данных, базу и файлы переносили вручную: это занимало часы и легко ломалось. Нужен был инструмент, который делает это в один клик и умеет откатывать назад. Что умеет: — копирует базы данных целиком или частично: только нужные таблицы или записи за выбранный период; — переносит загруженные файлы и картинки; — показывает ход выполнения в реальном времени; — отменяет операцию и возвращает данные обратно, если что-то пошло не так; — проверяет целостность связей в базе после переноса; — хранит резервные копии в облачном хранилище. Что я сделал: — разработал сервис целиком: серверную часть, веб-панель администратора и консольную утилиту; — сделал консольную программу для Windows, macOS и Linux, которая обновляется сама; — защитил доступ: авторизация по токенам, ограничение частоты запросов, проверка прав на опасные операции с боевыми данными. Результат: ручной перенос данных полностью исчез — всё делается через интерфейс или одной командой. Технологии: NestJS, Node.js, TypeScript, React, PostgreSQL, MySQL, Docker, S3, WebSocket.