# Demo Runbook

Документ описывает минимальный Community demo flow.

## Предусловия

- PostgreSQL доступен.
- `admin-api` и `mcp-server` имеют доступ к PostgreSQL.
- Заданы `CRANK_MASTER_KEY`, `CRANK_SESSION_SECRET` и `CRANK_PASSWORD_PEPPER`.
- Bootstrap admin user задан через environment variables.
- UI собран или запущен локально.

## Локальный backend

```bash
cargo run -p admin-api
```

Во втором терминале:

```bash
cargo run -p mcp-server
```

## UI

```bash
cd apps/ui
npm ci
npm run build
```

## Health checks

```bash
curl http://127.0.0.1:3001/health
curl http://127.0.0.1:3002/health
```

Ожидаемые ответы:

```json
{"service":"admin-api","status":"ok"}
{"service":"mcp-server","status":"ok"}
```

## REST operation demo

1. Войти под bootstrap admin user.
2. Создать REST operation в wizard.
3. Настроить upstream URL, method, schemas и mapping.
4. Выполнить test call.
5. Сохранить draft.
6. Опубликовать operation.
7. Привязать published operation к agent.
8. Создать agent API key.
9. Вызвать `tools/list` через agent MCP endpoint.
10. Вызвать published REST tool через `tools/call`.

## YAML roundtrip

YAML roundtrip считается рабочим, если:

1. REST operation экспортируется в YAML.
2. Экспортированный YAML импортируется в режиме `upsert`.
3. Imported draft создает новую version operation.
4. Новую version можно протестировать и опубликовать.

## Post-deploy smoke

```bash
just staging-smoke https://<domain>
```

Authenticated browser smoke:

```bash
export CRANK_STAGING_ADMIN_EMAIL=owner@example.com
export CRANK_STAGING_ADMIN_PASSWORD=secret
just authenticated-staging-smoke https://<domain>
```
