Skip to main content

Module data_subject

Module data_subject 

Source
Expand description

GDPR Data Subject Rights Service.

Implements data subject rights as required by GDPR:

  • Article 6: Lawful Basis (Consent tracking)
  • Article 7: Conditions for Consent
  • Article 17: Right to Erasure (“Right to be Forgotten”)
  • Article 20: Right to Data Portability

§Compliance Features

RequirementImplementation
Consent trackingConsentRecord with granular purposes
Consent withdrawalrevoke_consent() with audit trail
Audit loggingAll operations logged via [AuditLogger]
Data export formatJSON (machine-readable, portable)
Complete deletionRemoves from all storage layers
VerificationReturns deletion confirmation with counts

§Usage

use subcog::services::{DataSubjectService, ServiceContainer};

let container = ServiceContainer::from_current_dir_or_user()?;
let service = DataSubjectService::new(&container)?;

// Export all user data (GDPR Article 20)
let export = service.export_user_data()?;
println!("Exported {} memories", export.memories.len());

// Delete all user data (GDPR Article 17)
let result = service.delete_user_data()?;
println!("Deleted {} memories", result.deleted_count);

Structs§

ConsentRecord
A record of consent granted or revoked.
ConsentStatus
Current consent status for all purposes.
DataSubjectService
Service for GDPR data subject rights operations.
DeletionFailure
Details about a failed deletion.
DeletionResult
Result of a user data deletion operation.
ExportMetadata
Metadata about the export operation.
ExportedMemory
A single memory in the export format.
UserDataExport
Result of a user data export operation.

Enums§

ConsentPurpose
Purpose for which consent is granted.