> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edgelab.su/llms.txt
> Use this file to discover all available pages before exploring further.

# Безопасность API-ключей

> Практические правила: хранение, ротация, удаление и мониторинг API-ключей EdgeLab

# Безопасность API-ключей

API-ключ в EdgeLab даёт доступ к MCP tools от имени пользователя. Если ключ утечёт, кто-то сможет вызывать personal tools как будто это твой агент.

## Правило №1: не коммить ключ в git

<Warning>
  Если ключ попал в репозиторий хотя бы на секунду, считай его скомпрометированным.
</Warning>

<Steps>
  <Step title="Добавь секреты в `.gitignore`">
    ```bash theme={null}
    .env
    .secrets/
    *.key
    ```
  </Step>

  <Step title="Проверь историю на утечки">
    ```bash theme={null}
    git log --all -p | grep -i "el_live_"
    ```

    Если нашёл совпадение, сразу ротируй или удаляй ключ.
  </Step>
</Steps>

## Формат ключа

```text theme={null}
el_live_1a8c25f8b7165604
```

* префикс: `el_live_`
* хвост: `16` hex-символов
* общая длина: `24`

## Где хранить

<CodeGroup>
  ```bash Переменные окружения theme={null}
  export EDGELAB_API_KEY="el_live_1a8c25f8b7165604"
  ```

  ```bash Файл ~/.secrets/ theme={null}
  mkdir -p ~/.secrets
  echo 'EDGELAB_API_KEY=el_live_1a8c25f8b7165604' > ~/.secrets/edgelab.env
  chmod 600 ~/.secrets/edgelab.env
  ```

  ```bash 1Password CLI theme={null}
  op item create --category=api_credential \
    --title="EdgeLab API Key" \
    --url="https://mcp.edgelab.su/mcp" \
    "credential=el_live_1a8c25f8b7165604"
  ```
</CodeGroup>

## Ротация

Если ключ засветился, ротируй его через MCP tool `rotate_api_key`.

Пример payload:

```json theme={null}
{
  "name": "rotate_api_key",
  "arguments": {
    "prefix": "el_live_1a8c25f8"
  }
}
```

<Warning>
  После ротации старый ключ перестаёт работать сразу.
</Warning>

## Удаление

Если ключ больше не нужен, используй `delete_api_key`.

```json theme={null}
{
  "name": "delete_api_key",
  "arguments": {
    "prefix": "el_live_1a8c25f8"
  }
}
```

## Мониторинг

Регулярно вызывай `list_api_keys` и проверяй:

* неожиданные ключи
* подозрительный `last_used_at`
* ключи без понятного имени

## Лимиты

Ориентируйся на свой тариф:

* Free: `30/min`
* Edge: `60/min`
* Pro: `120/min`
* VIP: `300/min`

Если агент получает `rate_limit_exceeded`, добавь backoff и убери частый polling.

## Чеклист

* [ ] Ключ хранится вне репозитория
* [ ] В git нет `el_live_...`
* [ ] У каждого агента свой отдельный ключ
* [ ] Есть понятные имена у ключей
* [ ] Подозрительные ключи удаляются или ротируются сразу
