Kanbanize Kartenerstellung dokumentiert: Arrival-Rule-Workaround, Board-Struktur

- Neuer Abschnitt "Karten erstellen (Aufgaben-Workflow)" mit Workflow A/B
- Bekannte Struktur erweitert: Workflows, Columns, Lanes für Board 1
- Pitfalls ergänzt: Arrival Rule, Parent-Link API, linkedCards read-only
- Settings und Plans aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-05 13:09:09 +01:00
parent f0dae88639
commit 4277b10f55
21 changed files with 2636 additions and 159 deletions

View File

@@ -0,0 +1,146 @@
# Plan: flow.wvits.de intern erreichbar machen
## Ziel
`flow.wvits.de` soll aus ausgewählten internen Netzen voll erreichbar sein (inkl. Formulare, Signup). Externe Zugriffe bleiben auf Webhooks beschränkt.
| Netz | Subnet | Zugriff |
|------|--------|---------|
| Admin-Netz | 10.10.254.0/24 | Voller Zugriff |
| Bodega Client | 10.20.20.0/24 | Voller Zugriff |
| Admin-VPN | 10.250.0.0/24 | Voller Zugriff |
| WuV VPN | 10.250.1.0/24 | Voller Zugriff |
| gw-web02 | 10.10.81.12 | Voller Zugriff |
| Extern | alles andere | Nur Webhooks |
## Verifizierte Diagnose
### Problem 1: Firewall gw-nu-dmz02 blockiert
**Getestet:**
- srv-docker01 (10.10.10.24) → DMZ: **durchkommt** (EasyRule für diesen einzelnen Host)
- srv-docker02 (10.10.10.81) → DMZ: **TIMEOUT** (kein Firewall-Eintrag für Subnet)
**Aktuelle Firewall-Regeln zu srv-revproxy01 (10.10.81.4):**
| Quelle | Alias | Port | Status |
|--------|-------|------|--------|
| 10.10.254.0/24 | NET_NU_ADMIN | SSH, 80, 81, 443, 8443 | ✅ vorhanden |
| 10.250.1.0/24 | WuV_VPN_Client | 443 | ✅ vorhanden |
| 10.250.0.0/24 | WuV_VPN_Admin | 443 | ✅ vorhanden |
| 10.20.20.0/24 | NET_BD_CLIENT | 443 | ✅ vorhanden |
| 10.10.10.24 | (EasyRule) | alle | ✅ nur einzelner Host |
| 10.10.10.0/24 | — | — | Nicht benötigt |
| 10.10.0.0/24 | LAN__NETWORK | — | Nicht benötigt |
| 10.20.0.0/24 | — | — | Nicht benötigt |
**Existierende Aliases (relevant):**
- `WebGatewayNets`: 10.10.10.0/24, 10.10.12.0/27, 10.10.20.0/24, 10.10.40.0/24, 10.10.254.0/24
- `LAN__NETWORK`: 10.10.0.0/24
- `WebGateways`: 10.10.81.10, 10.10.81.11, 10.10.81.12
### Problem 2: nginx allow/deny blockiert
**Getestet:**
- srv-docker01 (10.10.10.24) → Webhook-Pfad: **funktioniert** (n8n antwortet)
- srv-docker01 (10.10.10.24) → Signup-Pfad: **403 Forbidden**
- nginx-Log bestätigt: `client: 10.10.10.24, access forbidden by rule`
**Aktuelle allow/deny im non-webhook Location-Block:**
```nginx
allow 10.10.81.12; # gw-web02
deny all;
# Auskommentiert: 10.10.254.0/24, 10.20.20.0/24, 10.250.1.0/24
```
---
## Lösung
### Schritt 1: Firewall gw-nu-dmz02 — Regeln hinzufügen (User macht das)
Auf pfsense Web-UI von gw-nu-dmz02: Firewall-Regeln auf **em1 (LAN)** prüfen/ergänzen.
**Benötigte Regeln zu srv_revproxy01 (10.10.81.4) Port 443:**
| Quelle | Alias vorhanden? | Regel vorhanden? | Aktion |
|--------|-------------------|------------------|--------|
| 10.10.254.0/24 | `NET_NU_ADMIN` ✅ | ✅ HTTPS erlaubt | Keine Änderung |
| 10.20.20.0/24 | `NET_BD_CLIENT` ✅ | ✅ HTTPS erlaubt | Keine Änderung |
| 10.250.0.0/24 | `WuV_VPN_Admin` ✅ | ✅ HTTPS erlaubt | Keine Änderung |
| 10.250.1.0/24 | `WuV_VPN_Client` ✅ | ✅ HTTPS erlaubt | Keine Änderung |
Alle benötigten Netze haben bereits Firewall-Regeln. **Keine Firewall-Änderung nötig.**
Die EasyRule für 10.10.10.24 (srv-docker01) bleibt bestehen (wird für NPM → DMZ benötigt).
### Schritt 2: nginx.conf anpassen
**Datei:** `/home/vinosadmin/n8n-reverse-proxy/nginx.conf` auf srv-revproxy01
**Zugang:** `ssh -J sshtest@10.10.254.201 vinosadmin@srv-revproxy01`
**Änderung im Location-Block `location /77ba0b14e9ccd5521a0ec1867332378c/`:**
Ersetze:
```nginx
#allow 10.10.254.0/24; # Admin-Netz
#allow 10.20.20.0/24; # Bodega Client Netz
#allow 10.250.1.0/24; # VPN Client Netz
allow 10.10.81.12; # gw-web02
deny all;
```
Durch:
```nginx
allow 10.10.254.0/24; # Admin-Netz
allow 10.20.20.0/24; # Bodega Client Netz
allow 10.250.0.0/24; # Admin-VPN
allow 10.250.1.0/24; # WuV VPN Client Netz
allow 10.10.81.12; # gw-web02
deny all;
```
Nur Bodega-Clients + Admin/VPN. Keine breiten Netz-Freigaben (10.10.0.0/24, 10.20.0.0/24, 10.10.10.0/24).
**Container neu starten:**
```bash
cd /home/vinosadmin/n8n-reverse-proxy && docker compose restart
```
### Schritt 3: Testen
```bash
# Von srv-docker02 (10.10.10.81) — derzeit geblockt durch Firewall:
ssh vinosadmin@srv-docker02 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/signup'"
# Erwartet: HTTP 200 oder 302 (statt Timeout)
# Von srv-docker01 (10.10.10.24) — derzeit geblockt durch nginx:
ssh vinosadmin@srv-docker01 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/signup'"
# Erwartet: HTTP 200 oder 302 (statt 403)
# Webhook weiterhin funktionsfähig:
ssh vinosadmin@srv-docker01 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/webhook-test/test'"
# Erwartet: HTTP 404 (n8n: webhook nicht aktiv — ok)
```
---
## Betroffene Systeme
| System | Zugang | Änderung |
|--------|--------|----------|
| gw-nu-dmz02 | pfsense Web-UI | Keine Änderung nötig (Regeln existieren bereits) |
| srv-revproxy01 | SSH via cli-rwe02 | nginx.conf: allow-Regeln erweitern |
## Verifiziert (keine Änderung nötig)
| Prüfpunkt | Status |
|-----------|--------|
| DNS Split (flow.wvits.de → 10.10.81.4) | ✅ funktioniert (srv-docker01, srv-docker02) |
| real_ip Modul (nginx sieht echte Client-IP) | ✅ bestätigt in nginx-Logs |
| Webhook-Pfade (allow all) | ✅ funktioniert von srv-docker01 |
| NPM-Routing zu nginx Container | ✅ funktioniert |
| Route vom Servernetz zur DMZ | ✅ Route existiert (via 10.10.10.1 → 10.10.0.81) |