← All extensions
MAGENTO 2v0.6.0

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_report ohne 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. ACL AlpenFX_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\AuditTrailServiceInterface revisionssicher protokolliert (harte Abhängigkeit auf alpenfx/module-audit-trail).
  • Leichter Spam-Schutz – Honeypot-Feld + Rate-Limit pro Kanal, ohne die Anonymität zu beeinträchtigen.

Storefront-URLs

ZweckURL
Meldeformular/whistle/report/index
Statusabfrage/whistle/report/status
Admin-FallqueueWhistle 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 einreichen
  • POST /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.