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