Мы разработали экспортёр для создания резервных копий организаций в Yandex Tracker Cloud. Решение появилось в связи с техническими неполадками у Яндекса и предназначено для администраторов, которым необходимо сохранять отдельную копию рабочих данных. Инструмент готов к пилотным запускам и может быть адаптирован под требования организации.
В корпоративном трекере сосредоточена информация о проектах и рабочих процессах: от постановки задач до обсуждений, документов и учёта трудозатрат. Для резервного копирования важно сохранить не только отдельные задачи, но и связанные с ними данные, структуру организации и настройки процессов.
Экспортёр DBI позволяет получить структурированную копию этих сведений, проверить результат и подготовить данные к дальнейшему использованию. Решение работает в режиме только чтения и не изменяет исходные данные в Tracker.
Экспортёр выгружает сведения об организации, пользователях и группах, очередях и их настройках, проектах, целях и портфелях. В копию также могут входить рабочие процессы, статусы, типы задач, резолюции, компоненты и версии, локальные и глобальные поля, категории, права доступа, макросы и триггеры.
Вместе с задачами сохраняются комментарии, история изменений, связи, записи о затраченном времени — worklogs, чек-листы и содержимое вложений. Это позволяет включить в резервную копию контекст работы над задачами.
Область выгрузки можно ограничить: выбрать отдельные очереди, проекты или период создания и изменения задач. Доступность отдельных данных зависит от прав доступа и ограничений Yandex Tracker API. Такие случаи фиксируются в результатах выгрузки.
Исходные данные сохраняются в отдельный снимок — snapshot — в формате raw JSON, максимально близком к ответам API. Такой подход позволяет сохранить в том числе поля, которые пока не поддерживаются текущим импортёром. На основе JSON формируется YAML-представление, совместимое со структурой импортёра.
До начала выгрузки экспортёр проверяет параметры конфигурации, доступность API, идентификатор организации, права токена и возможность подключения к серверу. Это помогает выявить основные проблемы до запуска длительной операции.
Для предварительной проверки предусмотрен пробный запуск на ограниченном объёме данных. Он позволяет оценить работу механизмов сбора, структуру результата и возможные предупреждения. Данные в Yandex Tracker при этом не изменяются, а полноценный архив резервной копии не создаётся.
После основной выгрузки проверяются читаемость JSON- и YAML-файлов, наличие ожидаемых файлов, контрольные суммы, целостность вложений и соответствие выбранной области выгрузки. Отдельно учитываются ошибки и незавершённые операции. Если часть данных получить не удалось, это явно отражается в отчёте: неполная выгрузка не отмечается как полностью успешная.
После успешной проверки результат упаковывается в архив tar.gz с контрольной суммой SHA-256. Она позволяет проверить целостность архива при хранении и передаче. Дополнительно формируются технический отчёт reports.json, отчёт для просмотра reports.html, журнал ошибок и предупреждений, а также сведения о составе и статусе snapshot.
Выгрузка большой организации может занимать продолжительное время. Чтобы после сетевой ошибки или перезапуска сервера не начинать работу заново, экспортёр сохраняет промежуточное состояние — checkpoint — по отдельным операциям.
При продолжении запуска инструмент проверяет уже созданные файлы, выявляет повреждённые результаты, восстанавливает зависшие операции и позволяет повторно обработать только неудачные задачи. Если область выгрузки изменилась, ранее полученный результат не используется для её продолжения.
Такой механизм сокращает объём повторной обработки и снижает нагрузку на Yandex Tracker API.
Решение может использоваться как первый этап миграции из Yandex Tracker Cloud в Yandex Tracker On-Prem или другую совместимую систему. Экспортёр получает данные, проверяет их и формирует представление для передачи отдельному инструменту импорта.
Сам экспортёр не выполняет загрузку в целевую систему. Для каждого проекта миграции необходимо согласовать соответствие пользователей и очередей, правила переноса статусов, типов задач и прав доступа. Также учитываются ограничения целевой системы и состав данных, которые требуется перенести.
Таким образом, проверенная выгрузка становится основой для дальнейшего переноса, а возможность восстановления и полнота импорта оцениваются применительно к конкретной системе.
Экспортёр запускается в Docker и подходит для развёртывания в инфраструктуре заказчика. Для серверного запуска используется предварительно собранный образ: устанавливать Python, получать исходный код, подключаться к PyPI или собирать приложение на сервере не требуется.
Для snapshot, архивов и отчётов подключается отдельный каталог. Конфигурация монтируется отдельно, а OAuth-токен передаётся через механизм секретов или переменную окружения. Токен не сохраняется в конфигурационном файле и не попадает в логи, отчёты и архивы.
Контейнер запускается от непривилегированного пользователя с файловой системой в режиме только чтения. Дополнительно отключаются лишние Linux capabilities и включается параметр no-new-privileges, ограничивающий повышение привилегий.
При этом snapshot и архив содержат данные организации, включая персональную и конфиденциальную информацию. Для них необходимо предусмотреть защищённое место хранения и ограничить доступ.
Решение предназначено для компаний, которым нужна собственная резервная копия данных Yandex Tracker, выгрузка в защищённую инфраструктуру или подготовка к переходу на другую систему управления задачами.
В рамках пилота можно определить состав данных, проверить права доступа и выполнить пробную выгрузку. По её результатам — оценить объём snapshot и архива, изучить отчёты и предупреждения, учесть ограничения API и согласовать дальнейший порядок резервного копирования или подготовки к миграции.
Наш менеджер свяжется в течение 2х часов