Дата публикации: 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/Алгоритм_действия_при_возникновении_проблем_в_работе_витрины_данных/.