Add FileFlows ApiKey guard against [REDACTED] key corruption #11

Merged
sascha merged 1 commit from fix/fileflows-apikey-guard-20260916 into main 2026-09-16 11:41:12 +02:00
Owner

Problem

Die FileFlows-API liefert ApiKey-Felder in Flow-Parts beim GET als Literal [REDACTED]. Ein Save aus der Web-UI (oder ein GET -> PUT-Roundtrip) schreibt diesen Platzhalter in die DB.

Folge: Sonarr/Radarr - Trigger Manual Import authentisiert mit [REDACTED], Arr antwortet 401, Node bricht still ab.

Kette:

  • n8n Media-Handoff bleibt auf processing
  • movetdarr.sh pollt den Lease weiter
  • SAB-Job haengt bis 24h-Timeout in der Queue

Symptom: Slow.Horses...S06E01 hing >8h in der sonarrUHD-Queue.

Negativtest (verifiziert 16.09.2026)

Ein sabotierter Key korrumpiert alle vier, weil der GET alle vier als [REDACTED] ausliefert:

vorher:        7878 len 32 | 7879 len 32 | 8989 len 32 | 8990 len 32
nach Sabotage: 7878 len 10 | 7879 len 10 | 8989 len 10 | 8990 len 10
nach Guard:    7878 len 32 | 7879 len 32 | 8989 len 32 | 8990 len 32

Log: Flow f374db54 repariert: 4 Key(s) zurueckgeschrieben (HTTP 200)

Loesung

fileflows/guard/ff-apikey-guard.sh prueft die FileFlows-SQLite auf ApiKeys != 32 Zeichen und schreibt die echten Keys via Butler-Proxy (PUT /fileflows/api/flow) zurueck. Keys kommen aus /app-config/ff-guard/arr-keys.map (mode 600), nie aus Git.

Deployed als systemd-Timer alle 15min auf tdarr (10.2.1.104) — cron ist dort inaktiv.

## Problem Die FileFlows-API liefert `ApiKey`-Felder in Flow-Parts beim `GET` als Literal `[REDACTED]`. Ein Save aus der Web-UI (oder ein `GET -> PUT`-Roundtrip) schreibt diesen Platzhalter in die DB. Folge: `Sonarr/Radarr - Trigger Manual Import` authentisiert mit `[REDACTED]`, Arr antwortet **401**, Node bricht **still** ab. Kette: - n8n Media-Handoff bleibt auf `processing` - `movetdarr.sh` pollt den Lease weiter - SAB-Job haengt bis 24h-Timeout in der Queue Symptom: `Slow.Horses...S06E01` hing >8h in der sonarrUHD-Queue. ## Negativtest (verifiziert 16.09.2026) Ein sabotierter Key korrumpiert **alle vier**, weil der GET alle vier als `[REDACTED]` ausliefert: ``` vorher: 7878 len 32 | 7879 len 32 | 8989 len 32 | 8990 len 32 nach Sabotage: 7878 len 10 | 7879 len 10 | 8989 len 10 | 8990 len 10 nach Guard: 7878 len 32 | 7879 len 32 | 8989 len 32 | 8990 len 32 ``` Log: `Flow f374db54 repariert: 4 Key(s) zurueckgeschrieben (HTTP 200)` ## Loesung `fileflows/guard/ff-apikey-guard.sh` prueft die FileFlows-SQLite auf ApiKeys != 32 Zeichen und schreibt die echten Keys via Butler-Proxy (`PUT /fileflows/api/flow`) zurueck. Keys kommen aus `/app-config/ff-guard/arr-keys.map` (mode 600), nie aus Git. Deployed als systemd-Timer alle 15min auf tdarr (10.2.1.104) — `cron` ist dort inaktiv.
sascha added 1 commit 2026-09-16 11:34:47 +02:00
Die FileFlows-API liefert ApiKey-Felder im GET als [REDACTED]. Ein Save aus
der Web-UI (oder GET->PUT-Roundtrip) schreibt diesen Platzhalter in die DB,
wodurch alle vier Arr-Manual-Import-Nodes still mit 401 fehlschlagen. Der
n8n-Handoff bleibt auf processing, movetdarr.sh pollt weiter und der
SAB-Job haengt bis zum 24h-Timeout in der Queue.

Negativtest bestaetigt: ein sabotierter Key korrumpiert alle vier, weil der
GET alle vier als [REDACTED] ausliefert.

Guard prueft die FileFlows-SQLite auf ApiKeys != 32 Zeichen und schreibt die
echten Keys via Butler-Proxy zurueck. Laeuft als systemd-Timer alle 15min
auf tdarr (cron dort inaktiv).
sascha merged commit d32600aaa2 into main 2026-09-16 11:41:12 +02:00
sascha deleted branch fix/fileflows-apikey-guard-20260916 2026-09-16 11:41:12 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sascha/tdarr#11
No description provided.