Whistle Portal
AlpenFX Whistle Portal (Magento 2)
DSGVO-konformes, anonymes Hinweisgebersystem (EU-Richtlinie 2019/1937 / LkSG-Beschwerdeverfahren) für Magento 2.
Magento-2-Gegenstück zum Shopware-Plugin alpenfx-whistle-portal aus der
AlpenFX-Extension-Sammlung.
Funktionsumfang
- Anonyme Meldung ohne Konto – es werden weder IP-Adresse noch Identität
gespeichert. Eigene Speicherung in
alpenfx_whistle_reportohne Bezug zu Kunden- oder Bestelldaten. - Verschlüsselter Meldungsinhalt at rest über
Magento\Framework\Encryption\EncryptorInterface. Statusabfrage ausschließlich über ein pseudonymes Vorgangs-Token + Zugriffsschlüssel (nur als Hash gespeichert) – keine Kundensession. - Fristenmanagement – 7-Tage-Eingangsbestätigung und 3-Monats-Rückmeldung.
Fälligkeiten werden bei Eingang berechnet und gespeichert; die Berechnung
liegt in einem reinen, testgetriebenen
DeadlineCalculator. - Fall-Workflow im Admin (
received → in_review → measure → closed) mit Transitionsprüfung, internen Notizen und Antwort an die meldende Person über einen pseudonymen Kanal ohne De-Anonymisierung. ACLAlpenFX_WhistlePortal::*. - Drei Frontend-Oberflächen – serverseitig gerendertes Melde- und Statusformular (Luma + Hyvä, framework-frei) sowie GraphQL-Mutation/-Query und REST-Endpunkte.
- Audit-Trail – jede Statusänderung und jede Meldung wird über
AlpenFX\AuditTrail\Api\AuditTrailServiceInterfacerevisionssicher protokolliert (harte Abhängigkeit aufalpenfx/module-audit-trail). - Leichter Spam-Schutz – Honeypot-Feld + Rate-Limit pro Kanal, ohne die Anonymität zu beeinträchtigen.
Storefront-URLs
| Zweck | URL |
| ---------------- | ------------------------- |
| Meldeformular | /whistle/report/index |
| Statusabfrage | /whistle/report/status |
| Admin-Fallqueue | Whistle Portal → Whistleblower Reports (alpenfx_whistle/report/index) |
API
GraphQL:
mutation {
submitWhistleReport(input: {
subject: "…", content: "…", category: "labor"
}) { case_token access_key status acknowledge_due_at feedback_due_at }
}
query {
whistleReportStatus(case_token: "WP-2026-XXXXXXXX", access_key: "…") {
status category acknowledge_due_at feedback_due_at reply
}
}
REST (guest):
POST /V1/alpenfx/whistle/report– Meldung einreichenPOST /V1/alpenfx/whistle/report/status– Status abfragen
Installation
composer require alpenfx/module-whistle-portal
bin/magento module:enable AlpenFX_AuditTrail AlpenFX_WhistlePortal
bin/magento setup:upgrade
bin/magento setup:di:compile
Entwicklung
Das Modul wird als Git-Submodul in das magento2-Hauptprojekt eingebunden
(app/code/AlpenFX/WhistlePortal). CI (.gitlab-ci.yml) prüft Lint, PHPUnit,
PHPStan, Magento Coding Standard und Magento-Kompatibilität – die geschwister
Abhängigkeit alpenfx/module-audit-trail wird dabei per Job-Token geklont.
fx-deploy.yaml steuert die Veröffentlichung auf fx-base.dev.
Lizenz
Proprietär — © Felix Astner Software. Siehe LICENSE.
Angaben zu Rechtsvorgaben beziehen sich auf die Funktion der Erweiterung. Ob ein Shop einer Vorgabe genügt, hängt von seiner Konfiguration und seinem Einsatz ab und liegt beim Betreiber. Keine Rechtsberatung.