# RELEASE_CONTENTS.md – ITSWEBER CMS v3.4.1

## Zweck

Dokumentation des aktuellen Release-Stands v3.4.1 für Endnutzer und Betreiber des ITSWEBER CMS.

---

## Release-Dateien

| Artefakt | Datei | Pfad |
|---|---|---|
| **Voll-Release 3.4.0** | `ITSWEBER_CMS_v3.4.0.zip` | `artifacts/releases/` |
| **Update 3.4.0 → 3.4.1** | `itsweber-cms-update-3.4.1.zip` | `artifacts/updates/` |
| **Update 3.3.0 → 3.4.0** | `itsweber-cms-update-3.4.0.zip` | `artifacts/updates/` |

### Installationspfad

**Frische Neuinstallation:** `ITSWEBER_CMS_v3.4.0.zip` entpacken, Document Root auf `public/` setzen, `/installer` im Browser aufrufen. Der Installer führt durch 7 Schritte (Systemcheck, Datenbank, Tabellen, Admin-Benutzer, Site-Setup, Mail-Konfiguration, Abschluss). Nach der Installation: Themes und Plugins über den Admin-Bereich nachinstallieren.

**Update von 3.3.0:** `itsweber-cms-update-3.4.0.zip` über Admin → CMS-Update einspielen. Preflight-Check, Migrations-Ausführung und Datei-Update laufen automatisch.

---

## Enthaltene Hauptgruppen (Core-Release-Basis)

| Pfad | Beschreibung |
|---|---|
| `app/` | Core-Logik, Models, Services, HTTP-Layer, Config, Helpers |
| `admin/` | Admin-Backend (Controller, Views, Assets) |
| `installer/` | Web-Installer (Views, Assets) |
| `public/` | Document Root – einziger per Webserver erreichbarer Bereich |
| `themes/` | Core-Themes: default (3.4.0), business (3.4.0), creative (3.4.0) |
| `database/migrations/` | PHP-Migrationen (001–057) |
| `storage/` | Laufzeit-Verzeichnisstruktur (Cache, Logs, Sessions, Temp) |
| `database/seeds/` | Default-Daten und Starter-Content-Seeds |
| `README.md` | Installations- und Betriebsdokumentation |

---

## Bewusst ausgeschlossene Inhalte

| Ausgeschlossen | Grund |
|---|---|
| `themes/itsweber/` | Premium-Theme, separat bereitgestellt (in `projects/itsweber.de/artifacts/themes/`) |
| `themes/roterkaul/` | Premium-Theme, separat bereitgestellt (in `projects/roterkaul.de/artifacts/themes/`) |
| `themes/lackhexe/` | Premium-Theme, separat bereitgestellt (in `projects/lackhexe.com/artifacts/themes/`) |
| `themes/reifenservice-kuhn/` | Premium-Theme, separat bereitgestellt (in `projects/reifenservice-kuhn.de/artifacts/themes/`) |
| `public/themes/itsweber/` | Public-Asset-Spiegel des ITSWEBER-Themes – separat |
| `public/themes/roterkaul/` | Public-Asset-Spiegel des Roterkaul-Themes – separat |
| `public/themes/lackhexe/` | Public-Asset-Spiegel des Lackhexe-Themes – separat |
| `public/themes/reifenservice-kuhn/` | Public-Asset-Spiegel des ReifenService-Kuhn-Themes – separat |
| `plugins/` | Plugins sind separate Artefakte, nicht vorinstalliert |
| `public/plugins/` | Plugin-Assets – separat ausgeliefert |
| `artifacts/` | Entwicklungs- und Release-Artefakte, kein Betriebsinhalt |
| `docs/` | Kompletter Ordner – interne Architektur-/Entwicklungsdoku |
| `_archive/` | Interne Entwicklungsarchive |
| `CLAUDE.md` | Interne Arbeitsanweisung |
| `tools/` | Entwicklerwerkzeuge – kein Betriebsinhalt |
| `projects/` | Aktive Kundenprojekte – kein Betriebsinhalt |
| `.git/` | Versionskontrollverzeichnis |
| OS-Artefakte (`.DS_Store`, `Thumbs.db`) | Werden beim Packen übersprungen |
| Cache-, Session- und Log-Inhalte | Nur leere Verzeichnisstruktur wird ausgeliefert |

---

## Laufzeit- und Schreibverzeichnisse (vorbereitet, leer)

`storage/cache/`, `storage/logs/`, `storage/sessions/`, `storage/temp/`,
`public/uploads/`, `public/uploads/blog/`, `public/uploads/gallery/`,
`public/uploads/downloads/`, `public/uploads/brand/`, `public/uploads/brand/thumbs/`

---

## Separat verfügbare Artefakte

