Skip to content

Commit bf4fe3b

Browse files
authored
Merge pull request #30 from TimUx/copilot/fix-alarm-mail-filter-issue
Switch alarm-mail routing to TARGET_* config so group filters apply correctly
2 parents abfac6c + 0af2122 commit bf4fe3b

4 files changed

Lines changed: 48 additions & 14 deletions

File tree

.env.example

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,21 @@ ALARM_MAIL_POLL_INTERVAL=60
4444
# Optional: Path to a SQLite file for persistent deduplication (survives service restarts)
4545
# ALARM_MAIL_DEDUP_DB=/path/to/dedup.db
4646

47+
# Alarm Targets (numbered TARGET_* variables)
48+
# Hinweis: Für Gruppenfilter müssen nummerierte Targets verwendet werden.
49+
# Legacy-Varianten ALARM_MAIL_ALARM_MONITOR_* / ALARM_MAIL_ALARM_MESSENGER_* unterstützen keinen Gruppenfilter.
50+
ALARM_MAIL_TARGET_1_TYPE=alarm-monitor
51+
ALARM_MAIL_TARGET_1_URL=http://alarm-monitor:8000
52+
ALARM_MAIL_TARGET_1_API_KEY=change-me-to-random-api-key-for-monitor
53+
# Optional: Kommagetrennte Gruppen für dieses Ziel (leer = alle)
54+
# ALARM_MAIL_TARGET_1_GROUPS=
55+
56+
ALARM_MAIL_TARGET_2_TYPE=alarm-messenger
57+
ALARM_MAIL_TARGET_2_URL=http://alarm-messenger:3000
58+
ALARM_MAIL_TARGET_2_API_KEY=change-me-to-random-api-key-for-messenger
59+
# Optional: Kommagetrennte Gruppen für dieses Ziel (leer = alle)
60+
# ALARM_MAIL_TARGET_2_GROUPS=
61+
4762
# =============================================================================
4863
# ALARM MONITOR CONFIGURATION
4964
# =============================================================================

ARCHITECTURE.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ Das Alarm-System besteht aus drei Hauptkomponenten, die als Docker-Container bet
3535
ALARM_MAIL_IMAP_HOST
3636
ALARM_MAIL_IMAP_USERNAME
3737
ALARM_MAIL_IMAP_PASSWORD
38-
ALARM_MAIL_ALARM_MONITOR_URL=http://alarm-monitor:8000
39-
ALARM_MAIL_ALARM_MONITOR_API_KEY
40-
ALARM_MAIL_ALARM_MESSENGER_URL=http://alarm-messenger:3000
41-
ALARM_MAIL_ALARM_MESSENGER_API_KEY
38+
ALARM_MAIL_TARGET_1_TYPE=alarm-monitor
39+
ALARM_MAIL_TARGET_1_URL=http://alarm-monitor:8000
40+
ALARM_MAIL_TARGET_1_API_KEY
41+
ALARM_MAIL_TARGET_1_GROUPS (optional)
42+
ALARM_MAIL_TARGET_2_TYPE=alarm-messenger
43+
ALARM_MAIL_TARGET_2_URL=http://alarm-messenger:3000
44+
ALARM_MAIL_TARGET_2_API_KEY
45+
ALARM_MAIL_TARGET_2_GROUPS (optional)
4246
```
4347

4448
**Hinweis:** alarm-mail läuft auf Port 8000 als Flask/Gunicorn-Anwendung mit `/health`, `/` und `/metrics` Endpunkten. Der Port wird nicht nach außen exponiert, da kein externer Zugriff benötigt wird. Der interne Health-Check (`curl http://localhost:8000/health`) wird von Docker verwendet.

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,22 @@ ALARM_MAIL_IMAP_PASSWORD=geheim
269269
ALARM_MAIL_POLL_INTERVAL=60 # Abrufintervall in Sekunden
270270
```
271271

272+
#### alarm-mail Ziele & Gruppenfilter
273+
Für Gruppenfilter müssen nummerierte `ALARM_MAIL_TARGET_*` Variablen verwendet werden:
274+
```bash
275+
ALARM_MAIL_TARGET_1_TYPE=alarm-monitor
276+
ALARM_MAIL_TARGET_1_URL=http://alarm-monitor:8000
277+
ALARM_MAIL_TARGET_1_API_KEY=<ALARM_MONITOR_API_KEY>
278+
# ALARM_MAIL_TARGET_1_GROUPS=WIL26,WIL41
279+
280+
ALARM_MAIL_TARGET_2_TYPE=alarm-messenger
281+
ALARM_MAIL_TARGET_2_URL=http://alarm-messenger:3000
282+
ALARM_MAIL_TARGET_2_API_KEY=<ALARM_MESSENGER_API_SECRET_KEY>
283+
# ALARM_MAIL_TARGET_2_GROUPS=WIL26,WIL41
284+
```
285+
Nur Mails, die zum gesetzten Gruppenfilter des jeweiligen Ziels passen, werden an dieses Ziel weitergeleitet und als verarbeitet markiert.
286+
Die Legacy-Variablen `ALARM_MAIL_ALARM_MONITOR_*` / `ALARM_MAIL_ALARM_MESSENGER_*` unterstützen keinen Gruppenfilter.
287+
272288
#### API-Schlüssel (Pflicht)
273289
```bash
274290
# Generieren mit: openssl rand -hex 32

