Работа с Public API в DataLens On-premises

DataLens предоставляет API для автоматизации операций с дашбордами, чартами, датасетами и подключениями.

Public API — это набор методов, аналогичный тем, что используются в веб-интерфейсе DataLens. API описывается OpenAPI-спецификацией.

  • Swagger: http://<хост_on-premises>/api/docs/swagger
  • Методы: http://<хост_on-premises>/rpc/<название_метода>

Чтобы начать использовать DataLens API:

  1. Администратор должен завести сервисный аккаунт.

  2. Администратор создает приватный ключ для сервисного аккаунта.

  3. Приватным ключом пользователь подписывает JWT-токен. Максимальное время жизни токена — 10 минут.

    import jwt from 'jsonwebtoken';
    
    const signClientJwt = (
        saId: string,
        keyId: string,
        privateKey: string,
    ) => {
        const now = Math.floor(Date.now() / 1000);
        const payload = {
            iss: <service-account-id>,
            iat: now,
            exp: now + 300,
        };
        return jwt.sign(payload, <private-key>, {algorithm: 'PS256', keyid: <private-key-id>});
    };
    

    Где:

    • <service-account-id> — идентификатор сервисного аккаунта;
    • <private-key-id> — идентификатор приватного ключа;
    • <private-key> — приватный ключ.
  4. Пользователь вызывает метод http://<хост_on-premises>/rpc/exchangeServiceAccountToken, в котором обменивает JWT-токен на токен для доступа к API. Метод возвращает токен, который можно использовать для вызова других методов API.