# 07-Infra Requirements — ORCH-017 Work Item: **ORCH-017** · Repo: `orchestrator` Опирается на ADR-001 (Р-3). Меняется только env-карта; топология контейнеров/портов — без изменений. ## 1. Новая env-переменная | Ключ | env | Дефолт | Назначение | |------|-----|--------|------------| | `plane_web_url` | `ORCH_PLANE_WEB_URL` | `""` (пусто) | Внешний **браузерный** базовый URL Plane для кликабельной ссылки на issue из Telegram. НЕ путать с внутренним `ORCH_PLANE_API_URL` (`http://localhost:8091`), который пригоден только для API. | ### Семантика резолва (ADR-001 Р-3) ``` plane_web_base = (ORCH_PLANE_WEB_URL or ORCH_PLANE_API_URL).rstrip("/") ``` - Если `plane_web_base` пуст **или** указывает на loopback (`localhost`, `127.0.0.1`, `0.0.0.0`, `[::1]`) — Plane-ссылка **опускается** (graceful degradation, NFR-1). Без заданного `ORCH_PLANE_WEB_URL` уведомление уходит только с BRD-ссылкой — это нормально. ## 2. Что требуется от Owner / INFRA 1. **Подтвердить значение `ORCH_PLANE_WEB_URL`** — внешний адрес Plane UI (тот, по которому Слава открывает Plane в браузере). Это единственный внешний вход, требующий решения Owner. 2. Прописать ключ в `.env` (prod-хост) и `.env.staging` (staging-песочница). В git значение НЕ коммитится — канон секретов/настроек (`.env.example` — образец без значения). 3. Браузерный роут issue, который будет собран: `{ORCH_PLANE_WEB_URL}/{ORCH_PLANE_WORKSPACE_SLUG}/projects/{plane_project_id}/issues/{plane_issue_id}/`. Проверить на одной задаче, что он открывается в текущей версии Plane (см. риск R-3 в `10-tech-risks.md`). ## 3. Переиспользуемые (без изменений) настройки - `ORCH_GITEA_PUBLIC_URL` / `ORCH_GITEA_URL`, `ORCH_GITEA_OWNER` — для BRD-ссылки. - `ORCH_PLANE_WORKSPACE_SLUG` — workspace в Plane-URL. ## 4. Топология / деплой - Контейнеры, порты, сети — **без изменений**. Новый ключ читается из `.env` при старте (`pydantic Settings`, `env_prefix=ORCH_`). - Деплой self (ORCH) — штатный, через обязательный `deploy-staging` (8501) перед прод-деплоем (`orchestrator`, 8500). Рестарт прода сверх обычного деплоя НЕ требуется. - Документировать ключ в env-карте: `CLAUDE.md` и/или `docs/operations/INFRA.md` (в том же PR).