diff --git a/docs/api-design.md b/docs/api-design.md index 1a99649..591eb3b 100644 --- a/docs/api-design.md +++ b/docs/api-design.md @@ -293,7 +293,7 @@ approve/reject над `ActivationRequest`. | ------ | ----------------------------- | ----- | ---------------------------------------------------------------------------- | ------------- | | GET | `/api/admin/nodes` | admin | — | `NodeDto[]` | | POST | `/api/admin/nodes` | admin | `{ name, baseAddress, username, password, location? }` | `NodeDto` | -| PUT | `/api/admin/nodes/{id}` | admin | `{ name, location?, isEnabled, username?, password? }` | `NodeDto` | +| PUT | `/api/admin/nodes/{id}` | admin | `{ name, baseAddress, location?, isEnabled, username?, password? }` | `NodeDto` | | DELETE | `/api/admin/nodes/{id}` | admin | — | `204 No Content` | | POST | `/api/admin/nodes/{id}/sync` | admin | — | `{ inboundsSynced, status }` | | POST | `/api/admin/nodes/{id}/probe` | admin | — | `{ isReachable, errorMessage, status }` | @@ -301,6 +301,9 @@ approve/reject над `ActivationRequest`. `DELETE /api/admin/nodes/{id}` удаляет её инбаунды каскадно **без проверки существующих конфигов** на них — известный пробел (см. [tech-stack.md](tech-stack.md)), а не осознанная защита. `username`/`password` в `PUT` — оба опциональны; креденшлы меняются, только если заданы **оба**. +`baseAddress` в `PUT` обязателен (в отличие от `username`/`password`) — форма всегда шлёт текущее +значение; при реальном изменении бэкенд валидирует новый адрес через `IXuiPanelGateway.ValidateBaseAddress` +и инвалидирует закэшированный per-node клиент гейтвея (как и при смене креденшлов). ## Admin — Inbounds