Skip to main content

DSR Architecture

Qarion's Data Subject Request (DSR) system handles GDPR data export (Right to Access) and erasure (Right to be Forgotten) across all platform entities.

Processing Flow

Data Export Service

DataExportService collects all personal data associated with a user across platform entities:

EntityData Collected
User profileName, email, preferences
CommentsAll authored comments
Audit logsActions as actor
Access requestsRequest history
Quality checksAttributions
Meeting recordsParticipation records

The export is assembled into a structured JSON or CSV archive.

Erasure Service

ErasureService performs cross-table anonymization:

  1. Dry-run — Preview affected record counts by category
  2. Execute — Requires explicit confirm_irreversible: true
  3. Anonymize — Replace PII with anonymized placeholders while preserving referential integrity
  4. Audit — Log the erasure event with before/after counts

OpenDSR Integration

The OpenDSR API (/opendsr/) provides a standards-compliant interface:

  • Automatically creates DQTicket entries with DSR-specific metadata
  • Supports custom DSR types linked to governance workflows
  • DSR tickets flow through the standard issue resolution lifecycle

Key Files

FilePurpose
app/services/dsr/data_export_service.pyPersonal data collection
app/services/dsr/erasure_service.pyCross-table anonymization
app/api/endpoints/dsr.pyAdmin DSR endpoints
app/api/endpoints/opendsr.pyOpenDSR-compliant API
app/schemas/opendsr.pyRequest/response schemas