docs: Gateway API — списки сервисов, DDoS-Guard заголовки, метод Виталия

This commit is contained in:
“Naeel”
2026-07-16 13:52:27 +04:00
parent ec1d933221
commit ce92ccb7de
4 changed files with 51 additions and 39 deletions
-1
View File
@@ -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)
-1
View File
@@ -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)
+27 -16
View File
@@ -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 (полевая информация)
+24 -21
View File
@@ -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 идентичен).
## Токены