System Wiring Map — Cross-Flow Verbindungen

Wie die 9 Layer-Systeme, Publishing Pipeline, Governance Gates, und operative Prozesse untereinander verbunden sind. Schnittstellen, Flows, Datenwege, und kritische Abhängigkeiten.

1. Die fünf Kernsysteme des IIO

Diese System-Module bilden die physische Basis. Sie sind voneinander abhängig und müssen korrekt verdrahtet sein.

🏗️ Layer Control System
Aufgabe: Führt alle 9 Layer in korrekter Reihenfolge aus
Inputs: Anfrage (REST/CLI), Kontext (User, Tenant, Role)
Outputs: Autorisierungsentscheidung (GO/BLOCK)
iio/base/layer-control/
📋 Governance Gate System
Aufgabe: Fail-closed Checkpoints für Deployments und Änderungen
Gates: Parity, Determinism, Safety, Scope
Outputs: Release-blockiert oder freigegeben
specs/governance/
🎯 Publishing Pipeline
Aufgabe: Koordiniert Content-Delivery, Theme-Injection, und Portal-Updates
Phasen: Seed → Theme → Render → Publish → Verify
Outputs: Live Portale mit Inhalten und Styling
iio/manual/, specs/publishing/
🔐 Identity & Access System
Aufgabe: SSO, Credentials, Keycloak Integration
Modes: Local Dev (no auth), Live (Basic Auth / SSO)
Outputs: JWT, Session Tokens, Access Decisions
specs/infrastructure/keys/, infra-keycloak/
⚙️ Orchestration Engine
Aufgabe: SSH Deployment, Service Lifecycle, Rollouts
Tools: Bash, Caddy, systemd, Docker Compose
Outputs: Running Services, Health Checks, Logs
orchestration/, specs/scripts/

2. Kritische Wiring-Flows

Wie Daten durch die Systeme fließen. Wo sie gecacht, validiert, und transformiert werden.

Flow A: User Request → Layer Decision

HTTP Request arrives
(user@client → manual.intelego.solutions)
Caddy Basic Auth Check (if enabled)
reads runtime/manual-prod-basic-auth.env
Request reaches Service (port 18080)
intelego-manual-prod (Python http.server)
Layer Control evaluates
passes through Layer 1–9 stack
GO/BLOCK Decision
Response with status + body

Flow B: Rollout → Verification

ops-fast-lane.sh manual-portal initiated
Git sync on target (iio + intelego repos)
Runtime credentials provisioned (if auth enabled)
scp to /opt/.../manual-prod-basic-auth.env
sync-manual-prod-caddy.sh runs
generates Caddyfile with basic_auth block
Dual Health Checks
401 (unauth) + 200 (with creds)
Parity Gate
verify live ≡ local source
Evidence Recorded
node-ops-round-*.md with GO status

Flow C: Content Publish → Portal Display

Seed pages in iio/manual/ (e.g., architecture-tree.html)
Theme injection (families/b2b/...)
CSS vars applied dynamically
Publishing pipeline normalizes
syncs to /manual/ on live host
User requests /manual/page.html
served via Caddy reverse_proxy
Browser renders HTML + CSS
theme vars applied, page interactive

3. System-zu-System Verbindungen (Schnittstellen)

Wer redet mit wem? Welche Protokolle, Datenformate, und kritischen Abhängigkeiten?

Von Zu Via (Protokoll/Format) Kritische Configs
Caddy Proxy manual-prod Service HTTP 127.0.0.1:18080 reverse_proxy 127.0.0.1:18080
Rollout Script Caddy Config Sync Bash (SSH Heredoc) sync-manual-prod-caddy.sh
Config YAML Caddy Sync Script Python YAML Parse security.live_proxy.auth.*
Runtime Secrets Caddy basic_auth Environment vars specs/infrastructure/keys/runtime/ (.gitignored)
Parity Check Script Live Manual Portal HTTPS + Basic Auth Header Authorization: Basic base64(user:pass)
Node-Ops Round Parity Gate + Determinism Checks Bash script invocation check-manual-portal-parity.sh
Git Repos (iio + intelego) Target Server SSH git fetch/pull [core] remote = origin (SSH)
Local Space Preview intelego-manual-prod HTTP 127.0.0.1:18080 (no auth) security.local_preview.auth: "off"

4. Konfigurationsschema-Referenz

Die YAML-Konfiguration, die alle Verbindungen treibt. Dieses Schema ist Quelle der Wahrheit.

manual-prod/config.yaml — Security Model

security: local_preview: auth: "off" ← Lokal bleibt offen live_proxy: domain: manual.intelego.solutions auth: enabled: true ← Toggle für Live-Protection mode: basic-auth credential_ref: specs/infrastructure/keys/runtime/manual-prod-basic-auth.env username_env: MANUAL_PORTAL_BASIC_AUTH_USER password_env: MANUAL_PORTAL_BASIC_AUTH_PASSWORD password_hash_env: MANUAL_PORTAL_BASIC_AUTH_HASH

Runtime Secret File (gitignored)

MANUAL_PORTAL_BASIC_AUTH_USER=iio MANUAL_PORTAL_BASIC_AUTH_PASSWORD=<secure password>

5. Kritische Abhängigkeiten und Fail-Points

Wenn diese ausfallen, falliert die ganze Manual Portal. Das sind Deine Fehler-Diagnosepunkte.

⚠️ Git Repos nicht aktuell
Impact: Rollout fehlgeschlagen
Fix: git fetch + git pull auf Target
Symptom: "Already up to date" oder "merge conflict"
⚠️ Runtime Secret fehlend
Impact: Caddy kann keine Credentials laden
Fix: Datei existiert lokal UND wird scp'd?
Symptom: 401 alle Requests, Caddy logs zeigen "hash-password failed"
⚠️ Caddy Config Syntax Error
Impact: Service startet nicht
Fix: caddy validate auf Target
Symptom: Service aktiv aber 502 responses
🔸 Manual content nicht synchronisiert
Impact: Alte Seiten in Live, Parity Gate blockiert
Fix: iio/manual Repo committet und gepusht?
Symptom: Parity check zeigt "same=False" bei Dateien
✓ Health Check Policy
Muss bestehen: 401 ohne Creds, 200 mit Creds
Wenn nicht: Auth disabled oder credentials wrong
Logic: In rollout-manual-portal.sh Step 7a

6. Quick Reference — Schichtenüberblick

Welche Datei ist für was verantwortlich?

System Wiring Map — Generated 2026-04-28. Dokumentiert die physischen und logischen Verbindungen zwischen allen IIO Kernsystemen.