Files
Windmill/f/mail_to_talk/mail_to_talk__flow/flow.yaml
T
Sebastian Serfling 4e19c41cd2 feat: SSH-Key-Auth als primäre Methode, Bitwarden als Fallback
- Neuer Step I (ssh_key_versuch.py): liest SSH-Keys aus DB, testet
  Verbindung per paramiko; erfolgreiche Server landen in server_creds,
  fehlgeschlagene in needs_bitwarden
- Step G (Bitwarden) ist jetzt No-Op wenn alle Server per Key OK
- paramiko.DSSKey in allen 4 Dateien entfernt (nicht in paramiko 4.0)
- failure_module (flow_fehler_handler.py): sendet bei jedem Flow-Fehler
  eine Nextcloud-Talk-Nachricht und bereinigt DB/Session
- Bitwarden-Step überspringt fehlgeschlagene Server statt abzubrechen
- testpause.py als wiederverwendbarer Debug-Helper behalten

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 21:50:17 +02:00

78 lines
2.3 KiB
YAML

summary: E-Mails zu Nextcloud Talk
description: >
Liest ungelesene E-Mails von zwei IMAP-Konten und sendet Benachrichtigungen
an einen Nextcloud Talk Raum. E-Mails werden als gelesen markiert.
schema:
$schema: "http://json-schema.org/draft-07/schema"
type: object
properties:
imap_config_1:
type: object
format: resource-imap
description: "IMAP Konto 1 (Ressource: f/mail_to_talk/imap_config)"
imap_config_2:
type: object
format: resource-imap
description: "IMAP Konto 2 (Ressource: f/mail_to_talk/imap_config_2)"
nextcloud_config:
type: object
format: resource-nextcloud
description: "Nextcloud Zugangsdaten (Ressource: f/mail_to_talk/nextcloud_talk_config)"
required:
- imap_config_1
- imap_config_2
- nextcloud_config
value:
modules:
- id: fetch_emails_1
summary: Ungelesene E-Mails Konto 1 abrufen
value:
type: rawscript
language: python3
content: "!inline fetch_emails.py"
input_transforms:
imap_config:
type: javascript
expr: flow_input.imap_config_1
stop_after_if:
expr: "false"
skip_if_stopped: false
- id: fetch_emails_2
summary: Ungelesene E-Mails Konto 2 abrufen
value:
type: rawscript
language: python3
content: "!inline fetch_emails.py"
input_transforms:
imap_config:
type: javascript
expr: flow_input.imap_config_2
stop_after_if:
expr: "false"
skip_if_stopped: false
- id: send_to_talk
summary: Jede E-Mail an Nextcloud Talk senden
value:
type: forloopflow
iterator:
type: javascript
expr: "[...results.fetch_emails_1, ...results.fetch_emails_2]"
skip_failures: false
parallel: false
modules:
- id: send_message
summary: Nachricht an Nextcloud Talk senden
value:
type: rawscript
language: python3
content: "!inline send_message.py"
input_transforms:
email:
type: javascript
expr: flow_input.iter.value
nextcloud_config:
type: javascript
expr: flow_input.nextcloud_config