docker-compose.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,18 @@ services:
3232
- ALARM_MAIL_IMAP_SEARCH=${ALARM_MAIL_IMAP_SEARCH:-UNSEEN}
3333
- ALARM_MAIL_POLL_INTERVAL=${ALARM_MAIL_POLL_INTERVAL:-60}
3434

35-
# Alarm Monitor Target (Internal communication)
36-
- ALARM_MAIL_ALARM_MONITOR_URL=http://alarm-monitor:8000
37-
- ALARM_MAIL_ALARM_MONITOR_API_KEY=${ALARM_MONITOR_API_KEY}
38-
39-
# Alarm Messenger Target (Internal communication)
40-
- ALARM_MAIL_ALARM_MESSENGER_URL=http://alarm-messenger:3000
41-
- ALARM_MAIL_ALARM_MESSENGER_API_KEY=${ALARM_MESSENGER_API_SECRET_KEY}
35+
# Alarm Targets (numbered TARGET_* variables; supports per-target group filters)
36+
- ALARM_MAIL_TARGET_1_TYPE=alarm-monitor
37+
- ALARM_MAIL_TARGET_1_URL=http://alarm-monitor:8000
38+
- ALARM_MAIL_TARGET_1_API_KEY=${ALARM_MONITOR_API_KEY}
39+
# - ALARM_MAIL_TARGET_1_GROUPS=${ALARM_MAIL_TARGET_1_GROUPS:-}
40+
- ALARM_MAIL_TARGET_2_TYPE=alarm-messenger
41+
- ALARM_MAIL_TARGET_2_URL=http://alarm-messenger:3000
42+
- ALARM_MAIL_TARGET_2_API_KEY=${ALARM_MESSENGER_API_SECRET_KEY}
43+
# - ALARM_MAIL_TARGET_2_GROUPS=${ALARM_MAIL_TARGET_2_GROUPS:-}
4244

4345
# Optional: HTTP request settings
4446
# - ALARM_MAIL_HTTP_TIMEOUT=${ALARM_MAIL_HTTP_TIMEOUT:-10}
45-
# - ALARM_MAIL_ALARM_MONITOR_VERIFY_SSL=${ALARM_MAIL_ALARM_MONITOR_VERIFY_SSL:-true}
46-
# - ALARM_MAIL_ALARM_MESSENGER_VERIFY_SSL=${ALARM_MAIL_ALARM_MESSENGER_VERIFY_SSL:-true}
47-
4847
# Optional: Deduplication TTL in seconds (default: 300)
4948
# - ALARM_MAIL_DEDUP_TTL=${ALARM_MAIL_DEDUP_TTL:-300}
5049

0 commit comments

Comments
 (0)