Skip to content
bitzorcas
中EN

Concept

GDPR & Data Privacy Compliance Governance

In-depth architecture of BitzOrcas.Platform.Gdpr: Subject Access Requests (SAR), the Right to be Forgotten, cryptographic shredding, and audit trail pseudonymization.

Last updated

GDPR & Data Privacy Compliance Governance

In systems managing confidential personal and legal records across international jurisdictions, regulatory compliance represents an architectural boundary carrying severe liability (such as the EU GDPR and global data privacy mandates).

BitzOrcas.Platform.Gdpr provides an out-of-the-box privacy data lifecycle governance subsystem. It standardizes natural-person Subject Access Requests (SAR), Right to be Forgotten cryptographic shredding, operational log pseudonymization, and automated tenant retention purging.


1. Compliance Lifecycle Workflow

Data subject rights are exercised under dual verification and data protection officer (DPO) approval gates:

GDPR Execution EngineCompliance Approval Gate (DPO)Natural Person Data SubjectApprove ExportApprove Erasure

Request Data Export (SAR)

Request Erasure / Account Deletion

Identity Verification (MFA / Proof of Identity)

Statutory Retention Check (Pending Litigation / Tax Audits)

SAR Packaging Service (Encrypted ZIP Export)

Cryptographic Shredding Service (PII Erasure)

Audit Pseudonymization (Deterministic One-Way Hashes)


2. Right to be Forgotten & Cryptographic Shredding

When an erasure request is approved, simple logical deletion (IsDeleted = 1) is non-compliant because cleartext identifiers remain in backup archives. BitzOrcas applies irreversible physical overwriting (Cryptographic Shredding):

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using BitzOrcas.Application.Authorization;
using BitzOrcas.Domain.Abstractions;
using BitzOrcas.Domain.Results;
using BitzOrcas.Endpoint.Attributes;
using BitzOrcas.Platform.Gdpr.Contracts;
using Mediator;
namespace BitzOrcas.Platform.Gdpr.Application.Commands;
/// <summary>
/// Command executing physical erasure of personal identifiable information
/// </summary>
[GenerateEndpoint(HttpRoute.Post, "/api/privacy/erasure/{id}/execute", Tag = "Privacy")]
public sealed record ExecuteRightToBeForgottenCommand(
string RequestId,
string DpoApprovalTicketNumber
) : ICommand<Result>, IAuthorizedRequest
{
/// <summary>
/// Protected resource: privacy module erasure resource
/// </summary>
public ResourceDescriptor Resource { get; } = new(GdprPermissions.Module, GdprPermissions.ErasureResource);
/// <summary>
/// Required authorization action
/// </summary>
public AuthorizationAction Action { get; } = AuthorizationAction.Manage;
}
/// <summary>
/// Erasure command handler
/// </summary>
public sealed class ExecuteRightToBeForgottenCommandHandler(
IGdprStore store,
IEnumerable<ISubjectDataErasureContributor> erasureContributors,
IAppClock clock) : ICommandHandler<ExecuteRightToBeForgottenCommand, Result>
{
public async ValueTask<Result> Handle(
ExecuteRightToBeForgottenCommand command,
CancellationToken cancellationToken)
{
// 1. Retrieve the approved data subject erasure request
var request = await store.GetDsrByIdAsync(command.RequestId, cancellationToken);
if (request is null)
{
return Result.Failure(GdprErrors.ErasureNotFound);
}
// 2. Cascade physical overwriting and pseudonymization across registered domain contributors
foreach (var contributor in erasureContributors)
{
var contributorResult = await contributor.ExecuteErasureAsync(request.SubjectId, cancellationToken);
if (contributorResult.IsFailure)
{
return contributorResult;
}
}
// 3. Mark the erasure request completed to preserve compliance audit chain
request.StatusCode = GdprErasureStatus.Completed.Value;
request.CompletedAt = clock.UtcNow;
var updateSuccess = await store.TryUpdateDsrAsync(request, GdprErasureStatus.Executing.Value, cancellationToken);
return updateSuccess ? Result.Success() : Result.Failure(GdprErrors.ErasureAlreadyClosed);
}
}

3. Subject Access Request (SAR) Export Package

The platform compiles personal data into an AES-256 encrypted ZIP archive within statutory response windows:

  1. Identity Profile: Core user credentials, login histories, and security factor metadata;
  2. Business Artifacts: Authored tickets, uploaded documents, and associated activity records;
  3. Consent History: Versioned consent records and privacy policy acceptance timestamps.

100%

Scroll or use controls to zoom · drag when enlarged · double-click for 100% / 200%