Название: Ключи API

Ключи API

Glarus BI может создавать ключи API для идентификации программных запросов к API. Для установки разрешения для API ключа, вы можете прописать ключ в группе.

Честное предупреждение об API Glarus BI

Мы не делаем версионность для Glarus BI API. Мы редко меняем конечные точки API, и почти никога не удаляем их, но если вы пишете год, которые полагается на API, есть вероятность, что вам придется обновлять ваш код в будущем.

Однако, иногда приятно работать с API, когда идет управление разрешениями для большого числа людей и групп, или при массовом архивировании, или при создании контента. Поэтому мы добавили возможность создавать ключи API для идентификации ваших программных запросов.

Создание API ключа

Чтобы создать API ключ:

  1. Кликаем на Шестеренку вверху справа.

  2. Выбираем Настройки администратора.

  3. Идем в раздел Настройки.

  4. Кликаем на закладку Аутентификация в меню слева.

  5. Скользим до API ключей и щелкам на Управлять.

  6. Щелкаем на кнопку Создать API ключKey.

  7. Вводим Имя ключа. Вы можете иметь несколько API ключей, а имя ключа поможет вам запомнить для чего используется ключ.

  8. Выбираем Группу. Ключ будет иметь такие же разрешения, как и группа.

  9. Кликаем на Создать.

  10. Копируем сгенерированный API ключ и сохраняем его где-нибудь в безопасном месте. Glarus BI не сможет вам показать этот ключ снова. Если вы потеряете этот ключ, вам придется генерить новый.

Управление API ключами

Чтобы посмотреть и управлять текущими API ключами:

  1. Кликаем на Шестеренку вверху справа.

  2. Выбираем Настройки администратора.

  3. Идем в раздел Настройки.

  4. Кликаем на закладку Аутентификация в меню слева.

  5. Скользим до API ключей и щелкам на Управлять.

Редактирование API ключей

Чтобы отредактировать API ключ, нужно прокрутить до ключа, который вы хотите редактировать и кликнуть на значок карандаш. Glarus BI раскроет модуль Редактирование API ключа где можно редактировать:

  • Имя ключа

  • Группу принадлежности.

  • Изменить или заново сгенерировать ключ. Glarus BI заменит текущий ключ новым ключом API. Восстановить старый ключ при этом будет невозможно.

Удаление API ключей

Восстановить ключ после удаления будет невозможно. Вам придется создать новый ключ.

Чтобы удалить API ключ:

  1. Кликаем на Шестеренку вверху справа.

  2. Выбираем Настройки администратора.

  3. Идем в раздел Настройки.

  4. Кликаем на закладку Аутентификация в меню слева.

  5. Прокручиваем до API ключей и жмем на Управление.

  6. Выбираем ключ, который требуется удалить и щелкаем на значок мусорного ведра icon.

  7. Glarus BI раскроет модуль Удаления API ключей. Щелкайте на кнопку Удалить API ключ.

Glarus BI перенесет API ключи, связанные с группой, которая удаляется на группу “Все пользователи”

Если вы привязали ключи API к какой-либо группе, а затем эта группа удаляется, то API ключи все еще будут работать, но Glarus BI применит данные ключи к группе “Все пользователи”. Если вы хотите поменять их группу, то придется сделать это вручную.

Пример запросов GET

Вот несколько запросов GET которые возвращаются группы в Glarus BI. Данные примеры подразумевают, что вы запускаете Glarus BI локально с портом по умолчанию: 3000.

Пример curl

Замените YOUR_API_KEY API ключом, которые вы сгенерировали выше.

curl \
-H 'x-api-key: YOUR_API_KEY' \
-X GET 'http://localhost:3000/api/permissions/group'

Приме JavaScrip

Предполагаем, что вы установили ключ как переменную среду как:

export METABASE_API_KEY="YOUR_API_KEY"

Здесь базовый запрос GET используя fetch чтобы получить список групп. Вы можете скопировать код, сохранить его как файл (например, как api-test.js), и запустить код с командой node api-test.js.

// Предполагая, что вы установили ключ с процессом
// `export METABASE_API_KEY="YOUR_KEY_HERE"`
const API_KEY = process.env.METABASE_API_KEY;

const init = {
  headers: {
    "Content-Type": "application/json",
    "X-API-KEY": API_KEY,
  },
};

const host = "http://127.0.0.1:3000";

async function getGroups() {
  const response = await fetch(`${host}/api/permissions/group`, init);
  return response.json();
}

getGroups().then(groups => console.log("Groups in your Metabase:", groups));

Еще почитать