From d99f70c7f452a19408b0f60db2223afce5aeb54f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Tue, 30 Jun 2026 18:42:24 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=E2=9B=94=20TESTING.md=20=E2=80=94=20NE?= =?UTF-8?q?VER=20run=20tests=20against=20PROD=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ops/TESTING.md | 39 +++++++++++++++++++++++++++++++++++++ docs/ops/TROUBLESHOOTING.md | 3 +++ 2 files changed, 42 insertions(+) create mode 100644 docs/ops/TESTING.md diff --git a/docs/ops/TESTING.md b/docs/ops/TESTING.md new file mode 100644 index 0000000..174016f --- /dev/null +++ b/docs/ops/TESTING.md @@ -0,0 +1,39 @@ +# Testing Safety Rules + +## ⛔ ЗАПРЕЩЕНО — прогонять тесты в PROD + +Никакие тесты (интеграционные, генерационные, дымовые) не должны запускаться против +продакшен-API (`https://deck-api.ngcloud.ru`). Это может привести к: + +- Созданию мусорных инстансов в облаке (orphan-ресурсы) +- Запуску операций, влияющих на реальных клиентов +- Исчерпанию лимитов API (rate limiting) +- Неконтролируемым списаниям (биллинг за созданные тестовые ресурсы) + +## ✅ Разрешено для тестов + +- **TEST стенд:** `https://deck-api-test.ngcloud.ru` +- **DEV стенд:** `https://deck-api-dev.ngcloud.ru` +- **Локальные моки:** `httptest.Server` (Go `net/http/httptest`) +- **HAR-based контракт-тесты:** перехваченные HTTP-сессии из `HAR/*.har` + +## Как настроить окружение + +```bash +# TEST стенд (безопасно): +export NUBES_API_ENDPOINT="https://deck-api-test.ngcloud.ru/api/v1/index.cfm" +export NUBES_API_TOKEN="$(cat secrets/test.token)" + +# DEV стенд (безопасно): +export NUBES_API_ENDPOINT="https://deck-api-dev.ngcloud.ru/api/v1/index.cfm" +export NUBES_API_TOKEN="$(cat secrets/dev.token)" + +# PROD — НИКОГДА для тестов! +export NUBES_API_ENDPOINT="https://deck-api.ngcloud.ru/api/v1/index.cfm" # ⛔ +``` + +## Связанные документы + +- `docs/ops/API_TOKENS.md` — матрица токенов и endpoint'ов +- `docs/ops/TROUBLESHOOTING.md` — решение проблем с доступом к API +- `HISTORY/OPUS/3006_2_scripts_analysis.md` — анализ скриптов генерации diff --git a/docs/ops/TROUBLESHOOTING.md b/docs/ops/TROUBLESHOOTING.md index 3392d56..8e86d2c 100644 --- a/docs/ops/TROUBLESHOOTING.md +++ b/docs/ops/TROUBLESHOOTING.md @@ -7,6 +7,9 @@ - **Токен работает, но не на этом endpoint** → токены привязаны к стендам (prod/test/dev) - Правильный curl: `curl -H "User-Agent: Mozilla/5.0 ..." -H "Authorization: Bearer " https://deck-api(-test|-dev).ngcloud.ru/api/v1/index.cfm/...` +## Тестирование +> **⛔ Тесты в PROD не прогонять!** Подробнее: [`docs/ops/TESTING.md`](TESTING.md) + ## Registry Server не отвечает 1. `kubectl -n terraform-registry get pods -l app=registry-server` 2. `kubectl -n terraform-registry logs -l app=registry-server --tail=100`