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.
References to legal requirements describe what the extension does. Whether a shop meets a requirement depends on its configuration and use and is down to its operator. This is not legal advice.