Files
tf_provider/docs
Repinoid 17350eed89 docs(crud): README и страница сведены в один документ + исправлен бред по коду
Разбор замечаний ревью (проверено по манифестам):
1) рассинхрон: теперь одинаковый набор и порядок разделов в обоих файлах
   (Быстрый старт, Что создаётся, Как это устроено, Что пользователь задаёт сам,
   Код приложений (git), Провайдер, Повседневные операции, Файлы, Особенности
   этого примера, Справка). На странице переименован раздел, перенесены Код
   приложений и Особенности, добавлены Повседневные операции и Файлы; в README
   добавлены Что создаётся, Провайдер и Особенности;
2) ошибка в таблице env: pg_db_name -> Lucee показывал testds_connectionString и
   DATABASE_URL как отдельные значения. По apps/lucee.tf это составные строки
   подключения, а PGDATABASE у Lucee нет; таблица исправлена + пояснение про
   testds_* (JDBC-параметры);
3) pg_host: пояснено, что это внутренний хост для приложений, а сами приложения
   открываются по внешним доменам;
4) пути репозиториев в таблицах приведены к виду из apps/locals.tf — с .git;
5) «уникально в пределах стенда» -> «внутри своего сервиса»;
6) postgres_conf и прочие особенности теперь и в README.
Проверено: пофайловое сравнение разделов (различия только в --- и
{{плейсхолдерах}}), живая страница 166060 байт, cmp с локальной сборкой совпал.
2026-10-02 08:58:38 +03:00
..
2026-06-30 15:45:24 +04:00
2026-06-30 15:45:24 +04:00

Документация (единый корень)

Этот каталог — единый вход для всех материалов. Критические темы собраны в верхнем индексе.

Быстрый старт (критично)

⛔ API: как работать с токеном (читать перед любым curl!)

Токены НЕ ПРОТУХАЮТ до декабря 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))"

⛔ DDoS-Guard: ВСЕГДА нужны 3 заголовка (и старый, и новый API!)

Без них — 403 Forbidden. Это НЕ протухший токен.

-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/

Получить список ВСЕХ сервисов стенда:

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://lk-api-gateway-test.ngcloud.ru/api/v1/svc/services" | jq '.results[] | {svcId, svcShort, svc}'

Списки сохраняются в TOOLS/config/{stand}/services_list.txt.

Сгенерированные YAML (2026-07-16, метод Виталия):

Стенд Сервисов Путь
dev 50 generated/dev/resources_yaml/
test 48 generated/test/resources_yaml/
prod 46 generated/prod/resources_yaml/

44 сервиса идентичны на всех трёх стендах.
Отличия dev: 24 (vcNat), 87 (k8svalkey), 153 (nifi), 175 (k8sGo).
Все map-fixed параметры раскрыты в sub_params через dataDescriptor.
Генерация с прогресс-выводом: видно каждый сервис и каждую операцию.

⛔ Старый API (index.cfm) — ЗАКРЫВАЕТСЯ, НЕ ИСПОЛЬЗОВАТЬ

Историческая справка в apis.txt. Все упоминания в коде помечены LEGACY.

API и схемы

Discovery (полевая информация)

Registry / ресурсы

Аналитика и инциденты

История изменений

Стратегия

Operations (non-CRUD)

S3 события и интеграции