Войти

Особенности работы с витринами на платформе Гостех

Дата публикации: 14.05.2025.

В статье описаны основные особенности работы с Витринами на платформе ГосТех в части загрузки данных.

Больше информации – в полной документации по платформе.

В работе с Витринами на платформе ГосТех при разработке компонента - загрузчика данных необходимо учитывать ряд аспектов:

1. В Витрины, расположенные на платформе ГосТех, данные можно загружать только с помощью типовых компонентов Витрины REST-uploader и DTM-uploader.

2. Прямого доступа к компонентам REST-uploader и DTM-uploader у системы Поставщика нет. Работа осуществляется через API Datamart Studio, данные о котором содержатся в паспорте Витрины, предоставляемом в комплекте поставки.

3. Все Витрины на платформе ГосТех интегрированы с сервисом IAM – набором инструментов для аутентификации и авторизации пользователей. Это означает, что для работы с Витриной необходимо получать токен для авторизации и в дальнейшем использовать его при выполнении любой операции с Витриной.

Получение токена РROXY API

Запрос на получение токена осуществляется по эндпоинту (операции) auth_system методом POST.

Для запроса токена необходимо знать данные учётной записи, зарегистрированной в IAM с ролью proxy_api. Учетная запись передается при предоставлении услуг 1.18 (Витрина) и 1.13 (IAM). Для продуктивной среды необходимо дополнительно заказать техническую учетную запись.

Пример запроса на получение токена с помощью утилиты curl:

curl -X POST 'http://<ip-adress>:8088/api/v1/auth_system' -d "username=<username>" -d "password=<password>" -d "organization_ogrn=<organization_ogrn>" -d "datamart_mnemonic=<datamart_mnemonic>"

где:

  • <ip-adress> — IP-адрес машины с Proxy API;
  • <username> — имя пользователя IAM;
  • <password> — пароль пользователя IAM;
  • <organization_ogrn> — ОГРН организации;
  • <datamart_mnemonic> — мнемоника Витрины.

Пример успешного ответа на запрос токена:

{ "access_token": "eyJhb…", "expires_in": 3600, "refresh_expires_in": 3600, "refresh_token": "eyJhb…", "not-before-policy": 0, "session_state": "e0a422ed-a441-43cc-a011-533bcdb5798d", "scope": "openidemail" }

где:

  • access_token – основной токен для использования proxy API;
  • expires_in – время жизни токена access_token, в секундах;
  • refresh_token – токен обновления, в Datamart Studio не используется;
  • access_token - для получения новой пары токенов; в Datamart Studio не используется;
  • refresh_expires_in – время жизни токена refresh_token, в секундах;
  • token_type – тип токена для передачи в заголовке, используется для заголовков запроса при передаче токена в запросах;
  • id_token – опциональный токен, в Datamart Studio не используется;
  • not-before-policy – активность политики неиспользования токена ранее установленного времени после выпуска, значение '0' соответствует неактивности политики;
  • session_state – идентификатор аутентифицированной сессии;
  • scope – полученные права доступа.

Для дальнейшего взаимодействия необходимы только данные блока access_token.

Пример неуспешного выполнения запроса токена:

{

    "errors": [

        "invalid_grant - Invalid user credentials"

    ]

}

При возникновении такой ошибки необходимо перепроверить данные учетной записи и повторить отправку запроса.

  Важно!

На стороне источника запрещается хранение логина и пароля в открытом виде на диске. Логин и пароль должны выгружаться из безопасного хранилища в память ВМ или контейнера при запуске взаимодействия с Proxy API для дальнейшего использования. Сама ВМ должна находиться в закрытом контуре ИС или ведомства. Рекомендуется реализовать механизм удаления логина и пароля из памяти после успешной аутентификации через Proxy API.

Загрузка данных

Полученный токен позволяет выполнять операции с данными.

Пример запроса для подключения к API инсталляции приложения типового ПО «Витрина данных»:

curl -X <method> 'http://<ip-studio>:8088/api/v1/secure/<org_ogrn>/<dm_mnemonic>/<installation_name>/<installation_id>/<request_path>' -H "Authorization: Bearer <access_token>" -H "<headers>" -d "<data>"

где:

  • <ip-studio> — IP-адрес Datamart Studio;
  • <org_ogrn> — ОГРН организации, в рамках которой развёрнута Витрина;
  • <dm_mnemonic> — мнемоника Витрины;
  • <installation_name> — имя инсталляции в целевой Витрине;
  • <installation_id> — идентификатор инсталляции (содержится в её названии);
  • <request_path> — URI оригинального API инсталляции;
  • <access_token> — токен Proxy API;
  • <headers> — заголовки запроса;
  • <data> — данные запроса.

Информация об инсталляциях должна содержаться в паспорте Витрины.

Доступные операции – загрузка данных, удаление данных, получение статуса и другие – описаны в статьях «REST-uploader» и «DTM-uploader».

Изучить и попробовать на практике загрузить данные с помощью API Datamart Studio с получением токена вы можете в бесплатном учебном курсе «Как стать Поставщиком данных через СМЭВ4. Загрузка данных».

Как записаться и пройти курс, читайте в статье https://info.gosuslugi.ru/articles/Дополнительные_обучающие_материалы/.

В случае возникновения вопросов по услуге 1.18, паспорту Витрины и другим особенностям платформы ГосТех следует обращаться в систему регистрации обращений (СРО) платформы ГосТех. Доступы к СРО запрашиваются при заказе услуг на платформе ГосТех. Подробная информация доступна в инструкции по работе с СРО (https://sd.v-serv.ru/jira/instruction.html).

За консультациями по работе компонентов Витрины обращайтесь в СЦ: https://info.gosuslugi.ru/articles/Алгоритм_действия_при_возникновении_проблем_в_работе_витрины_данных/.


Авторизуйтесь, чтобы оставить комментарий к статье