# Защищённые окружения (/ru/docs/workspaces/protected-environments)

Защищённое окружение спрашивает, прежде чем в него что-либо отправится. Пометьте окружение production как защищённое,
и случайное <kbd>⌘</kbd><kbd>R</kbd>, запуск в Прогоне или вызов агента не дойдут до него, пока кто-нибудь не
согласится. Защищённые окружения везде отмечены красным.

## Как защитить окружение [#protect-an-environment]

1. Откройте страницу [«Окружения»](/docs/workspaces/environments) (<kbd>⌥</kbd><kbd>⌘</kbd><kbd>E</kbd>).
2. Выберите окружение.
3. Включите **Защищённое** рядом с его именем.

Строка окружения и его точка в меню окружений становятся красными, со щитом. В файле это одна строка, поэтому выбор
действует для всех, кто открывает рабочее пространство:

```toml
name = "Production"
protected = true
```

В Alpenglow окружение **Production** защищено.

## Что спрашивает подтверждение [#what-asks-first]

Пока активно защищённое окружение, перед отправкой подтверждения требуют такие действия:

| Что вы запускаете | Где |
| --- | --- |
| Отправка запроса любого вида, включая безопасные методы вроде `GET` | Страница запроса: **Отправить**, **Запрос › Отправить** (<kbd>⌘</kbd><kbd>R</kbd>), <kbd>⌘</kbd><kbd>↩</kbd> |
| Подключение WebSocket, Socket.IO, MQTT или другого сеанса | Страница запроса: **Соединить** |
| Сообщения в сеансе, открытом до переключения на защищённое окружение | Страница запроса |
| Прогон | [Прогон](/docs/requests/runner): **Запустить**, один раз за прогон |
| Запуск сценария | Страница [«Сценарии»](/docs/flows): **Запустить** |
| Быстрая отправка | Панель [Быстрой отправки](/docs/mac/quick-send) |
| Действия «Быстрых команд» | Вопрос показывает приложение [«Быстрые команды»](/docs/mac/shortcuts) |
| Вызовы, проверки и наблюдения | Страница [«MCP-серверы»](/docs/mcp-servers) |
| Получение токена OAuth 2.0, загрузка схемы GraphQL, рефлексия gRPC | Страница запроса |

Кнопки сообщают об этом заранее: **Отправить** превращается в **Отправить в Production…**, **Соединить** — в
**Подключиться к Production…**, а **Запустить** — в **Запустить (Production)…**, красным цветом.

<Shot id="workspaces-protected-send-button" alt="Запрос Catalog › List products при активном Production: кнопка «Отправить» превратилась в красную «Отправить в Production…»" />

## Вопрос [#the-question]

В вопросе названо окружение и показано, что будет отправлено: метод и разрешённый адрес, секреты скрыты. Например:

> **Отправить в Production?**
>
> Окружение Production защищено. Каждая отправка требует подтверждения.
>
> GET https://api.alpenglow.example/v1/products?category=tents&in_stock=true&sort=-price&per_page=10

- **Отменить** — кнопка по умолчанию: <kbd>↩</kbd> отменяет, и <kbd>Esc</kbd> тоже. Ничто не уходит в защищённое
  окружение случайно.
- **Отправить** (или **Подключиться**, или **Запустить**) отправляет. Нажмите её мышью.
- **Не спрашивать до смены окружения** отключает вопросы в этом окне, пока вы не выберете другое окружение. Echolot
  держит это только в памяти: на диск это никогда не записывается и заканчивается, когда вы переключаетесь, закрываете
  окно или выходите из приложения.

<Shot id="workspaces-protected-send-question" alt="Вопрос «Отправить в Production?» над страницей запроса: «Отменить» — кнопка по умолчанию, ниже флажок «Не спрашивать до смены окружения»" />

## Что вместо этого делают агенты [#what-agents-do-instead]

ИИ-агенты никогда не проходят защищённое окружение самостоятельно. Каждая отправка в него, каким бы ни был метод и что
бы ни говорили правила агентов рабочего пространства, спрашивает вас в листе одобрения агента. В листе написано:
«Окружение защищено, поэтому каждая отправка требует подтверждения, независимо от метода и политики».
**Разрешить один раз** там не кнопка по умолчанию, поэтому <kbd>↩</kbd> не одобряет вызов. **Разрешить на этот сеанс** позволяет тому же
вызову пройти снова без вопроса, пока окно не закроется; **Отклонить** отказывает.

Это верно и для встроенного [Ассистента](/docs/ai/assistant), и для [внешних агентов](/docs/ai/agents), работающих
через MCP-сервер Echolot. Правила агентов в рабочем пространстве никогда не могут прямо разрешить отправку в защищённые
окружения. Когда `echolot mcp serve` работает без интерфейса и спросить некого, такие отправки отклоняются.

## Командная строка [#the-command-line]

`echolot run`, `echolot send` и другие команды не спрашивают: выбор `--env production` в командной строке и есть
решение. Если CI никогда не должна дотягиваться до production, не храните учётные данные production в секретах CI.

## Советы [#tips]

- Защищайте каждое окружение, которое указывает на настоящие данные, а не только Production.
- [Echo](/docs/ai/echo), экран состояния, показывает красное напоминание, пока активно защищённое окружение.
- Чтобы какое-то время работать с production без вопросов, используйте **Не спрашивать до смены окружения**, а не
  выключайте **Защищённое**: защита остаётся для коллег и агентов.
