diff --git a/app/models/dicts.py b/app/models/dicts.py index c0fdcc1..c3e981a 100644 --- a/app/models/dicts.py +++ b/app/models/dicts.py @@ -44,8 +44,8 @@ id: Mapped[int] = mapped_column(Integer, primary_key=True) name: Mapped[str] = mapped_column(String(64), unique=True) # slug: "monitoring" label: Mapped[str | None] = mapped_column(String(120)) # человекочитаемое - # Описание «что это за сервис» для человека и ИИ-агента: уходит в s2s-вебхук - # (X-Synapse-метаданные/тело), чтобы получатель не гадал по имени источника. + # Описание «что это за сервис» для человека и ИИ-агента (админка Synapse): + # не гадать по имени источника. В конверт события и s2s-вебхук не входит. description: Mapped[str | None] = mapped_column(Text) created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now() diff --git a/docs/05-ingestion-api.md b/docs/05-ingestion-api.md index e834a92..c74c416 100644 --- a/docs/05-ingestion-api.md +++ b/docs/05-ingestion-api.md @@ -106,18 +106,19 @@ Цепочка доверия: получатель проверил подпись ⇒ целостность и авторство Synapse. Синтезировать чужое событие Synapse не может — на приёме его ключ и `source` сверились бы с реестром (403), а ретрансляция чужого ключом источника невозможна, поскольку событие должно нести `source`, совпадающий с ключом (анти-спуфинг). -Тело s2s-доставки — конверт события плюс описание источника (и человек, и ИИ-агент получателя видят, кто это, без гадания по имени): +Тело s2s-доставки — конверт события без изменений (описание источника в него **не входит**): ```json { "event_id": "uuid", "source": "monitoring", - "source_description": "Демон-контроля контейнеров на swarm-хостах — следит за здоровьем сервисов", "subject": "container", "action": "down", "priority": "critical", "payload": { "container": "nomin-web", "host": "melody" } } ``` +`description` — атрибут записи источника в реестре Synapse (админка), а не поля события: конверт и s2s-вебхук его не несут. Получатель видит имя источника в `X-Synapse-Source`; зачем оно — смотрит в админке Synapse, где у каждого источника/цели прописано описание («что это за сервис» для человека и ИИ-агента, не гадать по названию). + ## Таблицы БД (постановка #34) `api_keys` (хэш, привязка к source) · `notification_types(source, subject, action)` · `routing_rules` (условия, действия, шаблон) · `events` (конверт + payload + статус) · `deliveries` (канал, цель, статус, попытки, ошибки) · `channel_targets`. \ No newline at end of file