Files
Windmill/f/Reporting/run_sql_events__flow/flow.yaml
T
Sebastian Serfling d22ef502ed sync: Windmill-State übernehmen + neue Reporting-Flows
- Dateien nach Windmill-Naming-Konvention umbenannt (ssh-key_aus_db_testen,
  flow-fehler_per_nextcloud_talk_melden, bitwarden_(fallback))
- testpause-Schritt aus flow.yaml entfernt (Debugging abgeschlossen)
- Neue Flows: f/Reporting/exchange_logins, f/Reporting/run_sql_events
- mail_to_talk: Dateinamen nach Windmill-Konvention synchronisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 13:13:35 +02:00

106 lines
3.7 KiB
YAML

summary: Run SQL Events for Reporting
description: ''
value:
modules:
- id: get_event_def_rows
summary: Liest EVENT_DEFINITION für das MySQL-Event (Zeilen vom Hubskript)
value:
type: script
input_transforms:
mysql_conn:
type: static
value: $res:u/sebastianserfling/fascinating_mysql
query:
type: javascript
expr: "`SELECT EVENT_DEFINITION FROM information_schema.EVENTS WHERE EVENT_NAME
= '${flow_input.event_name ?? 'all_create'}' ORDER BY
(EVENT_SCHEMA = DATABASE()) DESC LIMIT 1`"
path: hub/17540/mysql/execute_query
- id: extract_event_def
summary: Extrahiert EVENT_DEFINITION-String aus den Zeilen
value:
type: rawscript
content: '!inline extrahiert_event_definition-string_aus_den_zeilen.ts'
input_transforms:
rows:
type: javascript
expr: results.get_event_def_rows
lock: '!inline extrahiert_event_definition-string_aus_den_zeilen.lock'
language: bun
- id: parse_calls
summary: Extrahiert alle CALL-Statements aus dem EVENT_DEFINITION-Body
value:
type: rawscript
content: '!inline
extrahiert_alle_call-statements_aus_dem_event_definition-body.ts'
input_transforms:
event_definition:
type: javascript
expr: results.extract_event_def.event_definition
lock: '!inline
extrahiert_alle_call-statements_aus_dem_event_definition-body.lock'
language: bun
- id: loop_calls
summary: Führt jede CALL einzeln aus und sendet bei Fehler Pushover
value:
type: forloopflow
modules:
- id: run_call
summary: Führt eine einzelne CALL aus, sendet bei Fehler Pushover und liefert
Ergebnis
value:
type: rawscript
content: '!inline
führt_eine_einzelne_call_aus,_sendet_bei_fehler_pushover_und_liefert_ergebnis.ts'
input_transforms:
call_sql:
type: javascript
expr: flow_input.iter.value
database_resource_path:
type: static
value: $res:u/sebastianserfling/fascinating_mysql
pushover_token:
type: javascript
expr: flow_input.pushover_token
pushover_user:
type: javascript
expr: flow_input.pushover_user
lock: '!inline
führt_eine_einzelne_call_aus,_sendet_bei_fehler_pushover_und_liefert_ergebnis.lock'
language: bun
iterator:
type: javascript
expr: results.parse_calls || []
parallel: false
skip_failures: true
squash: false
- id: compose_email
summary: Erstellt Betreff und Body mit allen Ergebnissen der CALLs
value:
type: rawscript
content: '!inline erstellt_betreff_und_body_mit_allen_ergebnissen_der_calls.ts'
input_transforms:
event_name:
type: javascript
expr: flow_input.event_name ?? 'all_create'
results_array:
type: javascript
expr: results.loop_calls
subject_prefix:
type: javascript
expr: flow_input.email_subject_prefix ?? ''
lock: '!inline erstellt_betreff_und_body_mit_allen_ergebnissen_der_calls.lock'
language: bun
groups: []
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
order:
- event_name
properties:
event_name:
type: string
description: Name des MySQL Events
default: all_create
required: []