| Artefakt | Pfad |
|---|---|
| ITSWEBER Premium-Theme 3.4.0 | `projects/itsweber.de/artifacts/themes/itsweber-theme-3.4.0.zip` |
| Roterkaul Premium-Theme 3.4.0 | `projects/roterkaul.de/artifacts/themes/roterkaul-theme-3.4.0.zip` |
| Lackhexe Premium-Theme 3.4.0 | `projects/lackhexe.com/artifacts/themes/lackhexe-theme-3.4.0.zip` |
| ReifenService-Kuhn Premium-Theme 3.4.0 | `projects/reifenservice-kuhn.de/artifacts/themes/reifenservice-kuhn-theme-3.4.0.zip` |
| animated-counter Plugin 1.0.0 | `artifacts/plugins/animated-counter-plugin-1.0.0.zip` |
| aurora-background Plugin 1.0.0 | `artifacts/plugins/aurora-background-plugin-1.0.0.zip` |
| faq-accordion Plugin 1.0.0 | `artifacts/plugins/faq-accordion-plugin-1.0.0.zip` |
| image-sphere Plugin 1.0.0 | `artifacts/plugins/image-sphere-plugin-1.0.0.zip` |
| image-swiper Plugin 1.0.0 | `artifacts/plugins/image-swiper-plugin-1.0.0.zip` |
| magnifier-lens Plugin 1.0.0 | `artifacts/plugins/magnifier-lens-plugin-1.0.0.zip` |
| pricing-table Plugin 1.0.0 | `artifacts/plugins/pricing-table-plugin-1.0.0.zip` |
| testimonial-slider Plugin 1.0.0 | `artifacts/plugins/testimonial-slider-plugin-1.0.0.zip` |
| web-tools Plugin 1.0.0 | `artifacts/plugins/web-tools-plugin-1.0.0.zip` |

---

## Neu in Version 3.4.1 (gegenüber 3.4.0)

### CMS Core Auto-Update-System (3.4.1)

**Dashboard-Widget:**
- Kombiniertes Updates-Widget im Admin-Dashboard (Core + Plugins + Themes)
- Badge-Anzeige bei verfügbarem Core-Update, direkter Link zu `/admin/system/updates`

**System-Updates-Seite (`/admin/system/updates`):**
- Status-Card mit aktueller Version, verfügbarer Version, Release Notes
- Install-Panel mit Backup-Scope-Wahl (App+DB erzwungen, Uploads optional)
- Live-Progress-Bar via JS-Polling auf `cms_update_progress.json`

**9-Schritt-Install-Flow:**
1. Preflight-Check (Disk, PHP-Extensions, Maintenance-Mode)
2. Backup erstellen (App+DB Pflicht, Uploads optional)
3. Update-ZIP herunterladen (HTTPS-Only, 50 MB-Limit)
4. Signatur-Verifikation (SHA256 + Ed25519, identisch zum Plugin-Marketplace)
5. Wartungsmodus aktivieren
6. Dateien deployen (protected paths werden übersprungen)
7. Migrationen ausführen (deterministische Reihenfolge)
8. Wartungsmodus deaktivieren
9. Rollback bei Fehler (automatisch, auf letztes Backup)

**Server-seitige Endpunkte (itsweber.de Marketplace-Plugin):**
- `GET /api/v1/registry/cms-core` – alle Core-Update-Pakete
- `GET /api/v1/registry/cms-core/latest` – neuestes Paket mit Signatur + Release Notes
- `GET /api/v1/registry/cms-core/{version}/download` – ZIP-Download
- `GET /api/v1/registry/cms-core/{version}/signature` – Signatur-Abfrage

**Neue Migrationen:**
- Migration 059: 7 `cms_update_*`-Settings in `iw_settings` (idempotent)

---

## Neu in Version 3.4.0 (gegenüber 3.3.0)

### Marketplace (3.4.0 H1 – Vollausbau)

**Sicherheits-Pipeline:**

- SHA256-Verifikation aller heruntergeladenen Pakete
- HTTPS-Only-Policy (HTTP-Quellen werden abgewiesen)
- Allowlist für vertrauenswürdige Registry-Domänen (`iw_marketplace_allowlist`)
- Ed25519-Signaturverifikation für offizielle Pakete (`sodium_crypto_sign_verify_detached`)

**Pre-Install-Flow:**

- Pre-Install-Preview mit Changelog, Abhängigkeitsprüfung, SHA256-Anzeige
- Dependency-Check: Min-CMS-Version-Prüfung vor Installation
- Bestätigungsdialog mit vollständigen Paket-Metadaten

**Rollback & Audit:**

- Automatische Backup-Erstellung vor jeder Installation/Update
- Rollback-Manager: Zurückrollen auf letztes Backup per Admin-UI
- Audit-Trail-Tabelle `iw_marketplace_install_log` (wer, was, wann, Version, Ergebnis)

**Update-Benachrichtigungen:**

