diff --git a/docs/how-it-works/01-overview.md b/docs/how-it-works/01-overview.md
index fb446ba5..590bbffc 100644
--- a/docs/how-it-works/01-overview.md
+++ b/docs/how-it-works/01-overview.md
@@ -3,7 +3,7 @@
## System map
```mermaid
-flowchart LR
+flowchart TD
citizen([Citizen])
rsuser([Municipality user
basic RS])
vol([Volunteer
Triage Agent])
@@ -12,8 +12,8 @@ flowchart LR
subgraph Portal["ops-portal (Rails)"]
web[Web UI
/dopyty, /pochvaly, /profil]
jobs[[GoodJob jobs]]
- api[OPS API
/api/v1]
conn[Connector
/connector/*]
+ api[OPS API
/api/v1]
end
subgraph Triage["Triage Zammad"]
@@ -23,7 +23,7 @@ flowchart LR
trig{{Triggers 100-900
schedulers}}
end
- subgraph BO["Backoffice Zammad
(one per PRO RS)"]
+ subgraph BO["Backoffice Zammad, one per PRO RS"]
bt[OPS-xxxx ticket]
sub[SUB-… subtasks]
end
@@ -32,21 +32,33 @@ flowchart LR
citizen --> web
rsuser --> web
- web --> jobs
- jobs -- "REST, TRIAGE_ZAMMAD_API_TOKEN" --> Triage
- Triage -- "webhooks /triage/webhooks/*
X-Hub-Signature" --> jobs
vol --> Triage
- trig -- "RS emails, link ?force_rs_login" --> mail
- jobs -- "citizen emails" --> mail
- mail -.-> rsuser
- jobs -- "signed webhook (ES256)
to Client.url" --> conn
- conn -- "JWT ES256" --> api
- api -- "REST" --> Triage
- conn -- "REST, tenant token" --> BO
- BO -- "webhooks /connector/backoffice/webhook" --> conn
staff --> BO
+ web --> jobs
+ jobs <-- REST / webhooks --> Triage
+ jobs -- webhook --> conn
+ conn -- JWT --> api
+ api -- REST --> Triage
+ conn <-- REST / webhooks --> BO
+ trig -- RS emails --> mail
+ jobs -- citizen emails --> mail
+ rsuser <-.- mail
```
+Connections:
+
+| From → To | How | Auth |
+|---|---|---|
+| Portal jobs → Triage | REST API | `TRIAGE_ZAMMAD_API_TOKEN` |
+| Triage → Portal jobs | webhooks `/triage/webhooks/*` | `X-Hub-Signature` |
+| Portal jobs → Connector | webhook to `Client.url` | signed, ES256 |
+| Connector → OPS API | REST `/api/v1` | JWT, ES256 |
+| OPS API → Triage | REST API | `TRIAGE_ZAMMAD_API_TOKEN` |
+| Connector → Backoffice | REST API | tenant token |
+| Backoffice → Connector | webhook `/connector/backoffice/webhook` | `X-Hub-Signature`, tenant secret |
+| Triage triggers → email | RS emails with a `?force_rs_login` link | — |
+| Portal jobs → email | citizen emails | — |
+
Key points:
- Triage never talks to a Backoffice directly. Everything goes