docs: Gateway API — списки сервисов, DDoS-Guard заголовки, метод Виталия
This commit is contained in:
@@ -37,7 +37,6 @@
|
|||||||
27 vc_vm_v2 # VM в Cloud Director (vc_vmV2)
|
27 vc_vm_v2 # VM в Cloud Director (vc_vmV2)
|
||||||
26 vapp # Виртуальный каталог ВМ (vApp)
|
26 vapp # Виртуальный каталог ВМ (vApp)
|
||||||
25 vcexternalip # Публичные IP адреса
|
25 vcexternalip # Публичные IP адреса
|
||||||
24 svc24 # DEPRECATED Правила маршрутизации для VM (vc_nat)
|
|
||||||
23 vc_vm # VM в Cloud Director (старый формат) (vc_vm)
|
23 vc_vm # VM в Cloud Director (старый формат) (vc_vm)
|
||||||
22 vc_nsxt # Сетевой шлюз периметра (Edge)
|
22 vc_nsxt # Сетевой шлюз периметра (Edge)
|
||||||
21 vc_vdc # Виртуальный датацентр (vDC)
|
21 vc_vdc # Виртуальный датацентр (vDC)
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
27 vc_vm_v2 # VM в Cloud Director (vc_vmV2)
|
27 vc_vm_v2 # VM в Cloud Director (vc_vmV2)
|
||||||
26 vapp # Виртуальный каталог ВМ (vApp)
|
26 vapp # Виртуальный каталог ВМ (vApp)
|
||||||
25 vcexternalip # Публичные IP адреса
|
25 vcexternalip # Публичные IP адреса
|
||||||
24 svc24 # DEPRECATED Правила маршрутизации для VM (vc_nat)
|
|
||||||
23 vc_vm # VM в Cloud Director (старый формат) (vc_vm)
|
23 vc_vm # VM в Cloud Director (старый формат) (vc_vm)
|
||||||
22 vc_nsxt # Сетевой шлюз периметра (Edge)
|
22 vc_nsxt # Сетевой шлюз периметра (Edge)
|
||||||
21 vc_vdc # Виртуальный датацентр (vDC)
|
21 vc_vdc # Виртуальный датацентр (vDC)
|
||||||
|
|||||||
+27
-16
@@ -13,31 +13,42 @@
|
|||||||
**Токены НЕ ПРОТУХАЮТ до декабря 2026.** Они в `secrets/{dev,test,prod}.token`.
|
**Токены НЕ ПРОТУХАЮТ до декабря 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))"`
|
Проверить дату: `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
|
```bash
|
||||||
curl -s --max-time 10 \
|
curl -s --max-time 10 \
|
||||||
-H "Authorization: Bearer $(cat secrets/test.token)" \
|
-H "Authorization: Bearer $(cat secrets/test.token)" \
|
||||||
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" \
|
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" \
|
||||||
-H "Referer: https://deck-test.ngcloud.ru/" \
|
-H "Referer: https://deck-test.ngcloud.ru/" \
|
||||||
"https://deck-api-test.ngcloud.ru/api/v1/index.cfm?endpoint=/services/90"
|
"https://lk-api-gateway-test.ngcloud.ru/api/v1/svc/services" | jq '.results[] | {svcId, svcShort, svc}'
|
||||||
```
|
|
||||||
**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"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
| Стенд | Старый API | Новый Gateway | Referer |
|
Списки сохраняются в `TOOLS/config/{stand}/services_list.txt`.
|
||||||
|-------|-----------|---------------|---------|
|
|
||||||
| test | `deck-api-test.ngcloud.ru/api/v1/index.cfm` | `lk-api-gateway-test.ngcloud.ru/api/v1/svc` | `https://deck-test.ngcloud.ru/` |
|
### ⛔ Старый API (index.cfm) — ЗАКРЫВАЕТСЯ, НЕ ИСПОЛЬЗОВАТЬ
|
||||||
| 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/` |
|
Историческая справка в `apis.txt`. Все упоминания в коде помечены `LEGACY`.
|
||||||
|
|
||||||
## API и схемы
|
## 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)
|
- Полный API-дамп: [docs/70_api/api_analysis/API_DOCUMENTATION_SUMMARY.md](70_api/api_analysis/API_DOCUMENTATION_SUMMARY.md)
|
||||||
|
|
||||||
## Discovery (полевая информация)
|
## Discovery (полевая информация)
|
||||||
|
|||||||
+24
-21
@@ -1,34 +1,37 @@
|
|||||||
# Nubes API Reference
|
# 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 |
|
| Стенд | URL |
|
||||||
|---|---|
|
|---|---|
|
||||||
| DEV | `https://deck-api-dev.ngcloud.ru/api/v1/index.cfm` |
|
| DEV | `https://deck-api-dev.ngcloud.ru/api/v1/index.cfm` |
|
||||||
| TEST | `https://deck-api-test.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` |
|
| 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 идентичен).
|
Данные возвращаются те же, что и в старом API (JSON идентичен).
|
||||||
|
|
||||||
## Токены
|
## Токены
|
||||||
|
|||||||
Reference in New Issue
Block a user