diff --git a/README.md b/README.md index dae9f85..a453896 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ Crank - платформа для публикации внешних API в в - `docs/diagrams.md` - диаграммы компонентов, сущностей и БД. - `docs/mcp-interface.md` - модель MCP transport и agent-scoped publishing. - `docs/testing-strategy.md` - стратегия тестирования. +- `docs/manual-regression-checklist.md` - post-integration regression baseline и ручной smoke checklist. - `docs/runtime-config.md` - конфигурация окружения. - `docs/deployment.md` - деплой, reverse proxy и CI/CD. - `docs/demo-runbook.md` - демонстрационный сценарий. diff --git a/TASKS.md b/TASKS.md index 96288a0..c2f56e4 100644 --- a/TASKS.md +++ b/TASKS.md @@ -2,20 +2,19 @@ ## Current -### `feat/wizard-auth-selector` +### `feat/manual-regression-pass` Status: completed DoD: -- wizard step 2 uses auth selector instead of `${secrets.*}` placeholders -- upstream auth is serialized into `execution_config.auth_profile_ref` -- raw auth headers are removed from primary wizard UX -- quick-create secret and auth profile flow works against live backend endpoints -- node checks, UI docker build, and workspace check pass +- Playwright regression suite passes for the Alpine UI shell +- manual smoke checklist exists for auth, workspace, operations, agents, API keys, logs, usage, secrets, wizard, streaming +- public smoke targets are linked from the regression checklist +- docs and TASKS reflect the current post-streaming baseline ## Next -- `feat/manual-regression-pass` +- `feat/post-regression-fixes` ## Backlog diff --git a/docs/manual-regression-checklist.md b/docs/manual-regression-checklist.md new file mode 100644 index 0000000..ca2e509 --- /dev/null +++ b/docs/manual-regression-checklist.md @@ -0,0 +1,207 @@ +# Ручной regression checklist + +## 1. Назначение + +Этот документ фиксирует post-integration baseline для UI, auth, secrets и streaming slices. + +Цель: + +- дать воспроизводимый regression pass после крупных вертикальных срезов; +- отделить автоматический baseline от ручного smoke на стенде; +- не заставлять следующего агента заново собирать сценарии по всему проекту. + +## 2. Автоматический baseline + +Локальный regression baseline на `2026-04-07`: + +- `cargo check --workspace` -> passed; +- `cd apps/ui && npm run e2e` -> `11 passed`; +- e2e стек поднимает: + - `postgres`; + - `admin-api`; + - `mcp-server`; + - fixture servers для streaming; + - локальный UI proxy. + +Покрытые автоматикой сценарии: + +- login; +- operations catalog; +- agents; +- api keys; +- logs; +- usage; +- workspace/settings; +- wizard; +- REST window tool; +- gRPC session tools; +- async job tools. + +## 3. Когда запускать этот pass + +Запускать обязательно после изменений в: + +- auth/session; +- workspace switching; +- operations/wizard; +- agents; +- secrets/auth profiles; +- streaming configuration; +- MCP transport; +- REST SSE, gRPC streaming, WebSocket, SOAP adapters; +- deploy routing/UI routes. + +## 4. Обязательные команды перед ручным проходом + +```bash +cargo check --workspace +cd apps/ui && npm run e2e +``` + +Если одна из команд не проходит, ручной regression pass не считается завершенным. + +## 5. Ручной smoke checklist + +### 5.1. Auth и shell + +- открыть `/login`; +- проверить, что страница не зацикливается на redirect; +- проверить invalid login; +- войти bootstrap admin-пользователем; +- убедиться, что после входа открывается `/`; +- проверить logout; +- войти повторно; +- проверить header identity; +- проверить language switch; +- проверить workspace switch в navbar. + +### 5.2. Operations + +- открыть `/`; +- убедиться, что demo operations загружены; +- проверить search; +- проверить protocol/category/agent filters; +- открыть edit существующей operation; +- удалить operation из demo workspace только если это безопасно для текущего стенда; +- проверить success/error toasts; +- проверить clean routes без `/html/...`. + +### 5.3. Wizard + +- открыть `/wizard/`; +- переключить protocol cards: + - `REST` + - `GraphQL` + - `gRPC` + - `WebSocket` + - `SOAP` +- для нового upstream проверить режимы auth: + - `No auth` + - `Use existing auth profile` + - `Create auth profile now` +- создать quick secret из wizard; +- создать quick auth profile из wizard; +- сохранить upstream; +- убедиться, что `execution_config.auth_profile_ref` попадает в draft/test flow; +- проверить sample upload; +- проверить YAML export/import; +- проверить `Test run`; +- проверить `Publish`. + +### 5.4. Agents + +- открыть `/agents`; +- проверить cards и lifecycle badges; +- открыть drawer; +- проверить bindings; +- создать или обновить agent; +- проверить publish/unpublish/archive flow; +- проверить copy MCP endpoint. + +### 5.5. API Keys + +- открыть `/api-keys`; +- создать key; +- убедиться, что raw key показывается один раз; +- проверить copy; +- проверить revoke; +- проверить delete; +- проверить `last_used_at` после реального machine-auth вызова при необходимости. + +### 5.6. Secrets + +- открыть `/secrets`; +- проверить list/create/rotate/delete; +- создать: + - `token`; + - `username_password`; + - `header`; + - `generic`; +- убедиться, что plaintext не возвращается после create/rotate; +- проверить usage references через auth profiles; +- проверить, что wizard quick-create синхронизируется с этой страницей. + +### 5.7. Logs и Usage + +- открыть `/logs`; +- проверить loading/error/empty states; +- проверить detail expansion; +- открыть `/usage`; +- проверить summary cards; +- проверить timeline chart; +- проверить CSV export. + +### 5.8. Workspace и Settings + +- открыть `/workspace-setup`; +- проверить members; +- проверить invitations; +- проверить role change; +- проверить remove member; +- проверить export workspace; +- проверить delete workspace только на disposable workspace; +- открыть `/settings`; +- проверить profile update; +- проверить password change. + +## 6. Protocol smoke pass + +Для smoke-проверки MCP использовать готовые public targets из [public-smoke-targets.md](/home/a.tolmachev/code/rust/mcpaas/docs/public-smoke-targets.md). + +Обязательные кейсы: + +- REST: [rest-open-meteo.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/rest-open-meteo.operation.json) +- GraphQL: [graphql-countries.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/graphql-countries.operation.json) +- gRPC: [grpc-grpcb-add.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/grpc-grpcb-add.operation.json) + +Streaming regression на локальном e2e стеке: + +- REST SSE window tool; +- gRPC session tools; +- async job tools. + +Ручной post-deploy pass должен дополнительно проверить: + +- WebSocket window/session flow после появления real upstream; +- SOAP import/inspection/test run на disposable WSDL fixture. + +## 7. Acceptance criteria + +Regression pass считается завершенным, если одновременно выполнены условия: + +- `cargo check --workspace` passed; +- Playwright suite passed; +- login/shell/manual navigation не ломаются; +- `Secrets -> Auth Profiles -> Wizard -> Test run` связка работает; +- public smoke targets проходят для `REST`, `GraphQL`, `gRPC`; +- streaming demo scenarios проходят на локальном e2e стеке; +- нет критичных UI regressions на clean routes, i18n и auth redirects. + +## 8. Если что-то падает + +- сначала фиксировать failing automated spec; +- потом чинить ручной smoke regression; +- после фикса повторять: + - `cargo check --workspace`; + - `cd apps/ui && npm run e2e`; +- только потом обновлять статус в `TASKS.md`. diff --git a/docs/testing-strategy.md b/docs/testing-strategy.md index 5736e2d..baf69e8 100644 --- a/docs/testing-strategy.md +++ b/docs/testing-strategy.md @@ -111,6 +111,7 @@ - unit tests для form helpers и schema rendering; - integration tests для critical user flows; - отдельная проверка mapping editor и sample upload flows. +- отдельный regression checklist для post-integration smoke pass: [manual-regression-checklist.md](/home/a.tolmachev/code/rust/mcpaas/docs/manual-regression-checklist.md). ## 6. Что нельзя оставлять без тестов