3.9 KiB
Соннет: полный аудит 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 5polygon/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 /servicesGET /services/{id}GET /instanceOperations/default/{id}
Какие ещё эндпоинты можно безопасно сравнивать с реальным API? Что ещё можно проверить не делая мутирующих запросов?
3. Дополнительные тесты
Что мы упустили? Какие сценарии, краевые случаи, негативные тесты стоит добавить? В том числе:
- Тесты через Swagger UI (браузерные)
- Нагрузочные/параллельные
- Специфичные для отдельных сервисов
- Тесты на совместимость с app-autotest
4. Замечания по коду/архитектуре
Что можно улучшить не переписывая всё? Любые баги, уязвимости, потенциальные проблемы которые ты видишь.
Формат: свободный. Главное — конкретные советы с указанием что и где менять, а не общие рассуждения.