docs: add authenticated staging pass template

This commit is contained in:
a.tolmachev
2026-04-07 12:56:18 +03:00
parent 05afde62dc
commit e3cd02aa7e
5 changed files with 215 additions and 5 deletions
+1
View File
@@ -47,6 +47,7 @@ Crank - платформа для публикации внешних API в в
- `docs/runtime-config.md` - конфигурация окружения.
- `docs/deployment.md` - деплой, reverse proxy и CI/CD.
- `docs/deploy-and-staging-smoke.md` - канонический post-deploy smoke pass для staging/production-like окружения.
- `docs/authenticated-staging-pass.md` - browser-authenticated pass для UI flows, secrets, wizard и protocol smoke на стенде.
- `docs/staging-regression-notes.md` - журнал реальных замечаний и результатов post-deploy проверок на стенде.
- `docs/demo-runbook.md` - демонстрационный сценарий.
- `docs/public-smoke-targets.md` - готовые публичные upstream-сервисы и payload-ы для smoke-проверки MCP.
+5 -5
View File
@@ -2,18 +2,18 @@
## Current
### `feat/live-staging-run`
### `feat/authenticated-staging-pass`
Status: completed
DoD:
- first real staging regression entry exists
- public routes, auth session JSON, MCP health and legacy redirects are recorded against the live domain
- follow-up for the next authenticated staging pass is captured
- authenticated staging pass template exists
- deploy smoke and staging notes docs link to the authenticated pass
- README exposes the authenticated pass doc as the canonical next step after helper smoke
## Next
- `feat/authenticated-staging-pass`
- `feat/live-authenticated-staging-entry`
## Backlog
+204
View File
@@ -0,0 +1,204 @@
# Authenticated Staging Pass
## 1. Назначение
Этот документ описывает именно тот кусок staging smoke, который нельзя честно закрыть одними `curl` и unauthenticated route checks.
Он покрывает:
- login/logout;
- UI shell после входа;
- `Secrets -> Auth Profiles -> Wizard -> Test run`;
- protocol smoke через UI и MCP;
- streaming pages после реальных вызовов.
Использовать вместе с:
- [deploy-and-staging-smoke.md](/home/a.tolmachev/code/rust/mcpaas/docs/deploy-and-staging-smoke.md)
- [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md)
- [manual-regression-checklist.md](/home/a.tolmachev/code/rust/mcpaas/docs/manual-regression-checklist.md)
## 2. Что нужно заранее
- свежий deploy уже прошел helper smoke:
- `just staging-smoke https://<domain>`
- известны bootstrap admin credentials;
- на стенде есть demo data или подготовленный disposable workspace;
- браузер открыт с devtools, чтобы фиксировать network/console findings.
## 3. Канонический проход
### 3.1. Login and shell
1. Открыть `/login`
2. Проверить:
- invalid login -> корректная ошибка;
- valid login -> redirect на `/`;
- нет redirect loop;
- password-only note видна;
- planned actions на login не выглядят рабочими.
3. После входа проверить:
- current workspace в navbar;
- user identity;
- language switch;
- logout.
### 3.2. Core UI pages
После повторного входа открыть:
- `/`
- `/agents`
- `/api-keys`
- `/secrets`
- `/logs`
- `/usage`
- `/workspace-setup`
- `/settings`
- `/stream-sessions`
- `/async-jobs`
- `/wizard/`
Для каждой страницы зафиксировать:
- `status: passed | partial | failed`
- есть ли console errors;
- есть ли failing XHR/fetch;
- есть ли broken layout.
### 3.3. Secrets and auth profiles
1. Открыть `/secrets`
2. Создать disposable `token` secret
3. При необходимости создать еще:
- `header`
- `username_password`
4. Проверить:
- list/update timestamps;
- rotate;
- delete;
- usage references
### 3.4. Wizard auth flow
1. Открыть `/wizard/`
2. На шаге 2:
- выбрать `No auth`;
- выбрать existing auth profile;
- создать quick secret;
- создать quick auth profile;
3. Сохранить upstream
4. Дойти до `Test run`
5. Подтвердить, что:
- нет `${secrets.*}`;
- upstream сохраняется;
- test run отрабатывает с `auth_profile_ref`.
### 3.5. Protocol smoke
Использовать:
- [public-smoke-targets.md](/home/a.tolmachev/code/rust/mcpaas/docs/public-smoke-targets.md)
Обязательные кейсы:
- `REST`
- `GraphQL`
- `gRPC`
Для каждого:
1. создать или открыть operation;
2. выполнить `Test run`;
3. publish;
4. привязать к agent;
5. выполнить MCP smoke:
- `tools/list`
- `tools/call`
### 3.6. Streaming smoke
Проверить:
- `window` tool;
- `session` tool;
- `async_job` tool;
- `/stream-sessions`;
- `/async-jobs`.
Если WebSocket/SOAP upstream на стенде отсутствуют:
- явно записать `not exercised`, а не оставлять пустым.
## 4. Что нужно занести в staging notes
По итогам authenticated pass в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md) обязательно добавить:
- deploy commit;
- кто проходил smoke;
- что именно проверено;
- что прошло;
- findings с severity;
- infra notes;
- explicit status для:
- auth;
- secrets/auth profiles;
- wizard;
- REST;
- GraphQL;
- gRPC;
- streaming;
- WebSocket;
- SOAP.
## 5. Готовый блок для вставки
```md
## YYYY-MM-DD HH:MM TZ — rmcp.itexp.me (authenticated pass)
- deploy commit: `<sha>`
- checked by: `<name>`
- smoke status: `passed | partial | failed`
- scope:
- auth
- ui shell
- operations
- wizard
- agents
- api keys
- secrets
- logs
- usage
- streaming
- mcp smoke
### Passed
- login/logout completed
- shell pages open after auth
- secrets/auth profile flow status: `<passed|partial|failed>`
- REST smoke: `<passed|partial|failed>`
- GraphQL smoke: `<passed|partial|failed>`
- gRPC smoke: `<passed|partial|failed>`
- streaming pages status: `<passed|partial|failed>`
- WebSocket: `<not exercised|passed|failed>`
- SOAP: `<not exercised|passed|failed>`
### Findings
- none
### Infra notes
- ...
### Follow-up
- ...
```
## 6. Практический статус
На текущий момент этот документ подготовлен как operational template.
Он не заменяет реальный authenticated browser pass и не должен отмечаться как `passed`, пока результаты не занесены в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md).
+4
View File
@@ -11,6 +11,10 @@
Результаты прохождения этого checklist нужно заносить в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md).
Для полного browser-authenticated прохода использовать отдельный документ:
- [authenticated-staging-pass.md](/home/a.tolmachev/code/rust/mcpaas/docs/authenticated-staging-pass.md)
## 2. Когда использовать
Запускать после:
+1
View File
@@ -58,6 +58,7 @@
- [deploy-and-staging-smoke.md](/home/a.tolmachev/code/rust/mcpaas/docs/deploy-and-staging-smoke.md)
- [manual-regression-checklist.md](/home/a.tolmachev/code/rust/mcpaas/docs/manual-regression-checklist.md)
- [authenticated-staging-pass.md](/home/a.tolmachev/code/rust/mcpaas/docs/authenticated-staging-pass.md)
## 2. Как вести записи