# Changelog Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert. Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/), und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). ## [Unreleased] ### Geplant - Multi-Language Support (Deutsch/Englisch) - Automatische Backup-Verwaltung - E-Mail-Account-Verwaltung im Client Area - Datenbank-Verwaltung im Client Area - FTP-Account-Management - Subdomain-Verwaltung - Ressourcen-Upgrade/Downgrade-Funktionen - Webhook-Support für Events ## [2.0.0] - 2024-01-20 ### 🎉 Wichtige Änderungen - **Zentralisierte API-Konfiguration:** API-Keys und Server-Einstellungen werden jetzt nur einmal in den WHMCS Server-Einstellungen konfiguriert, nicht mehr pro Produkt - **Template/Vorlagen-System:** Automatische Synchronisation von KeyHelp-Plänen/Vorlagen als Dropdown-Auswahl - **Template-basierte Provisionierung:** Domains werden automatisch mit der ausgewählten Vorlage erstellt ### Hinzugefügt - **Template-Verwaltung:** - Automatisches Laden von KeyHelp-Plänen/Vorlagen via API - Dropdown-Auswahl bei Produktkonfiguration - Template-Cache für bessere Performance (5 Minuten) - "Sync Templates" Button im Admin-Bereich - Template-Name wird im Client Area angezeigt - **Verbesserte Client Area:** - Anzeige des verwendeten Templates/Plans - Direkter Link zum Admin-Panel für die Domain - Template-Badge in der Produktübersicht - Übersichtlichere Button-Anordnung - Admin-Panel-Button für direkte Verwaltung - **Zentrale Server-Konfiguration:** - API-Key wird nur einmal in WHMCS Server-Einstellungen eingegeben - Hostname/IP in Server-Einstellungen (nicht mehr pro Produkt) - SSL-Einstellungen über WHMCS Server-Verwaltung - Vereinfachte Produktkonfiguration (nur Template-Auswahl) - **Template-basierte Erstellung:** - Domain wird automatisch mit ausgewählter Vorlage erstellt - Template-ID wird in Account-Details gespeichert - Template-Informationen werden bei Erstellung verwendet - Automatische Zuordnung von Plan-Ressourcen - **Neue API-Funktionen:** - `_keyhelpmanager_GetTemplates()` - Lädt verfügbare Templates - `keyhelpmanager_TemplateLoader()` - Dropdown-Loader für Templates - `keyhelpmanager_SyncTemplates()` - Synchronisiert Templates manuell - `keyhelpmanager_AdminCustomButtonArray()` - Admin-Buttons - **Erweiterte Account-Speicherung:** - Domain-ID wird jetzt gespeichert - Template-ID wird in Account-Details hinterlegt - Bessere Verknüpfung zwischen WHMCS und KeyHelp ### Geändert - **API-Request-Funktion überarbeitet:** - Verwendet jetzt WHMCS Server-Parameter statt Config-Optionen - `serverhostname` statt `configoption1` - `serveraccesshash` statt `configoption2` - `serversecure` statt `configoption3` - Bessere Fehlermeldungen bei fehlender Konfiguration - **ConfigOptions vereinfacht:** - Nur noch Template-Dropdown statt 4 Konfigurationsoptionen - Hostname, API-Key, SSL nicht mehr pro Produkt nötig - Einfachere Produktverwaltung - **CreateAccount verbessert:** - Verwendet Template-ID aus Produktkonfiguration - Übergibt Template bei Domain-Erstellung - Speichert zusätzliche Metadaten (Domain-ID, Template) - **ClientArea erweitert:** - Zeigt Template-Namen und Admin-Panel-Link - Lädt Template-Details von API - Direkter Link zur Domain-Verwaltung im Panel ### Behoben - Redundante API-Key-Eingabe pro Produkt entfernt - SSL-Konfiguration vereinheitlicht - Template-Auswahl jetzt dynamisch statt statisch - Panel-URL-Generierung korrigiert ### Sicherheit - SSL-Verifizierung standardmäßig aktiviert - Zentrale API-Key-Verwaltung reduziert Sicherheitsrisiken - Weniger Stellen für sensible Daten in der Konfiguration ### Technische Details - **Neue API-Endpunkte:** - `GET /api/v2/plans` - Lädt verfügbare Pläne/Templates - `GET /api/v2/plans/{id}` - Lädt Template-Details - **Neue Datenbankfelder:** - `domainid` in Account-Details - `template` in Account-Details - Template-Cache in `tblconfiguration` ### Migration von 1.x 1. Konfigurieren Sie Ihre KeyHelp-Server in WHMCS unter Setup > Products/Services > Servers 2. Tragen Sie Hostname und API-Key dort ein (statt in jedem Produkt) 3. Wählen Sie bei jedem Produkt den entsprechenden Server aus 4. Verwenden Sie "Sync Templates" um verfügbare Vorlagen zu laden 5. Wählen Sie für jedes Produkt die passende Vorlage aus ### Bekannte Einschränkungen - Template-Cache läuft nach 5 Minuten ab (nicht konfigurierbar) - Manuelle Template-Synchronisation erforderlich bei Änderungen in KeyHelp - Admin-Panel-Link funktioniert nur mit Standard-KeyHelp-URL-Struktur ## [1.0.0] - 2024-01-15 ### Entwickelt von - **Entwickler:** Kevin Feiler - **Firma:** AVVGO - **Website:** https://avvgo.de ### Hinzugefügt - Initiales Release des KeyHelp Manager WHMCS Provisioning Moduls - **Account-Verwaltung:** - Automatische Account-Erstellung nach Zahlungseingang - Account-Sperrung (Suspend) bei Zahlungsverzug - Account-Entsperrung (Unsuspend) - Account-Löschung (Terminate) mit allen Daten - Passwort-Änderungsfunktion - **API-Integration:** - KeyHelp API v2 Unterstützung - Guzzle HTTP Client für zuverlässige API-Kommunikation - SSL/TLS-Verschlüsselung für API-Verbindungen - Konfigurierbare SSL-Zertifikat-Verifizierung - Umfassendes Error-Handling und Retry-Logik - **Client Area Features:** - Übersichtliche Darstellung der Login-Informationen - KeyHelp Login-URL mit direktem Zugang - Username und Passwort mit Copy-to-Clipboard-Funktion - Passwort anzeigen/verbergen Toggle - Live-Statistiken vom KeyHelp-Server: - Speicherplatz-Nutzung mit Fortschrittsbalken - Traffic/Bandbreiten-Nutzung mit Fortschrittsbalken - Anzahl der Domains - Anzahl der Datenbanken - Anzahl der E-Mail-Konten - Responsive Design für alle Geräte - Bootstrap-kompatibles Layout - **Admin-Features:** - Single Sign-On (SSO) für Admins - Ein-Klick-Login direkt in den Kunden-Account - Detailliertes Module-Logging aller API-Calls - Connection-Test-Funktion für Server-Konfiguration - Automatische Maskierung sensibler Daten in Logs - **Automatisierung:** - Automatische Benutzername-Generierung aus Domain - Sichere Passwort-Generierung (16 Zeichen, kryptografisch sicher) - Automatische Speicherung von Account-Details in WHMCS - Custom Field Management für KeyHelp User-ID - Rollback-Mechanismen bei fehlgeschlagener Erstellung - **Sicherheit:** - API-Key-Verschlüsselung in WHMCS-Datenbank - SSL/TLS-Unterstützung für alle API-Verbindungen - Validierung und Sanitization aller Eingaben - Schutz vor SQL-Injection durch Capsule ORM - Sichere Session-Token-Generierung für SSO - Automatische Maskierung von Credentials in Logs - **Dokumentation:** - Ausführliche README.md mit Feature-Übersicht - Detaillierte INSTALLATION.md mit Schritt-für-Schritt-Anleitung - Umfangreiche Code-Kommentare (Deutsch) - API-Endpunkt-Dokumentation - Troubleshooting-Guide - Best Practices für Sicherheit - **Entwickler-Tools:** - Composer.json für Dependency-Management - .gitignore für sauberes Repository - PSR-12 Code-Style-Kompatibilität - Modulare Code-Struktur für einfache Wartung ### Technische Details - **Mindestanforderungen:** - PHP 8.3+ - WHMCS 8.13+ - KeyHelp mit API v2 - Guzzle HTTP Client (in WHMCS integriert) - **Unterstützte KeyHelp API-Endpunkte:** - `POST /api/v2/users` - Benutzer erstellen - `GET /api/v2/users/{id}` - Benutzer-Details - `PUT /api/v2/users/{id}` - Benutzer aktualisieren - `DELETE /api/v2/users/{id}` - Benutzer löschen - `POST /api/v2/domains` - Domain hinzufügen - `GET /api/v2/users/{id}/statistics` - Statistiken abrufen - `POST /api/v2/sessions` - SSO-Session erstellen - `GET /api/v2/server/version` - Server-Version (Test) - **WHMCS-Funktionen:** - `keyhelpmanager_MetaData()` - Modul-Metadaten - `keyhelpmanager_ConfigOptions()` - Server-Konfiguration - `keyhelpmanager_CreateAccount()` - Account erstellen - `keyhelpmanager_SuspendAccount()` - Account sperren - `keyhelpmanager_UnsuspendAccount()` - Account entsperren - `keyhelpmanager_TerminateAccount()` - Account löschen - `keyhelpmanager_ChangePassword()` - Passwort ändern - `keyhelpmanager_ClientArea()` - Client-Bereich - `keyhelpmanager_LoginLink()` - Admin SSO - `keyhelpmanager_TestConnection()` - Verbindungstest ### Hilfsfunktionen - `_keyhelpmanager_APIRequest()` - Zentrale API-Request-Funktion - `_keyhelpmanager_GenerateUsername()` - Username-Generierung - `_keyhelpmanager_GeneratePassword()` - Passwort-Generierung - `_keyhelpmanager_SaveAccountDetails()` - Account-Details speichern - `_keyhelpmanager_GetAccountDetails()` - Account-Details laden - `_keyhelpmanager_GetUserId()` - KeyHelp User-ID abrufen - `_keyhelpmanager_UpdateAccountDetail()` - Einzelnes Detail aktualisieren - `_keyhelpmanager_DeleteAccountDetails()` - Details löschen - `_keyhelpmanager_GetCustomFieldId()` - Custom Field ID abrufen - `_keyhelpmanager_FormatBytes()` - Bytes formatieren - `_keyhelpmanager_CalculatePercent()` - Prozentsatz berechnen ### Templates - `clientarea.tpl` - Smarty-Template für Client Area mit: - Bootstrap 3/4 kompatibles Design - FontAwesome Icons - Responsive Grid-Layout - JavaScript-Funktionen für Interaktivität - Copy-to-Clipboard-Funktionalität - Passwort-Toggle-Funktion - Fortschrittsbalken mit Farbcodierung ### Konfigurationsoptionen - Hostname/IP des KeyHelp-Servers - API-Key-Verwaltung - SSL-Aktivierung (On/Off) - SSL-Zertifikat-Verifizierung (On/Off) ### Bekannte Einschränkungen - Keine direkte Multi-Language-Unterstützung (nur Deutsch) - Erweiterte Features wie E-Mail-/DB-Verwaltung nicht implementiert - Session-Token-Lifetime fest auf 5 Minuten (nicht konfigurierbar) - Keine automatische Plan/Tarif-Synchronisation ## [0.9.0-beta] - 2024-01-10 ### Hinzugefügt - Beta-Version für interne Tests - Basis-Funktionalität für Account-Erstellung - Erste API-Integration ### Geändert - API-Request-Handling optimiert - Error-Messages verbessert ### Behoben - Connection-Timeout-Probleme - SSL-Verifizierung bei selbstsignierten Zertifikaten ## [0.5.0-alpha] - 2024-01-05 ### Hinzugefügt - Initiale Projekt-Struktur - Grundlegende Modul-Funktionen - API-Client-Implementierung --- ## Versionierungsschema - **Major.Minor.Patch** (z.B. 1.0.0) - **Major:** Breaking Changes, große neue Features - **Minor:** Neue Features, abwärtskompatibel - **Patch:** Bugfixes, kleine Verbesserungen ## Credits Dieses Modul wurde entwickelt von: - **Kevin Feiler** - Lead Developer - **AVVGO** - https://avvgo.de ## Support - **GitHub Issues:** Für Bug-Reports und Feature-Requests - **Dokumentation:** Siehe README.md und INSTALLATION.md - **KeyHelp Forum:** https://forum.keyhelp.de/ - **WHMCS Community:** https://whmcs.community/ ## Mitwirken Contributions sind willkommen! Bitte erstellen Sie einen Pull Request mit: - Beschreibung der Änderungen - Tests für neue Features - Aktualisierung der Dokumentation - Eintrag in diesem CHANGELOG --- [Unreleased]: https://github.com/ihr-repo/keyhelpmanager/compare/v2.0.0...HEAD [2.0.0]: https://github.com/ihr-repo/keyhelpmanager/compare/v1.0.0...v2.0.0 [1.0.0]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v1.0.0 [0.9.0-beta]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v0.9.0-beta [0.5.0-alpha]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v0.5.0-alpha