Экспорт и импорт данных

Экспорт и импорт данных объектов с помощью консольных команд
Примечание

Доступ к функциональности осуществляется через сервер.

Для сотрудников службы DevOps и администраторов Системы доступна функциональность по экспорту данных с одного приложения и импорт выгруженных данных на стенд другого приложения.

Для запуска экспорта перейдите в запущенный контейнер backend и выполните команду:

  1. для экспорта всех объектов:

    ./yii export {zip}
  2. для экспорта объектов, связанных с определенными моделями:

    ./yiiexport/by-models {zip} {models}
  3. для экспорта объектов пользователя:

    ./yii export/by-user {zip} {login}

    где:

    • {zip} – принимает значения 0 или 1 (если указано значение 1, то в архив добавляются и файлы файловых источников);

    • {models} – идентификаторы моделей перечисленные через запятую, не обязательный параметр. Если параметр указан – будет выполнена выгрузка только по источникам, виджетам и дашбордам указанных моделей, в ином случае – выгрузка всего содержимого стенда (вариант экспорта 1);

    • {login} – login пользователя (выгружаются объекты, автором которых является указанный пользователь).

    Файл с дампом будет находиться внутри контейнера backend (/file_storage/api/import/aw_dump.zip).

    Для запуска импорта поместите экспортированный файл в папку контейнера backend (например, /file_storage/api/import/aw_dump.zip) и выполните команду с указанием адреса файла:

    ./yii import {path} {key} {type}

    где:

    • {path} – путь до файла , например /file_storage/api/import/aw_dump.zip;

    • {key} – необязательный параметр, содержит логин пользователя или код группы. Если параметр указан, пользователю или группе будут предоставлены права на все импортируемые объекты;

    • {type} – необязательный параметр, принимает значения:

      • u: параметр key – это логин пользователя;

      • g: то параметр key – это код группы.

    • {owner} – обязательный параметр, содержит логин пользователя, который будет владельцем новых объектов.

      После завершения импорта можно найти сформированный файл лога по пути /file_storage/api/import/import.log.

      На все объекты, добавленные с помощью импорта, можно дать права доступа к объектам необходимым пользователям, выполнив соответствующую команду:

  4. доступ пользователю:

    ./yii import/join-user {model_id} {login}
  5. доступ пользовательской группе:

    ./yii import/join-group {model_id} {group}

    где:

    • {model_id} – идентификатор новой модели;

    • {login} – логин пользователя;

    • {group} – код пользовательской группы.

Экспорт и импорт данных объектов через API
Примечание

Доступ к функциональности осуществляется через Swagger.

Для перехода в Swagger в адресной строке web-браузера добавьте в конце ссылки на Систему латинские буквы «api».

Например, для адреса Системы http://example.com/ Swagger открывается по ссылке http://example.com/api.

В поле ввода дополните имеющуюся строку значением «?api_key=password», где password – пароль, полученный вместе с файлом лицензии.

Нажмите на кнопку «Обновить». Загрузится описание методов Analytic Workspace API.

Для технического администратора Системы доступна функциональность по экспорту данных с одного приложения и импорт выгруженных данных на стенд другого приложения.

Примечание

При экспорте и импорте меты объектов доступны:

  • перенос файлов (файлы виджетов с типом «HTML» и файлы контейнеров);

  • удаление старых файлов при подмене объектов.

Для запуска экспорта выполните следующие действия:

  1. авторизуйтесь с помощью метода API в разделе «Пользователи» – POST /user/login:

    {
    "username": "string",
    "password": "string"
    }

    где:

    • username – логин учетной записи технического администратора Системы (tech_admin);

    • password – пароль учетной записи технического администратора Системы.

    После успешной авторизации скопируйте токен авторизации из тела ответа метода в поле «token».

    Нажмите кнопку «Authorize». Откроется окно «Available authorizations», в поле «value» введите значение «Bearer ваш_токен_авторизации» и нажмите кнопку «Authorize».

  2. выполните один из следующих методов (Рисунок «Методы в API по экспорту данных объектов»):

    • для экспорта всех данных экземпляра Системы – GET /export;

    • для экспорта данных по моделям – GET /export/by-models – укажите идентификаторы моделей через запятую;

    • для экспорта всех данных пользователя – GET /export/by-user – укажите логин пользователя.

    Рисунок 11. Методы в API по экспорту данных объектов

    Методы в API по экспорту данных объектов

