Перейти к содержимому

API Keys

API Keys позволяют авторизоваться в ONREZA API для автоматизации и интеграций. Ключи привязаны к конкретному workspace и имеют собственный набор разрешений (permissions), который определяет, какие операции ими можно выполнять.

API Keys в ONREZA привязаны к конкретному workspace, а не к пользовательскому аккаунту. Это значит:

  • Ключ даёт доступ только к ресурсам одного workspace
  • Ключи хранятся в контексте workspace и доступны через Team Settings
  • При смене workspace вам потребуется другой ключ или указать workspace через заголовок

API Keys ONREZA имеют формат:

nrz_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • Префикс nrz_ для идентификации ключей ONREZA
  • 32 символа после префикса (буквы и цифры)

Пример:

nrz_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Каждый ключ имеет набор permissions — точечных разрешений на типы операций (чтение деплоев, запись доменов и т.д.). Фактические права, с которыми выполнится запрос, — это пересечение прав роли владельца ключа и permissions самого ключа. Ключ не может делать больше, чем разрешает роль его автора, и не может делать больше, чем позволяют его permissions.

Для большинства сценариев хватает одного из трёх пресетов:

ПресетЧто разрешеноКогда использовать
ЧтениеЧтение деплоев, проектов, переменных окружения, доменов, команды и биллингаМониторинг, дашборды, read-only интеграции
DeployВсё из «Чтения» + создание деплоев и редактирование переменных окруженияCI/CD, автодеплой из GitHub Actions (рекомендуется по умолчанию)
ПолныйВсе доступные ключу permissionsУниверсальная автоматизация, миграции

При создании ключа в UI по умолчанию предлагается пресет Deploy — он покрывает стандартный CI/CD-сценарий и не даёт лишних прав.

Если ни один пресет не подходит, выберите Свой набор и отметьте только нужные разрешения. Они сгруппированы по ресурсам:

РесурсPermissionДействия
Deploymentsdeployments.readПросмотр деплоев, логов, статусов
Deploymentsdeployments.writeСоздание деплоев, откат, отмена
Projectsprojects.readПросмотр проектов и настроек
Projectsprojects.writeРедактирование настроек, создание проектов
Projectsprojects.adminУдаление и переименование проектов
Env Varsenv.readПросмотр названий переменных (без значений секретов)
Env Varsenv.writeСоздание, редактирование, удаление переменных
Domainsdomains.readПросмотр доменов и их статусов
Domainsdomains.writeДобавление, удаление, верификация доменов
Teamteam.readПросмотр участников и их ролей
Billingbilling.readПросмотр подписки, инвойсов и биллинг-профиля

Часть операций в принципе нельзя выполнять API ключом — даже если у вас роль OWNER:

  • Изменение состава команды и ролей участников (team.write)
  • Управление подпиской, платёжными методами и биллинг-реквизитами (billing.write)
  • Передача владения workspace и удаление workspace (workspace.admin)

Эти действия требуют интерактивного входа как пользователь (session + 2FA при необходимости). Такое ограничение защищает от ситуации, когда утечка API-ключа с полными правами приводит к потере контроля над workspace.

  1. Откройте настройки

    Перейдите в Team Settings → API Keys

  2. Нажмите “Create Key”

  3. Заполните форму

    ПолеОписаниеОбязательно
    NameНазвание для идентификации (например, “GitHub Actions”)Да
    PermissionsОдин из пресетов (Чтение / Deploy / Полный) или свой наборДа
    ExpirationСрок действия ключаНет
  4. Скопируйте ключ

    Ключ показывается только один раз. Сохраните его в безопасном месте.

Сам факт доступа к созданию и управлению API Keys определяется ролью в workspace:

РольДоступ к API Keys
OWNERВидит и управляет всеми ключами workspace
ADMINВидит и управляет всеми ключами workspace
MEMBERВидит и управляет только своими ключами
BILLINGНет доступа к API Keys

