docs: add authenticated staging pass template
This commit is contained in:
@@ -47,6 +47,7 @@ Crank - платформа для публикации внешних API в в
|
|||||||
- `docs/runtime-config.md` - конфигурация окружения.
|
- `docs/runtime-config.md` - конфигурация окружения.
|
||||||
- `docs/deployment.md` - деплой, reverse proxy и CI/CD.
|
- `docs/deployment.md` - деплой, reverse proxy и CI/CD.
|
||||||
- `docs/deploy-and-staging-smoke.md` - канонический post-deploy smoke pass для staging/production-like окружения.
|
- `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/staging-regression-notes.md` - журнал реальных замечаний и результатов post-deploy проверок на стенде.
|
||||||
- `docs/demo-runbook.md` - демонстрационный сценарий.
|
- `docs/demo-runbook.md` - демонстрационный сценарий.
|
||||||
- `docs/public-smoke-targets.md` - готовые публичные upstream-сервисы и payload-ы для smoke-проверки MCP.
|
- `docs/public-smoke-targets.md` - готовые публичные upstream-сервисы и payload-ы для smoke-проверки MCP.
|
||||||
|
|||||||
@@ -2,18 +2,18 @@
|
|||||||
|
|
||||||
## Current
|
## Current
|
||||||
|
|
||||||
### `feat/live-staging-run`
|
### `feat/authenticated-staging-pass`
|
||||||
|
|
||||||
Status: completed
|
Status: completed
|
||||||
|
|
||||||
DoD:
|
DoD:
|
||||||
- first real staging regression entry exists
|
- authenticated staging pass template exists
|
||||||
- public routes, auth session JSON, MCP health and legacy redirects are recorded against the live domain
|
- deploy smoke and staging notes docs link to the authenticated pass
|
||||||
- follow-up for the next authenticated staging pass is captured
|
- README exposes the authenticated pass doc as the canonical next step after helper smoke
|
||||||
|
|
||||||
## Next
|
## Next
|
||||||
|
|
||||||
- `feat/authenticated-staging-pass`
|
- `feat/live-authenticated-staging-entry`
|
||||||
|
|
||||||
## Backlog
|
## Backlog
|
||||||
|
|
||||||
|
|||||||
@@ -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).
|
||||||
@@ -11,6 +11,10 @@
|
|||||||
|
|
||||||
Результаты прохождения этого checklist нужно заносить в [staging-regression-notes.md](/home/a.tolmachev/code/rust/mcpaas/docs/staging-regression-notes.md).
|
Результаты прохождения этого 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. Когда использовать
|
## 2. Когда использовать
|
||||||
|
|
||||||
Запускать после:
|
Запускать после:
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
|
|
||||||
- [deploy-and-staging-smoke.md](/home/a.tolmachev/code/rust/mcpaas/docs/deploy-and-staging-smoke.md)
|
- [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)
|
- [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. Как вести записи
|
## 2. Как вести записи
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user