doc: промпт Соннету — полный аудит Polygon + Swagger + тесты
This commit is contained in:
@@ -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. Замечания по коду/архитектуре
|
||||||
|
|
||||||
|
Что можно улучшить не переписывая всё? Любые баги, уязвимости,
|
||||||
|
потенциальные проблемы которые ты видишь.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Формат: свободный. Главное — **конкретные советы** с указанием что и где
|
||||||
|
менять, а не общие рассуждения.
|
||||||
Reference in New Issue
Block a user