AGENT SKILL

automating-storage-limitation-controls

Automated enforcement of GDPR Article 5(1)(e) storage limitation principle. Covers TTL-based deletion, retention policy engines, archival workflows, legal hold exemptions, and lifecycle automation. Includes technical implementation patterns for automated data expiry and defensible deletion across distributed systems.

License 许可
Apache-2.0
最近更新
2026-03-17
Stars
★ 336
Forks
67

01 前言 Front Matter

name
automating-storage-limitation-controls
license
Apache-2.0
metadata
{ "tags": "storage-limitation, data-retention, ttl-deletion, legal-hold, automated-deletion", "author": "mukul975", "domain": "privacy", "version": "1.0", "subdomain": "privacy-by-design" }
description
Automated enforcement of GDPR Article 5(1)(e) storage limitation principle. Covers TTL-based deletion, retention policy engines, archival workflows, legal hold exemptions, and lifecycle automation. Includes technical implementation patterns for automated data expiry and defensible deletion across distributed systems.

02 资源文件 8

03 SKILL.md 正文

Automating Storage Limitation Controls

Overview

Article 5(1)(e) of the GDPR requires that personal data be "kept in a form which permits identification of data subjects for no longer than is necessary for the purposes for which the personal data are processed." This is the storage limitation principle. Controllers must define retention periods for each category of personal data based on the purpose of processing (Article 13(2)(a) requires disclosure of retention periods or criteria).

Automation is critical because manual retention management at scale inevitably leads to compliance gaps. The EDPB Guidelines 4/2019 on Article 25 specifically identify automated deletion mechanisms as an example of data protection by design.

Retention Policy Framework

Retention Period Determination

Each retention period must be justified by reference to the processing purpose, legal requirements, or legitimate business need:

Data Category Purpose Lawful Basis Retention Period Retention Trigger Legal Reference
Customer account data Service delivery Art. 6(1)(b) Duration of contract + 90 days Account closure Art. 5(1)(e), Art. 17(1)(a)
Transaction records Tax compliance Art. 6(1)(c) 10 years Transaction date Swiss CO Art. 958f, EU VAT Directive 2006/112/EC Art. 242
Support tickets Customer service Art. 6(1)(b) 3 years Ticket closure Art. 5(1)(e), limitation period
Server access logs Security monitoring Art. 6(1)(f) 12 months Log creation date Art. 5(1)(e), ENISA recommendation
Marketing consent records Accountability Art. 6(1)(c) Duration of consent + 5 years Consent withdrawal Art. 7(1), Art. 5(2)
Employment records Legal obligation Art. 6(1)(c) Duration of employment + 10 years Employment end Swiss OR Art. 127-128
Cookie analytics Product improvement Art. 6(1)(a) 13 months Data collection ePrivacy Directive Art. 5(3), CNIL guidance
DPIA records Accountability Art. 6(1)(c) Duration of processing + 3 years Processing cessation Art. 35, Art. 5(2)

TTL-Based Deletion Architecture

┌─────────────────────────────────────────────────────────────┐
│                   Retention Policy Engine                     │
│  ┌───────────────┐  ┌────────────────┐  ┌───────────────┐  │
│  │ Policy Store  │  │ TTL Calculator │  │ Legal Hold    │  │
│  │ (per category)│  │ (trigger+period)│  │ Registry      │  │
│  └───────┬───────┘  └───────┬────────┘  └──────┬────────┘  │
│          └──────────────────┼───────────────────┘           │
└─────────────────────────────┼───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Lifecycle Scheduler                         │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Expiry Scanner   │  │ Archive Mover│  │ Deletion     │  │
│  │ (daily cron)     │  │ (pre-delete) │  │ Executor     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────┬───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Audit and Verification                     │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Deletion Log     │  │ Verification │  │ Exception    │  │
│  │ (immutable)      │  │ Scanner      │  │ Reporter     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────────────────────────────────────┘

Deletion Patterns for Distributed Systems

Pattern Description Use Case Complexity
TTL columns Database column storing expiry timestamp; background job deletes expired rows Single-database systems, Redis, DynamoDB Low
Event-driven deletion Lifecycle event (account closure) publishes deletion command to message queue Microservice architectures Medium
Tombstone + compaction Mark records as deleted; background compaction physically removes data Append-only stores, event sourcing Medium
Cascade deletion Delete propagates across foreign key relationships Relational databases with referential integrity Medium
Distributed saga Coordinated deletion across multiple services with rollback on failure Polyglot persistence, cross-service data High
Crypto-shredding Destroy the encryption key rendering the data unreadable without physical deletion Systems where physical deletion is impractical (backups, immutable logs) Medium

Legal Hold Management

Legal holds suspend automated deletion when data is subject to litigation, regulatory investigation, or audit proceedings.

Legal Hold Lifecycle:

  1. Hold initiation — Legal counsel issues a hold notice specifying the scope (data categories, date range, affected subjects) and the matter reference
  2. Hold registration — The Retention Policy Engine registers the hold, creating an exemption that overrides TTL-based deletion for matching records
  3. Hold monitoring — Monthly review by legal counsel to confirm the hold remains necessary
  4. Hold release — Legal counsel issues a release notice; the Retention Policy Engine removes the exemption and resumes normal retention processing
  5. Catch-up deletion — Records that would have been deleted during the hold period are now evaluated against current retention policies and deleted if expired