Перед импортом можно сделать сравнение импортируемого пакета с объектами, которые есть в Системе, и получить список подменяемых объектов. Для этого выполните следующие действия:

  1. авторизуйтесь с помощью метода API в разделе «Пользователи» – POST /user/login:

    {
    "username": "string",
    "password": "string"
    }

    где:

    • username – логин технического администратора Системы (tech_admin);

    • password – пароль технического администратора Системы.

    После успешной авторизации скопируйте токен авторизации из тела ответа метода в поле «token».

    Нажмите на кнопку «Authorize». Откроется окно «Available authorizations», где в поле «value» введите «Bearer ваш_токен_авторизации» и нажмите на кнопку «Authorize».

  2. выполните метод POST /import/check – выберите файл (Рисунок «Метод в API для сравнения импортируемого пакета с объектами, которые есть в Системе»);

    Рисунок 12. Метод в API для сравнения импортируемого пакета с объектами, которые есть в Системе

    Метод в API для сравнения импортируемого пакета с объектами, которые есть в Системе

  3. в ответе по данным объекта будет получен один из представленных ниже наборов параметров:

    • «"exist": false и "state": null» – объект новый (по GUID не найден объект в Системе, на которую импортируется файл), будет добавлен при импорте;

    • «"exist": true ("state":1 (может быть не указан))» – объект подменный (по GUID найден объект в Системе, на которую импортируется файл, с идентификатором, указанным в параметре «id»), имеющийся объект в Системе будет обновлен;

    • «"exist": true и "state":0» – объект удален (по GUID найден объект в Системе, на которую импортируется файл, с идентификатором, указанным в параметре «id», но объект был удален), имеющийся объект в Системе будет обновлен и восстановлен.

Для запуска импорта выполните следующие действия:

  1. авторизуйтесь с помощью метода API в разделе «Пользователи» – POST /user/login:

    {
    "username": "string",
    "password": "string"
    }

    где:

    • username – логин учетной записи технического администратора Системы (tech_admin);

    • password – пароль учетной записи технического администратора Системы.

    После успешной авторизации скопируйте токен авторизации из тела ответа метода в поле «token».

    Нажмите кнопку «Authorize». Откроется окно «Available authorizations», в поле «value» введите значение «Bearer ваш_токен_авторизации» и нажмите кнопку «Authorize».

  2. выполните метод POST /import/by-file – выберите файл и укажите необходимые параметры (Рисунок «Методы в API по импорту данных объектов»):

    • {key} – необязательный параметр, содержит логин пользователя или код группы. Если параметр указан, пользователю или группе будут предоставлены права на все импортируемые объекты;

    • {type} – необязательный параметр, принимает значения:

      • u: параметр key – это логин пользователя;

      • g: то параметр key – это код группы.

    • {owner} – обязательный параметр, содержит логин пользователя, который будет владельцем новых объектов.

    Рисунок 13. Методы в API по импорту данных объектов

    Методы в API по импорту данных объектов

  3. дайте права доступа на импортированные объекты. На все объекты, добавленные с помощью импорта, можно дать права доступа необходимым пользователям с помощью методов (Рисунок «Методы в API по предоставлению доступа к импортируемым объектам»):

    • доступ пользователю – GET /import/join-user – укажите идентификатор новой модели и логин пользователя;

    • доступ группе пользователей – GET /import/join-group – укажите идентификатор новой модели и код пользовательской группы.

    Рисунок 14. Методы в API по предоставлению доступа к импортируемым объектам

    Методы в API по предоставлению доступа к импортируемым объектам