diff --git a/docs/09-integration-guide.md b/docs/09-integration-guide.md index 0a2c28d..bbc54af 100644 --- a/docs/09-integration-guide.md +++ b/docs/09-integration-guide.md @@ -45,7 +45,7 @@ Python: ```bash -pip install "git+https://git.gnexus.space/git/root/gn-synapse-client-py.git@v0.1.0" +pip install "git+https://git.gnexus.space/git/root/gn-synapse-client-py.git@v0.1.2" ``` ```python @@ -83,16 +83,18 @@ - `priority` — `low|normal|high|critical`; critical — только действительно инциденты (обходит throttle правил). +- `user_id=` — конвенция «о ком событие» сразу параметром SDK (uuid gnexus-auth, + перебивает `payload["user_id"]`); личный лог и push адресуются по нему. - `dedup_key` — на «повторяющиеся в окне» события (`ping-<день>`, `issue-`) чтобы не спамить; **best-effort** (24ч-окно, повтор вернёт id первого события с `deduplicated=true`) — не строить бизнес-логику на нём. -- `payload.user_id` — непустая строка (uuid gnexus-auth): это «о ком событие» - (личный лог, личный push). Число/пустая → предупреждение, адресные - доставки пойдут `skipped`. - `ttl_seconds` — забыть событие старше N сек (актуальность), по умолчанию окно от настроек Synapse. - `scheduled_at` — резерв контракта, сервер пока не обрабатывает. +Для приёмки нового источника есть ещё `wait_for_status(event_id, statuses=("done","failed"))` +— поллинг статуса тестового события до терминального или таймаут (§6). + ## 4. Как называть тройки (subject/action) Тройки регистрируются админом один раз каждая — расширение списка это @@ -125,6 +127,8 @@ 1. В либе клиента — интеграционные смоки: - py: `examples/plain/smoke.py`, php: `examples/plain-php/smoke.php` (требуют источник `libtest` и тип; для реального сервиса подставьте своё имя). + Дождаться доставки тестового события — `wait_for_status(id, statuses=("done", "failed"))` + (`waitForStatus` в php), не ручным циклом. 2. Через MCP: `source_list` → `key_issue` → `type_register` → `send_test_event` (прогон правила без кода сервиса) → `deliveries_list`. 3. Отрицательные проверки (дешёвые и полезные): неверное имя источника →