- `UpdateChecker`-Service prüft Registry auf neuere Versionen
- Badge im Admin-Dashboard bei verfügbaren Updates
- DE/EN-i18n-Keys für alle neuen Views (preview, backups, rollback, allowlist)

**Server-Plugin (itsweber.de):**

- `MarketplaceApiController` mit Ed25519-Signatur im Response-Header
- `sign-package.php` CLI-Tool für offizielle Paket-Signierung
- Neue DB-Spalten: `public_key_b64`, `signature_b64`

**Neue Migrationen:**

- Migration 056: `iw_marketplace_allowlist`
- Migration 057: `iw_marketplace_install_log`

### SVG-Sanitizer (3.4.0 H5)

- Eigener Core-Sanitizer `App\Services\Security\SvgSanitizer` (DOMDocument, keine externen Deps)
- Whitelist-Ansatz: nur erlaubte Tags/Attribute passieren
- Integration in `UploadService::upload()` – alle SVG-Uploads werden sanitized
- Integration in Section-Paste-Pfad: `ServiceCardsSection`, `TrustShowcaseSection`, `FeatureShowcaseSection`
- `public/uploads/.htaccess`: CSP+nosniff für `.svg`, PHP/Shell-Exec-Sperre
- 16 Payload-Tests (XSS, XXE, script-Injection, data:-href) grün

### Theme-System (3.4.0 – Option C Hybrid)

**Theme CONTRACT.md-System:**

- CONTRACT.md pro Theme: Override-Register, Klassifikation (STRUCTURAL/HYBRID/CANONICAL)
- Alle 7 Themes CONTRACT-konform: Terminal, Pulse, Nexus, Arcade, Estate, Editorial, ITSWEBER, Lackhexe, Roterkaul, ReifenService-Kuhn
- 0 COLOR-ONLY-Overrides – alle redundanten Duplikate aus früheren Sprints bereits entfernt

**Theme-Verbesserungen:**

- K1-Fix Estate: `property-card`-CSS jetzt in Template angesprochen
- C31-Fix Pulse: `.feature-card { padding: var(--space-xl) }` ergänzt
- C30 Avatar-Initialen: business, creative, estate CSS ergänzt

**Premium-Themes:**

- Alle 4 Premium-Themes (itsweber, lackhexe, roterkaul, reifenservice-kuhn) auf v3.4.0 gebumpt

### Build-Tools (3.4.0 H3)

- `tools/build-update.php`: Auto-Copy – SQL-Migrationen unter `files/database/migrations/` werden automatisch als Top-Level `migrations/` promoviert
- Ohne neue Migrationen: saubere Info-Meldung statt Fehler

### Migrationen (3.4.0 K3)

- Migrationen 052–054 auf `extends Migration` + `$this->db` standardisiert
- `down()`-Methoden für alle 3 ergänzt

---

## Neu in Version 3.3.0 (gegenüber 3.2.0)

### Page Builder & Section-System (3.3.0)

**Page Builder:**

- Neu: Visueller Page Builder im Admin für alle Seiten
- Drag-and-Drop-Reihenfolge für Sections
- Live-Vorschau direkt im Admin-Backend

**Section-Templates:**

- Alle 7 Themes haben jetzt vollständige Section-Template-Abdeckung (19 Core-Sections)
- Core-Themes (business, creative): alle 19 Section-Templates kopiert aus default
- Premium-Themes (itsweber, roterkaul, lackhexe, reifenservice-kuhn): fehlende Templates ergänzt

**Menu-System:**

- Neu: Flexibles Menüsystem (Hauptmenü, Footer-Menü) im Admin verwaltbar
- Drag-and-Drop-Reihenfolge, Nested-Menus

**Mail-Templates:**

- Neu: Editierbare Mail-Templates im Admin
- Kontaktformular, Passwort-Reset und benutzerdefinierte Templates

### Theme-Verbesserungen (3.3.0)

**Alle 7 Themes:**

- `theme.json` Version auf 3.3.0 aktualisiert
- `min_cms_version: "3.2.0"` Feld hinzugefügt

### Finales Review (3.3.0, 2026-04-13)

- Health-Check Endpoint, Error-Log Viewer, Backup-Automation CLI
- Password-Visibility-Toggle, Admin-Login Branding, Creative Theme Dark Mode

---

## Neu in Version 3.2.0 (gegenüber 3.1.3)

### Section-System-Grundlage (3.2.0)

- Einführung des Section-Systems als Core-Feature
- `AbstractSection`, `SectionRegistry`, 20 Core-Section-Klassen
- 3-stufiges Fallback: Theme → Default → Plugin
- Plugin-Section-API stabilisiert

---

## Release-Erstellung

Erstellt: 2026-04-18
Aktualisiert: 2026-04-19
Version: 3.4.1

© Benjamin Weber / ITSWEBER – www.itsweber.de – info@itsweber.de