Prism Data Systems AG Implementation:

Hold Parameter Value
Hold scope format JSON document specifying data_categories, date_range_start, date_range_end, subject_identifiers, matter_reference
Hold registry PostgreSQL table with immutable audit trail
Review cadence Monthly by legal counsel, quarterly by DPO
Maximum hold duration without renewal 12 months
Hold release approval Dual approval: legal counsel + DPO

Archival Policies

Three-Tier Storage Lifecycle

Tier Storage Type Access Pattern Encryption Retention Phase
Hot Primary database (PostgreSQL) Real-time read/write AES-256-GCM field-level Active processing
Warm Object storage (S3-compatible, Glacier Instant Retrieval class) Occasional read, no write AES-256-GCM object-level Post-purpose, pre-deletion (legal/audit)
Cold Offline archive (tape/vault) Restore on request (24-48h) AES-256-GCM + envelope encryption Statutory retention only

Transition Rules for Prism Data Systems AG:

Transition Trigger Automation
Hot → Warm Purpose fulfilled (e.g., account closed) + 90 days Daily lifecycle job
Warm → Cold Warm retention period expires, statutory retention still applies Monthly lifecycle job
Cold → Deletion Statutory retention period expires, no legal hold active Quarterly lifecycle job with DPO approval gate
Any → Legal Hold Legal hold registered for matching scope Immediate suspension

Implementation Workflow

  1. Inventory data stores — Catalog every system that stores personal data, including primary databases, caches, message queues, logs, backups, and third-party integrations.

  2. Map retention requirements — For each data category and processing purpose, determine the retention period based on purpose necessity, legal obligations, and limitation periods.

  3. Implement TTL metadata — Add retention-related columns or metadata to each data store: created_at, retention_trigger_event, retention_trigger_date, ttl_expiry_date, legal_hold_id.

  4. Deploy lifecycle scheduler — Implement a background service that scans for expired records daily, checks for active legal holds, and executes deletion or archival transitions.

  5. Implement deletion verification — After each deletion cycle, run a verification scan to confirm that all targeted records have been removed from primary stores, replicas, and caches.

  6. Configure backup rotation — Ensure that backup retention aligns with the longest applicable retention period. Implement crypto-shredding for backup media where granular deletion is impractical.

  7. Deploy monitoring and alerting — Monitor deletion job success rates, flag records that exceed their TTL by more than 7 days, and alert on legal hold expirations.

Key Regulatory References

  • GDPR Article 5(1)(e) — Storage limitation principle
  • GDPR Article 13(2)(a) — Retention period disclosure requirement
  • GDPR Article 17(1)(a) — Right to erasure when data no longer necessary
  • GDPR Article 25(1) — Data protection by design
  • GDPR Recital 39 — Storage limitation guidance
  • EDPB Guidelines 4/2019 on Article 25 Data Protection by Design and by Default
  • Swiss Code of Obligations Art. 958f — 10-year retention for business records
  • EU VAT Directive 2006/112/EC Art. 242 — Invoice retention requirements

04 同仓库更多 Skills

mukul975
mukul975/Privacy-Data-Protection-Skills

workplace-email-privacy

Implements email and internet monitoring compliance in the workplace per Barbulescu v Romania (ECHR Grand Chamber), EDPB guidance, and national labour law. Covers acceptable use policies, legitimate expectation of privacy, proportionality testing, and content vs metadata monitoring. Keywords: email monitoring, Barbulescu, workplace privacy, internet monitoring, acceptable use policy, ECHR, proportionality.

律师与法务邮件与沟通测试与质量
★ 336
mukul975
mukul975/Privacy-Data-Protection-Skills

whistleblower-data

Implements data protection compliance for whistleblowing systems under EU Directive 2019/1937 and GDPR. Covers anonymous reporting channels, identity protection for whistleblowers and accused persons, retention limits, access restrictions, and retaliation prevention. Addresses national transpositions and DPA guidance. Keywords: whistleblower, Directive 2019/1937, anonymous reporting, identity protection, retaliation, retention, reporting channel.

数据分析师律师与法务
★ 336
mukul975
mukul975/Privacy-Data-Protection-Skills

vendor-termination-data

Vendor termination data return and deletion procedures per GDPR Article 28(3)(g). Covers data extraction formats, deletion certification requirements, transition planning, residual data handling, and post-termination verification.

数据分析师
★ 336
mukul975
mukul975/Privacy-Data-Protection-Skills

vendor-risk-scoring

Vendor privacy risk tiering methodology for processor management. Covers scoring factors including data volume, sensitivity, transfer locations, certifications, breach history, and control maturity with weighted risk calculation and tier assignment.

数据分析师
★ 336
mukul975
mukul975/Privacy-Data-Protection-Skills

vendor-privacy-due-diligence

Pre-contract vendor privacy due diligence per GDPR Article 28(1). Covers risk questionnaires, technical controls assessment, certification review, data flow analysis, and documented sufficiency decisions for processor engagement.

律师与法务
★ 336
mukul975
mukul975/Privacy-Data-Protection-Skills

vendor-privacy-audit

On-site and remote vendor audit procedures per GDPR Article 28(3)(h). Covers audit planning, evidence collection methodologies, finding classification, remediation tracking, and audit report generation for processor compliance verification.

内容创作者律师与法务写作与文案
★ 336