From ce92ccb7dec590453891c02d92c8cb013b7f6e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 16 Jul 2026 13:52:27 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20Gateway=20API=20=E2=80=94=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BA=D0=B8=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8?= =?UTF-8?q?=D1=81=D0=BE=D0=B2,=20DDoS-Guard=20=D0=B7=D0=B0=D0=B3=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2=D0=BA=D0=B8,=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=92=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TOOLS/config/prod/services_list.txt | 1 - TOOLS/config/test/services_list.txt | 1 - docs/README.md | 43 +++++++++++++++++---------- secrets/stands.md | 45 +++++++++++++++-------------- 4 files changed, 51 insertions(+), 39 deletions(-) diff --git a/TOOLS/config/prod/services_list.txt b/TOOLS/config/prod/services_list.txt index db09dab..a955c53 100644 --- a/TOOLS/config/prod/services_list.txt +++ b/TOOLS/config/prod/services_list.txt @@ -37,7 +37,6 @@ 27 vc_vm_v2 # VM в Cloud Director (vc_vmV2) 26 vapp # Виртуальный каталог ВМ (vApp) 25 vcexternalip # Публичные IP адреса -24 svc24 # DEPRECATED Правила маршрутизации для VM (vc_nat) 23 vc_vm # VM в Cloud Director (старый формат) (vc_vm) 22 vc_nsxt # Сетевой шлюз периметра (Edge) 21 vc_vdc # Виртуальный датацентр (vDC) diff --git a/TOOLS/config/test/services_list.txt b/TOOLS/config/test/services_list.txt index ca988c5..739b3b1 100644 --- a/TOOLS/config/test/services_list.txt +++ b/TOOLS/config/test/services_list.txt @@ -39,7 +39,6 @@ 27 vc_vm_v2 # VM в Cloud Director (vc_vmV2) 26 vapp # Виртуальный каталог ВМ (vApp) 25 vcexternalip # Публичные IP адреса -24 svc24 # DEPRECATED Правила маршрутизации для VM (vc_nat) 23 vc_vm # VM в Cloud Director (старый формат) (vc_vm) 22 vc_nsxt # Сетевой шлюз периметра (Edge) 21 vc_vdc # Виртуальный датацентр (vDC) diff --git a/docs/README.md b/docs/README.md index 2e8a03e..74f3551 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,31 +13,42 @@ **Токены НЕ ПРОТУХАЮТ до декабря 2026.** Они в `secrets/{dev,test,prod}.token`. Проверить дату: `python3 -c "import json,base64; t=open('secrets/test.token').read().split('.'); d=json.loads(base64.urlsafe_b64decode(t[1]+'==')); from datetime import datetime,timezone; print(datetime.fromtimestamp(d['exp'],tz=timezone.utc))"` -**Старый API (index.cfm) — DDoS-Guard требует 3 заголовка, иначе 403:** +### ⛔ DDoS-Guard: ВСЕГДА нужны 3 заголовка (и старый, и новый API!) + +**Без них — 403 Forbidden. Это НЕ протухший токен.** + +```bash +-H "Authorization: Bearer $TOKEN" +-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" +-H "Referer: https://deck-{stand}.ngcloud.ru/" +``` + +### Актуальный API (Gateway) — только его использовать: + +| Стенд | Gateway URL | Referer | +|-------|-------------|---------| +| test | `https://lk-api-gateway-test.ngcloud.ru/api/v1/svc` | `https://deck-test.ngcloud.ru/` | +| dev | `https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc` | `https://deck-dev.ngcloud.ru/` | +| prod | `https://lk-api-gateway.ngcloud.ru/api/v1/svc` | `https://deck.ngcloud.ru/` | + +### Получить список ВСЕХ сервисов стенда: + ```bash curl -s --max-time 10 \ -H "Authorization: Bearer $(cat secrets/test.token)" \ -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" \ -H "Referer: https://deck-test.ngcloud.ru/" \ - "https://deck-api-test.ngcloud.ru/api/v1/index.cfm?endpoint=/services/90" -``` -**Referer должен совпадать со стендом!** Без Referer — 403. Без User-Agent — 403. - -**Новый Gateway (lk-api-gateway) — только Authorization:** -```bash -curl -s --max-time 10 \ - -H "Authorization: Bearer $(cat secrets/test.token)" \ - "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc/services/90" + "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc/services" | jq '.results[] | {svcId, svcShort, svc}' ``` -| Стенд | Старый API | Новый Gateway | Referer | -|-------|-----------|---------------|---------| -| test | `deck-api-test.ngcloud.ru/api/v1/index.cfm` | `lk-api-gateway-test.ngcloud.ru/api/v1/svc` | `https://deck-test.ngcloud.ru/` | -| dev | `deck-api-dev.ngcloud.ru/api/v1/index.cfm` | `lk-api-gateway-dev.ngcloud.ru/api/v1/svc` | `https://deck-dev.ngcloud.ru/` | -| prod | `deck-api.ngcloud.ru/api/v1/index.cfm` | `lk-api-gateway.ngcloud.ru/api/v1/svc` | `https://deck.ngcloud.ru/` | +Списки сохраняются в `TOOLS/config/{stand}/services_list.txt`. + +### ⛔ Старый API (index.cfm) — ЗАКРЫВАЕТСЯ, НЕ ИСПОЛЬЗОВАТЬ + +Историческая справка в `apis.txt`. Все упоминания в коде помечены `LEGACY`. ## API и схемы -- Алгоритмы API-дискавери: [docs/70_api/api-discovery-algorithms.md](70_api/api-discovery-algorithms.md) +- **Метод Виталия (получение параметров):** [docs/70_api/api-discovery-algorithms.md](70_api/api-discovery-algorithms.md) - Полный API-дамп: [docs/70_api/api_analysis/API_DOCUMENTATION_SUMMARY.md](70_api/api_analysis/API_DOCUMENTATION_SUMMARY.md) ## Discovery (полевая информация) diff --git a/secrets/stands.md b/secrets/stands.md index 0daf7f7..92732d9 100644 --- a/secrets/stands.md +++ b/secrets/stands.md @@ -1,34 +1,37 @@ # Nubes API Reference -## Старый API (deck-api) — работает, проверено 2026-07-01 +## ⛔ Актуальный API — ТОЛЬКО Gateway (lk-api-gateway) -Формат: `?endpoint=/instances&page=1&size=...` +DDoS-Guard требует 3 заголовка для ВСЕХ запросов: +```bash +-H "Authorization: Bearer $TOKEN" +-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" +-H "Referer: https://deck-{stand}.ngcloud.ru/" +``` +| Стенд | Gateway URL | Referer | Токен | +|-------|-------------|---------|-------| +| DEV | `https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc` | `https://deck-dev.ngcloud.ru/` | `secrets/dev.token` | +| TEST | `https://lk-api-gateway-test.ngcloud.ru/api/v1/svc` | `https://deck-test.ngcloud.ru/` | `secrets/test.token` | +| PROD | `https://lk-api-gateway.ngcloud.ru/api/v1/svc` | `https://deck.ngcloud.ru/` | `secrets/prod.token` | + +## Проверенные эндпоинты Gateway: + +``` +GET /services — список всех сервисов +GET /services/{svcId} — метаданные сервиса + операции +GET /instanceOperations/default/{svcOperationId} — параметры с dataDescriptor и valueList (метод Виталия) +``` + +## ⛔ Старый API (deck-api/index.cfm) — ЗАКРЫВАЕТСЯ, НЕ ИСПОЛЬЗОВАТЬ + +Историческая справка: | Стенд | URL | |---|---| | DEV | `https://deck-api-dev.ngcloud.ru/api/v1/index.cfm` | | TEST | `https://deck-api-test.ngcloud.ru/api/v1/index.cfm` | | PROD | `https://deck-api.ngcloud.ru/api/v1/index.cfm` | -## Новый API Gateway (lk-api-gateway) — работает, проверено 2026-07-01 - -Формат: REST-пути (`/instances` вместо `?endpoint=/instances`) - -| Стенд | URL | -|---|---| -| DEV | `https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc` | -| TEST | `https://lk-api-gateway-test.ngcloud.ru/api/v1/svc` | -| PROD | `https://lk-api-gateway.ngcloud.ru/api/v1/svc` | - -## Проверенные эндпоинты нового gateway - -``` -GET /api/v1/svc -GET /api/v1/svc/instances?page=1&size=... -GET /api/v1/svc/instances/{instanceUid} (предположительно) -POST /api/v1/svc/instances (предположительно) -``` - Данные возвращаются те же, что и в старом API (JSON идентичен). ## Токены