39 lines
3.0 KiB
Markdown
39 lines
3.0 KiB
Markdown
# 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).
|