Permissions ключа, созданного участником, всё равно ограничены его ролью: MEMBER не сможет выпустить ключ с правами, которых у него нет.

Вы можете выбрать срок действия от 1 до 365 дней:

РекомендацияСрокИспользование
Рекомендуется30 днейСтандартный выбор для CI/CD
Рекомендуется90 днейДолгосрочные интеграции
Осторожно365 днейМаксимальный срок
ОсторожноБез срокаНе рекомендуется по соображениям безопасности

Установите токен как переменную окружения для CI/CD и автоматизации:

Окно терминала
export NRZ_TOKEN="nrz_YOUR_KEY"
Окно терминала
export NRZ_TOKEN="nrz_YOUR_KEY"
nrz deploy

API Keys имеют ограничение 100 запросов в час.

При превышении лимита возвращается ошибка 429 Too Many Requests.

Team Settings → API Keys

Для каждого ключа видно:

  • Название
  • Начало ключа (первые символы)
  • Набор permissions (как badge пресета «Чтение» / «Deploy» / «Полный» или «Свой (N)»)
  • Дата создания и дата истечения
  • Последнее использование
  • Создатель ключа

Строку можно раскрыть, чтобы увидеть точный список permissions этого ключа.

У ключа можно менять name, enabled-статус и набор permissions без пересоздания. Старое значение ключа при этом не меняется.

  1. Найдите ключ в списке
  2. Нажмите Edit
  3. Обновите название или permissions
  4. Нажмите Save

Изменения применяются сразу — кэш авторизации сбрасывается перед обновлением, поэтому у ключа не остаётся окна «со старыми правами».

  1. Найдите ключ в списке
  2. Нажмите удалить (корзина)
  3. Подтвердите

Ключ перестаёт работать сразу после удаления.

Выберите несколько ключей и удалите их одним действием (доступно OWNER и ADMIN).

  1. Выбирайте минимальный пресет — для большинства CI/CD достаточно Deploy, не используйте Полный без необходимости
  2. Ограничивайте срок — используйте expiration
  3. Ротируйте регулярно — создавайте новые ключи периодически
  4. Один ключ — одна цель — разные ключи для разных систем
  5. Мониторьте использование — проверяйте “Last used”
  6. Храните в секретах — используйте GitHub Secrets, GitLab Variables и т.д.
  1. Немедленно удалите ключ
  2. Создайте новый (с минимально необходимым пресетом)
  3. Обновите во всех системах
  4. Проверьте историю активности
name: Deploy to ONREZA
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup ONREZA CLI
run: |
curl -fsSL https://raw.githubusercontent.com/ONREZA/nrz-cli/main/install.sh | bash
- name: Deploy
env:
NRZ_TOKEN: ${{ secrets.NRZ_TOKEN }}
run: |
nrz deploy
deploy:
stage: deploy
variables:
NRZ_TOKEN: $NRZ_TOKEN
before_script:
- curl -fsSL https://raw.githubusercontent.com/ONREZA/nrz-cli/main/install.sh | bash
script:
- nrz deploy
only:
- main
  1. Проверьте что ключ скопирован полностью
  2. Проверьте формат: Bearer KEY (для HTTP) или просто KEY (для CLI)
  3. Проверьте что ключ не истёк и не отключён
  4. Проверьте что ключ не удалён
  5. Убедитесь что указан правильный workspace
  1. Проверьте permissions ключа — у него может не быть права на этот ресурс (см. badge и раскрытый список в таблице)
  2. Проверьте роль владельца в workspace — ключ не может превысить её
  3. Убедитесь, что нужное действие в принципе доступно API Keys (см. Что недоступно API Keys)
  1. Проверьте правильность workspace slug
  2. Убедитесь что ключ принадлежит указанному workspace
  3. Используйте CLI для автоматического определения workspace из токена
  1. Создайте новый ключ
  2. Проверьте что нет пробелов/переносов
  3. Убедитесь что используете правильный формат для выбранного инструмента