Перейти к содержанию

Ключи API

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

Предупреждение об отсутствии версионности API

Мы не делаем версионность для 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));

Дополнительная информация