Files
autotest/polygon-docs/sonnet-final-audit-prompt.md
T

81 lines
3.9 KiB
Markdown

# Соннет: полный аудит 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. Замечания по коду/архитектуре
Что можно улучшить не переписывая всё? Любые баги, уязвимости,
потенциальные проблемы которые ты видишь.
---
Формат: свободный. Главное — **конкретные советы** с указанием что и где
менять, а не общие рассуждения.