# gt: General Translation CLI tool: gt api-key create
URL: https://generaltranslation.com/ru/docs/cli/reference/commands/api-key-create.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Создание API-ключа проекта с явно заданными разрешениями и однократный вывод его секрета. Справочник API по команде gt api-key create.

Создавайте учётные данные для среды выполнения или автоматизаций, не изменяя локальное окружение и файлы конфигурации. Для аутентификации используйте сохранённый вход или явно указанный ключ с необходимыми правами, как описано в разделе [Настройка CLI](/docs/cli/guides/configuring#credentials).

## Обзор [#overview]

```bash
npx gt api-key create --name <name> --permission <permissions...> [options]
```

| Параметр                                       | Описание                                      | Тип        | Необязательно | По умолчанию                                |
| ---------------------------------------------- | --------------------------------------------- | ---------- | ------------- | ------------------------------------------- |
| [`--name <name>`](#name)                       | Непустое имя ключа.                           | `string`   | Нет           | —                                           |
| [`--permission <permissions...>`](#permission) | Явно заданные права в каноническом виде. | `string[]` | Нет           | —                                           |
| [`-c, --config <path>`](#config)               | Путь к файлу конфигурации.                    | `string`   | Да            | Определяется автоматически                  |
| [`--api-key <key>`](#api-key)                  | Явное переопределение аутентификации.         | `string`   | Да            | `GT_API_KEY`, иначе сохранённый сеанс входа |
| [`--project-id <id>`](#project-id)             | Целевой проект.                               | `string`   | Да            | Из конфигурации или переменной окружения    |

## Как это работает [#how-it-works]

Вызывающей стороне требуется авторизация `project:api_keys:write`, а также разрешение на делегирование каждого запрошенного права доступа. Недоступные права обрабатываются по принципу «всё или ничего»: CLI не сужает набор прав молча. Ключи проекта не могут обладать правом `project:api_keys:write` и не могут создавать другие ключи.

При успешном выполнении в stdout выводится только новый секрет и символ перевода строки. Диагностические сообщения выводятся в stderr. Секрет не проходит через логгер и не попадает в файл журнала, в том числе при `--quiet` или `GT_LOG_FORMAT=json`; он не входит в метаданные JSON. Команда не записывает ни env-файлы, ни файлы конфигурации.

## Флаги [#flags]

Также доступны [глобальные параметры](/docs/cli/reference/global-options).

### Имя

**Тип** `string` · **Обязательно** · **По умолчанию** —

Отображаемое имя ключа. Пробелы в начале и в конце удаляются; если в результате получается пустая строка, значение отклоняется ещё до отправки запроса.

### Разрешение

**Тип** `string[]` · **Обязательно** · **По умолчанию** —

Передайте одно или несколько канонических имён разрешений через пробел или повторяя флаг:

* `project:write`
* `project:context:read`
* `project:context:write`
* `project:files:read`
* `project:files:write`
* `project:translations:generate`
* `project:translations:enqueue`

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

### Config

**Тип** `string` · **Необязательно** · **По умолчанию** Определяется автоматически

Считывает настройки проекта из указанного конфигурационного JSON-файла; расширение `.json` можно не указывать. Если флаг не задан, файл `gt.config.json` ищется стандартным способом (обнаружение по умолчанию).

### API-ключ

**Тип** `string` · **Необязательно** · **По умолчанию** `GT_API_KEY`, иначе сохранённый вход

Переопределяет аутентификацию явно указанным авторизованным ключом. Если ключ недействителен или у него недостаточно прав, откат к сохранённому входу не выполняется. Используйте секреты из переменных окружения, а не литеральные секреты, которые остаются в истории командной оболочки. (См. [приоритет учётных данных](/docs/cli/guides/configuring#credentials)).

### ID проекта

**Тип** `string` · **Необязательно** · **По умолчанию** Конфигурация или окружение

Задаёт целевой проект. Если ID в конфигурации не совпадает с флагом или с ID, разрешённым из окружения, проверка завершается ошибкой. Если ID в конфигурации не задан, флаг имеет приоритет над окружением. В разрешении также участвуют поддерживаемые переменные проекта с префиксами фреймворков.

## Пример [#example]

После входа с помощью [`gt login`](/docs/cli/reference/commands/login) создайте runtime-ключ для разработки, который можно использовать только для генерации:

```bash
npx gt api-key create \
  --project-id your-project-id \
  --name "Runtime translations" \
  --permission project:translations:generate
```

Надёжно сохраните возвращённый секрет. Этот ключ предназначен только для генерации и не позволяет выполнить полный конвейер [`gt translate`](/docs/cli/reference/commands/translate). Для CI выдайте разрешения на [весь рабочий процесс](/docs/cli/guides/configuring#credentials) и храните ключ в хранилище секретов вашего CI-провайдера, а не в закоммиченных файлах.

<Callout type="warn">
  Относитесь к stdout как к секретным данным. Не перенаправляйте в него stderr, не отправляйте его в общие логи и не раскрывайте в развёрнутых браузерных или мобильных бандлах даже ключ, предназначенный только для генерации. Повторный запуск команды может создать ещё один ключ: удалённый откат и идемпотентность повторных попыток не гарантируются.
</Callout>

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
