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

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 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. Замечания по коду/архитектуре

Что можно улучшить не переписывая всё? Любые баги, уязвимости, потенциальные проблемы которые ты видишь.


Формат: свободный. Главное — конкретные советы с указанием что и где менять, а не общие рассуждения.