# Public Smoke Targets

Этот документ фиксирует публичный upstream-сервис, который можно использовать для ручной проверки `REST` operation в `crank-community` без поднятия своего тестового backend-а.

Для Community канонический smoke target только один:

- `REST`

Коммерческие протоколы и их smoke targets живут в private репозиториях и не входят в Community release baseline.

Все примеры ниже дублируются готовыми payload-файлами в [examples/mcp-smoke](../examples/mcp-smoke).

## 1. Источник

- REST: Open-Meteo Weather Forecast API
  `https://open-meteo.com/en/docs`

## 2. Готовые operation payload-ы

- REST: [rest-open-meteo.operation.json](../examples/mcp-smoke/rest-open-meteo.operation.json)
- REST test input: [rest-open-meteo.test-input.json](../examples/mcp-smoke/rest-open-meteo.test-input.json)

## 3. Как использовать

### 3.1. Через UI

1. Создать operation вручную в `Wizard`.
2. Подставить значения из `rest-open-meteo.operation.json`.
3. На шаге теста использовать `rest-open-meteo.test-input.json`.

### 3.2. Через admin-api

Пример для `ws_default`:

```bash
curl -sS -X POST \
  https://rmcp.itexp.me/api/admin/workspaces/ws_default/operations \
  -H 'content-type: application/json' \
  -b cookie.txt \
  --data @examples/mcp-smoke/rest-open-meteo.operation.json
```

Потом test-run:

```bash
curl -sS -X POST \
  https://rmcp.itexp.me/api/admin/workspaces/ws_default/operations/<operation_id>/test-runs \
  -H 'content-type: application/json' \
  -b cookie.txt \
  --data '{
    "version": 1,
    "input": '"$(cat examples/mcp-smoke/rest-open-meteo.test-input.json)"'
  }'
```

Логин перед этим:

```bash
curl -sS -c cookie.txt \
  -H 'content-type: application/json' \
  -X POST https://rmcp.itexp.me/api/auth/login \
  --data '{"email":"<your-email>","password":"<your-password>"}'
```

## 4. Что именно проверяет пример

### 4.1. REST: Open-Meteo

- Protocol: `REST`
- Endpoint: `https://api.open-meteo.com/v1/forecast`
- Проверка:
  - query mapping
  - fixed query defaults
  - JSON response extraction

Ожидаемый upstream response shape:

```json
{
  "timezone": "Europe/Moscow",
  "current": {
    "time": "2026-04-05T22:30",
    "temperature_2m": 3.4,
    "wind_speed_10m": 8.3
  }
}
```

## 5. Практическая рекомендация

Для первого smoke pass использовать operation:

- `weather_current_open_meteo`

Этого достаточно, чтобы проверить весь путь:

- create operation
- test-run
- publish
- bind to agent
- MCP call через `workspace + agent`
