From c64812b03922b1114da239d2223dbfeca241263c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 2 Aug 2026 09:47:46 +0400 Subject: [PATCH] =?UTF-8?q?doc:=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BF=D1=82=20?= =?UTF-8?q?=D0=A1=D0=BE=D0=BD=D0=BD=D0=B5=D1=82=D1=83=20=E2=80=94=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20=D0=B0=D1=83=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=20Polygon=20+=20Swagger=20+=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- polygon-docs/sonnet-final-audit-prompt.md | 80 +++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 polygon-docs/sonnet-final-audit-prompt.md diff --git a/polygon-docs/sonnet-final-audit-prompt.md b/polygon-docs/sonnet-final-audit-prompt.md new file mode 100644 index 0000000..9ea1d90 --- /dev/null +++ b/polygon-docs/sonnet-final-audit-prompt.md @@ -0,0 +1,80 @@ +# Соннет: полный аудит Polygon v0.5.5 + Swagger + тесты + +> Адресат: Claude Sonnet 4.6 (новый чат) +> ⛔ Только анализ и советы в чат. Не редактировать файлы. + +--- + +## Что такое Polygon + +Эмулятор REST API облачной платформы Nubes для интеграционных тестов. +Задеплоен на `polygon.pythonk8s.dev.nubes.ru`. Flask 3.0 + gunicorn, 1 воркер. + +**3 изолированных стенда:** dev (37 сервисов), test (37), prod (35). +Состояние в памяти, URL: `/dev/api/v1/svc/...`, `/test/...`, `/prod/...`. +В Swagger — выпадайка выбора стенда. + +YAML-конфиги сервисов генерируются из терраформ-репы +(`~/tf_provider/generated/{dev,test,prod}/resources_yaml/`) через `from_stands.py`. + +**Файлы для анализа:** +- `polygon/site/routes/openapi.py` — OpenAPI 3.1.0 спека (~500 строк) +- `polygon/site/templates/swagger.html` — Swagger UI 5 +- `polygon/site/templates/index.html` — главная страница +- `polygon/site/static/style.css` — дизайн-система +- `polygon/site/routes/` — все роуты (7 blueprint'ов) +- `polygon/tests/test_api.py` — 35 smoke-тестов +- `polygon/tests/fuzz_test.py` — 147 фаззинг-тестов +- `polygon/tests/compare_test.py` — сравнение с реальным API + +## Что уже сделано + +- 17 эндпоинтов, полный CRUD инстансов и операций +- Аутентификация `X-Mock-Auth` для `_mock/*` +- Валидация serviceId (int > 0, не массив, не null) +- 35 smoke + 147 fuzz тестов — 0 реальных багов +- Сравнение с реальным API: YAML ↔ API — 0 расхождений + +## Что нужно от тебя + +### 1. Swagger/OpenAPI + +Открой `polygon/site/routes/openapi.py` и `polygon/site/templates/swagger.html`. +Проанализируй: + +- Полнота схем — все ли поля ответов описаны? +- Правильные ли status codes (200/201/400/404/409)? +- Удобство Try it out — example'ы, enum'ы, default'ы +- Группировка тегов — логично ли? +- Авторизация в Swagger UI — правильно ли работает? +- Нет ли лишнего или недостающего? +- Русские описания — понятны ли, не слишком ли длинные? + +### 2. Сравнительное тестирование + +У нас есть 3 read-only эндпоинта для сравнения: +- `GET /services` +- `GET /services/{id}` +- `GET /instanceOperations/default/{id}` + +Какие ещё эндпоинты можно безопасно сравнивать с реальным API? +Что ещё можно проверить не делая мутирующих запросов? + +### 3. Дополнительные тесты + +Что мы упустили? Какие сценарии, краевые случаи, негативные тесты +стоит добавить? В том числе: +- Тесты через Swagger UI (браузерные) +- Нагрузочные/параллельные +- Специфичные для отдельных сервисов +- Тесты на совместимость с app-autotest + +### 4. Замечания по коду/архитектуре + +Что можно улучшить не переписывая всё? Любые баги, уязвимости, +потенциальные проблемы которые ты видишь. + +--- + +Формат: свободный. Главное — **конкретные советы** с указанием что и где +менять, а не общие рассуждения.