Privacy Compliance

User Guide

Manage data protection compliance for POPIA, GDPR, PIPEDA, CCPA, and other privacy regulations.


Workflow Overview

┌──────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│   Configure  │    │   Record     │    │   Respond    │    │   Report     │
│   Settings   │ ──▶│   Activities │ ──▶│   Requests   │ ──▶│   Compliance │
│              │    │              │    │              │    │              │
│ Jurisdictions│    │ ROPA         │    │ DSARs        │    │ Dashboard    │
│ Officers     │    │ Consent      │    │ Breaches     │    │ Audit Trail  │
└──────────────┘    └──────────────┘    └──────────────┘    └──────────────┘

Supported Jurisdictions

┌─────────────────────────────────────────────────────────────┐
│                 PRIVACY REGULATIONS                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  🌍 AFRICA                                                  │
│     🇿🇦 POPIA   - South Africa (2021)                        │
│     🇳🇬 NDPA    - Nigeria (2023)                             │
│     🇰🇪 DPA     - Kenya (2019)                               │
│                                                             │
│  🌍 EUROPE                                                  │
│     🇪🇺 GDPR    - European Union (2018)                      │
│                                                             │
│  🌎 NORTH AMERICA                                           │
│     🇨🇦 PIPEDA  - Canada (2000)                              │
│     🇺🇸 CCPA    - California, USA (2020)                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Key Requirements by Jurisdiction

┌─────────────────────────────────────────────────────────────┐
│  REQUIREMENT        │ POPIA │ GDPR │ PIPEDA │ CCPA │ NDPA  │
├─────────────────────┼───────┼──────┼────────┼──────┼───────┤
│  DSAR Response Days │  30   │  30  │   30   │  45  │  30   │
│  Breach Notify Hrs  │  72   │  72  │  ASAP  │  72  │  72   │
│  DPO/IO Required    │  Yes  │ Some │   No   │  No  │  Yes  │
│  Consent Records    │  Yes  │  Yes │  Yes   │  Yes │  Yes  │
│  ROPA Required      │  Yes  │  Yes │   No   │  No  │  Yes  │
│  Cross-border Rules │  Yes  │  Yes │  Yes   │  Yes │  Yes  │
└─────────────────────┴───────┴──────┴────────┴──────┴───────┘

How to Access

  Main Menu
      │
      ▼
   Admin
      │
      ▼
   Privacy Compliance ────────────────────────────────────┐
      │                                                   │
      ├──▶ Dashboard        (overview and stats)          │
      │                                                   │
      ├──▶ Configuration    (jurisdiction settings)       │
      │                                                   │
      ├──▶ DSAR Requests    (data subject requests)       │
      │                                                   │
      ├──▶ Breach Register  (incident tracking)           │
      │                                                   │
      ├──▶ ROPA             (processing activities)       │
      │                                                   │
      ├──▶ Consent Records  (consent management)          │
      │                                                   │
      └──▶ Information Officers (DPO/IO management)       │

Part 1: Configuration

Enable Jurisdictions

┌─────────────────────────────────────────────────────────────┐
│ JURISDICTION CONFIGURATION                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Select jurisdictions that apply to your organisation:      │
│                                                             │
│  ☑ 🇿🇦 POPIA (South Africa)                                  │
│     Response deadline: [ 30 ] days                          │
│     Breach notification: [ 72 ] hours                       │
│                                                             │
│  ☐ 🇪🇺 GDPR (European Union)                                 │
│     Response deadline: [ 30 ] days                          │
│     Breach notification: [ 72 ] hours                       │
│                                                             │
│  ☐ 🇨🇦 PIPEDA (Canada)                                       │
│     Response deadline: [ 30 ] days                          │
│     Breach notification: [ As soon as possible ]            │
│                                                             │
│  ☐ 🇺🇸 CCPA (California)                                     │
│     Response deadline: [ 45 ] days                          │
│     Breach notification: [ 72 ] hours                       │
│                                                             │
│                                   [ Save Configuration ]    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Organisation Settings

┌─────────────────────────────────────────────────────────────┐
│ ORGANISATION DETAILS                                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Organisation Name *   [The Archive Museum____________]     │
│                                                             │
│  Registration Number   [2020/123456/07_______________]      │
│                                                             │
│  Data Protection Email [privacy@archive.org.za_______]      │
│                                                             │
│  Physical Address      [123 Heritage Street__________]      │
│                        [Pretoria, 0001_______________]      │
│                                                             │
│  Default Retention     [ 7 ] years                          │
│                                                             │
│                                                             │
│                                        [ Save Settings ]    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 2: Information Officers

What is an Information Officer?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│  POPIA: Information Officer (IO)                            │
│  GDPR:  Data Protection Officer (DPO)                       │
│  NDPA:  Data Protection Officer (DPO)                       │
│                                                             │
│  Responsibilities:                                          │
│  • Handle data subject requests                             │
│  • Report breaches to regulator                             │
│  • Ensure compliance with regulations                       │
│  • Conduct privacy impact assessments                       │
│  • Train staff on data protection                           │
│                                                             │
│  POPIA requires registration with Information Regulator     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Register Information Officer

┌─────────────────────────────────────────────────────────────┐
│ ADD INFORMATION OFFICER                                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Name *               [Jane Smith___________________]       │
│                                                             │
│  Position *           [Records Manager______________]       │
│                                                             │
│  Email *              [jane.smith@archive.org.za____]       │
│                                                             │
│  Phone                [012 345 6789_________________]       │
│                                                             │
│  Jurisdiction *       [ POPIA                    ▼]         │
│                                                             │
│  Registration Status  [ Registered               ▼]         │
│                       ┌─────────────────────────────┐       │
│                       │ Pending                     │       │
│                       │ Registered            ←     │       │
│                       │ Expired                     │       │
│                       └─────────────────────────────┘       │
│                                                             │
│  Registration Number  [IO/2024/12345________________]       │
│                                                             │
│  Registration Date    [ 15/03/2024  📅]                    │
│                                                             │
│                              [ Cancel ]  [ Save Officer ]   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 3: DSAR Management

What is a DSAR?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   DSAR = Data Subject Access Request                        │
│                                                             │
│   A person's right to:                                      │
│   • Know what personal data you hold about them             │
│   • Get a copy of their data                                │
│   • Have incorrect data corrected                           │
│   • Have data deleted (right to erasure)                    │
│   • Object to processing                                    │
│   • Data portability                                        │
│                                                             │
│   YOU MUST RESPOND WITHIN THE DEADLINE:                     │
│   • POPIA/GDPR/NDPA: 30 days                               │
│   • CCPA: 45 days                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

DSAR Workflow

                      Request Received
                            │
                            ▼
               ┌────────────────────────┐
               │   Verify Identity      │
               │   (Is this really      │
               │    the data subject?)  │
               └───────────┬────────────┘
                           │
              ┌────────────┴────────────┐
              │                         │
         Verified                  Not Verified
              │                         │
              ▼                         ▼
    ┌──────────────────┐      ┌──────────────────┐
    │  Search for      │      │  Request more    │
    │  personal data   │      │  information     │
    └────────┬─────────┘      └──────────────────┘
             │
             ▼
    ┌──────────────────┐
    │  Compile         │
    │  response        │
    └────────┬─────────┘
             │
        ┌────┴────┐
        │         │
    Data Found  No Data
        │         │
        ▼         ▼
   ┌─────────┐ ┌─────────┐
   │ Provide │ │ Inform  │
   │ data    │ │ subject │
   └────┬────┘ └────┬────┘
        │           │
        └─────┬─────┘
              │
              ▼
       ┌─────────────┐
       │   COMPLETE  │
       │  Log outcome│
       └─────────────┘

Log New DSAR

┌─────────────────────────────────────────────────────────────┐
│ NEW DATA SUBJECT ACCESS REQUEST                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Request Date *       [ 10/01/2026  📅]                    │
│                                                             │
│  Jurisdiction *       [ POPIA                    ▼]         │
│                                                             │
│  Due Date             [ 09/02/2026 ] (auto-calculated)      │
│                                                             │
│  Request Type *       [ Access                   ▼]         │
│                       ┌─────────────────────────────┐       │
│                       │ Access               ←      │       │
│                       │ Correction                  │       │
│                       │ Deletion                    │       │
│                       │ Objection                   │       │
│                       │ Portability                 │       │
│                       └─────────────────────────────┘       │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  DATA SUBJECT DETAILS                                       │
│                                                             │
│  Name *               [John Doe_____________________]       │
│                                                             │
│  Email *              [john.doe@example.com_________]       │
│                                                             │
│  Phone                [082 123 4567_________________]       │
│                                                             │
│  ID Verified?         ○ Yes  ● No  ○ Pending                │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  REQUEST DETAILS                                            │
│                                                             │
│  Description:                                               │
│  [Requesting copy of all personal data held in archive    ]│
│  [records. Specifically interested in employment records. ]│
│                                                             │
│  Attachments:         [📎 ID Copy.pdf] [📎 Request Form]    │
│                                                             │
│                              [ Cancel ]  [ Log Request ]    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

DSAR Dashboard

┌─────────────────────────────────────────────────────────────┐
│ DSAR REQUESTS                                               │
├──────────────────┬──────────────────┬───────────────────────┤
│                  │                  │                       │
│  OPEN            │  DUE SOON        │   OVERDUE             │
│                  │  (7 days)        │                       │
│      8           │       3          │       1               │
│   requests       │    requests      │    request            │
│                  │      ⚠️           │      🔴               │
│                  │                  │                       │
└──────────────────┴──────────────────┴───────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ ID     │ Subject    │ Type     │ Due Date   │ Status       │
├────────┼────────────┼──────────┼────────────┼──────────────┤
│ DSR-001│ John Doe   │ Access   │ 09 Feb 26  │ 🟡 In Progress│
│ DSR-002│ Jane Smith │ Deletion │ 15 Feb 26  │ 🟡 In Progress│
│ DSR-003│ Bob Wilson │ Access   │ 🔴 02 Jan 26│ 🔴 Overdue    │
│ DSR-004│ Mary Jones │ Correct  │ 20 Feb 26  │ 🟢 New        │
└────────┴────────────┴──────────┴────────────┴──────────────┘

[ + New Request ]                        [ Export ] [ Filter ]

Part 4: Breach Management

What is a Data Breach?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   BREACH = Unauthorised access, loss, or disclosure         │
│            of personal information                          │
│                                                             │
│   Examples:                                                 │
│   • Cyber attack / hacking                                  │
│   • Lost or stolen device with data                         │
│   • Email sent to wrong recipient                           │
│   • Unauthorised employee access                            │
│   • Physical theft of records                               │
│   • Accidental publication of data                          │
│                                                             │
│   YOU MUST:                                                 │
│   1. Report to regulator within 72 hours (usually)          │
│   2. Notify affected individuals if risk of harm            │
│   3. Document the incident and response                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Breach Response Workflow

              Breach Discovered
                    │
                    ▼
         ┌──────────────────┐
         │   CONTAIN        │
         │   Stop the       │
         │   breach         │
         └────────┬─────────┘
                  │
                  ▼
         ┌──────────────────┐
         │   ASSESS         │
         │   • What data?   │
         │   • How many?    │
         │   • What risk?   │
         └────────┬─────────┘
                  │
         ┌────────┴────────┐
         │                 │
    High Risk         Low Risk
         │                 │
         ▼                 ▼
  ┌─────────────┐   ┌─────────────┐
  │ NOTIFY      │   │ DOCUMENT    │
  │ • Regulator │   │ • Log only  │
  │   (72 hrs)  │   │ • Monitor   │
  │ • Subjects  │   └──────┬──────┘
  └──────┬──────┘          │
         │                 │
         ▼                 │
  ┌─────────────┐          │
  │ REMEDIATE   │          │
  │ Fix cause   │◀─────────┘
  │ Prevent     │
  │ recurrence  │
  └──────┬──────┘
         │
         ▼
  ┌─────────────┐
  │   REVIEW    │
  │ Lessons     │
  │ learned     │
  └─────────────┘

Log Data Breach

┌─────────────────────────────────────────────────────────────┐
│ REPORT DATA BREACH                                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Incident Date *      [ 08/01/2026  📅] at [14:30]         │
│                                                             │
│  Discovery Date *     [ 09/01/2026  📅]                    │
│                                                             │
│  Jurisdiction *       [ POPIA                    ▼]         │
│                                                             │
│  Notification Deadline [ 12/01/2026 ] (72 hours)            │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  INCIDENT DETAILS                                           │
│                                                             │
│  Category *           [ Cyber Attack             ▼]         │
│                       ┌─────────────────────────────┐       │
│                       │ Cyber Attack          ←     │       │
│                       │ Lost/Stolen Device          │       │
│                       │ Unauthorised Access         │       │
│                       │ Misdirected Communication   │       │
│                       │ Physical Theft              │       │
│                       │ Other                       │       │
│                       └─────────────────────────────┘       │
│                                                             │
│  Data Types Affected: ☑ Names      ☑ ID Numbers            │
│                       ☑ Contact    ☐ Financial             │
│                       ☐ Health     ☐ Children's Data       │
│                                                             │
│  Estimated Records    [ 250______] affected                 │
│                                                             │
│  Description:                                               │
│  [Ransomware attack on file server. Researcher database   ]│
│  [potentially accessed. Server isolated, forensic         ]│
│  [investigation underway.                                 ]│
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  RISK ASSESSMENT                                            │
│                                                             │
│  Severity *           ○ Low  ● Medium  ○ High  ○ Critical   │
│                                                             │
│  Likelihood of Harm   ○ Low  ● Medium  ○ High               │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  NOTIFICATIONS                                              │
│                                                             │
│  Regulator Notified?  ○ Yes  ● No  ○ Not Required           │
│                                                             │
│  Subjects Notified?   ○ Yes  ● No  ○ Not Required           │
│                                                             │
│                              [ Cancel ]  [ Log Incident ]   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 5: ROPA

What is ROPA?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   ROPA = Record of Processing Activities                    │
│                                                             │
│   Documents all processing of personal information:         │
│   • What data you collect                                   │
│   • Why you process it (legal basis)                        │
│   • Who has access                                          │
│   • How long you keep it                                    │
│   • What security measures protect it                       │
│                                                             │
│   Required under POPIA, GDPR, and NDPA                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Add Processing Activity

┌─────────────────────────────────────────────────────────────┐
│ ADD PROCESSING ACTIVITY                                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Activity Name *      [Researcher Registration_______]      │
│                                                             │
│  Department           [Research Services_____________]      │
│                                                             │
│  Jurisdiction         [ POPIA                    ▼]         │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  DATA CATEGORIES                                            │
│                                                             │
│  Personal Data Types: ☑ Names      ☑ Contact Details       │
│                       ☑ ID Numbers ☐ Financial             │
│                       ☐ Health     ☐ Biometric             │
│                       ☑ Photos     ☐ Children's Data       │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  LEGAL BASIS                                                │
│                                                             │
│  Purpose *            [Registration and access control    ]│
│                       [for reading room services.         ]│
│                                                             │
│  Legal Basis *        [ Consent                  ▼]         │
│                       ┌─────────────────────────────┐       │
│                       │ Consent               ←     │       │
│                       │ Contract                    │       │
│                       │ Legal Obligation            │       │
│                       │ Vital Interests             │       │
│                       │ Public Interest             │       │
│                       │ Legitimate Interests        │       │
│                       └─────────────────────────────┘       │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  RETENTION & SECURITY                                       │
│                                                             │
│  Retention Period     [ 5 ] years after last visit          │
│                                                             │
│  Security Measures:   ☑ Access Control  ☑ Encryption       │
│                       ☑ Backup          ☑ Audit Trail      │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│  DATA SHARING                                               │
│                                                             │
│  Recipients           [Staff only - no third parties     ]│
│                                                             │
│  Cross-border Transfer ○ Yes  ● No                          │
│                                                             │
│                              [ Cancel ]  [ Save Activity ]  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ CONSENT RECORD                                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Subject Name *       [Mary Johnson_________________]       │
│                                                             │
│  Subject Email        [mary.johnson@example.com_____]       │
│                                                             │
│  Consent Purpose *    [Email newsletter subscription ]      │
│                                                             │
│  Consent Given        [ 15/01/2026  📅]                    │
│                                                             │
│  Method               [ Written Form             ▼]         │
│                       ┌─────────────────────────────┐       │
│                       │ Written Form          ←     │       │
│                       │ Online Form                 │       │
│                       │ Verbal (recorded)           │       │
│                       │ Email                       │       │
│                       └─────────────────────────────┘       │
│                                                             │
│  Consent Text Shown:                                        │
│  [I agree to receive monthly newsletter updates about     ]│
│  [archive events and new collections. I understand I      ]│
│  [can unsubscribe at any time.                           ]│
│                                                             │
│  Evidence Attached:   [📎 Consent Form Signed.pdf]          │
│                                                             │
│  Jurisdiction         [ POPIA                    ▼]         │
│                                                             │
│                              [ Cancel ]  [ Save Consent ]   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 7: PAIA Requests (South Africa)

What is PAIA?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   PAIA = Promotion of Access to Information Act             │
│                                                             │
│   Gives the public the right to access:                     │
│   • Records held by government bodies                       │
│   • Records held by private bodies                          │
│     (if needed for rights protection)                       │
│                                                             │
│   Response deadline: 30 days                                │
│   (can extend by another 30 if necessary)                   │
│                                                             │
│   Related to but separate from POPIA                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 8: PII Detection

What is PII?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   PII = Personally Identifiable Information                 │
│                                                             │
│   Information that can identify an individual:              │
│   • Names                                                   │
│   • ID numbers (SA ID, passport, etc.)                      │
│   • Email addresses                                         │
│   • Phone numbers                                           │
│   • Bank account numbers                                    │
│   • Tax numbers                                             │
│                                                             │
│   The system automatically scans your records for PII       │
│   to help you comply with privacy regulations.              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

PII Types Detected

┌─────────────────────────────────────────────────────────────┐
│  TYPE             │  RISK    │  EXAMPLE                     │
├───────────────────┼──────────┼──────────────────────────────┤
│  SA ID Number     │  HIGH    │  8501015800083               │
│  Nigerian NIN     │  HIGH    │  12345678901                 │
│  Passport Number  │  HIGH    │  A12345678                   │
│  Bank Account     │  HIGH    │  1234567890                  │
│  Credit Card      │  CRITICAL│  4111-1111-1111-1111         │
│  Tax Number       │  HIGH    │  0123456789                  │
│  Email Address    │  MEDIUM  │  john@example.com            │
│  Phone Number     │  MEDIUM  │  +27 82 123 4567             │
│  Person Name      │  MEDIUM  │  John Smith (via AI)         │
│  Organisation     │  LOW     │  ACME Corp (via AI)          │
│  Place            │  LOW     │  Johannesburg (via AI)       │
└───────────────────┴──────────┴──────────────────────────────┘

How to Access PII Scanner

  Main Menu
      │
      ▼
   Admin
      │
      ▼
   Privacy Compliance
      │
      ├──▶ PII Scanner         (scan and detect PII)
      │       │
      │       ├──▶ Dashboard   (statistics overview)
      │       ├──▶ Run Scan    (batch scan records)
      │       └──▶ Review      (approve/reject findings)
      │
      └──▶ ...other options...

Or from any record:

  View any archival description
      │
      ▼
   Sidebar (right side)
      │
      ▼
   "Privacy & PII" section
      │
      ├──▶ Scan for PII        (scan this record)
      ├──▶ PII Review Queue    (see all pending)
      └──▶ PII Dashboard       (statistics)

Scan Individual Record

┌─────────────────────────────────────────────────────────────┐
│ PII DETECTION RESULTS                                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ⚠️ 3 high-risk PII entities detected!                      │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│                                                             │
│  🔴 SA ID Numbers (1)                                       │
│     ┌──────────────────────────────┐                        │
│     │ 8501****083                  │                        │
│     └──────────────────────────────┘                        │
│                                                             │
│  🟡 Email Addresses (1)                                     │
│     ┌──────────────────────────────┐                        │
│     │ jo***@example.com            │                        │
│     └──────────────────────────────┘                        │
│                                                             │
│  🔵 People (via AI) (2)                                     │
│     ┌──────────────────────────────┐                        │
│     │ John Smith    Mary Jones     │                        │
│     └──────────────────────────────┘                        │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│                                                             │
│  Risk Score: 45/100                      [ Review PII ]     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

PII Scanner Dashboard

┌─────────────────────────────────────────────────────────────┐
│ PII DETECTION SCANNER                                       │
├──────────────────┬──────────────────┬───────────────────────┤
│                  │                  │                       │
│  OBJECTS SCANNED │  WITH PII        │   HIGH-RISK           │
│                  │                  │                       │
│      1,245       │      156         │       23              │
│    records       │    records       │    records 🔴         │
│                  │                  │                       │
└──────────────────┴──────────────────┴───────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ RUN PII SCAN                                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Repository      [ All repositories           ▼]            │
│                                                             │
│  Batch Size      [ 50 objects                 ▼]            │
│                  ┌───────────────────────────────┐          │
│                  │ 25 objects                    │          │
│                  │ 50 objects              ←     │          │
│                  │ 100 objects                   │          │
│                  │ 250 objects                   │          │
│                  └───────────────────────────────┘          │
│                                                             │
│                              [ ▶ Start Scan ]               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ HIGH-RISK OBJECTS                                    🔴     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Object              │ PII Count │ Scanned    │ Actions     │
│  ────────────────────┼───────────┼────────────┼─────────────│
│  Personnel File 1954 │    12     │ 2026-01-20 │ [View]      │
│  Medical Records Box │     8     │ 2026-01-20 │ [View]      │
│  Application Forms   │     6     │ 2026-01-19 │ [View]      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Review PII Entities

┌─────────────────────────────────────────────────────────────┐
│ PII REVIEW QUEUE                              Pending: 47   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Status │ Type    │ Value          │ Object     │ Actions   │
│  ───────┼─────────┼────────────────┼────────────┼───────────│
│  🔴 Flag│ SA_ID   │ 8501****083    │ File #123  │ [✓][✎][✗] │
│  🟡 Pend│ EMAIL   │ jo***@mail.com │ Letter #45 │ [✓][✎][✗] │
│  🟡 Pend│ PERSON  │ John Smith     │ Report #67 │ [✓][✎][✗] │
│  🟣 ISAD│ PLACE   │ Johannesburg   │ Report #67 │ [✓][✎][✗] │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ REVIEW ACTIONS                                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ✓ APPROVE   - Not sensitive PII, can remain visible        │
│                                                             │
│  ✎ REDACT    - Is PII, should be masked/restricted          │
│               (For PDFs: black boxes applied to text)       │
│                                                             │
│  ✗ REJECT    - False positive, not actually PII             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Entity Sources (Badge Colors)

┌─────────────────────────────────────────────────────────────┐
│ PII ENTITY SOURCES                                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  🔵 NER (Blue)     - AI-extracted from text/images via NER  │
│                      Types: PERSON, ORG, GPE, DATE          │
│                                                             │
│  🔴 Regex (Red)    - Pattern-matched PII identifiers        │
│                      Types: SA_ID, EMAIL, PHONE, BANK_ACCT  │
│                                                             │
│  🟣 ISAD (Purple)  - From ISAD(G) access points             │
│                      Types: Subject, Place, Name, Date      │
│                                                             │
│  Note: ISAD access points are metadata fields you entered.  │
│  They may contain names, places, or dates that need to be   │
│  redacted from public-facing documents.                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Using the Command Line

┌─────────────────────────────────────────────────────────────┐
│ CLI COMMANDS FOR PII SCANNING                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  # Show statistics                                          │
│  php symfony privacy:scan-pii --stats                       │
│                                                             │
│  # Scan a specific record                                   │
│  php symfony privacy:scan-pii --id=123                      │
│                                                             │
│  # Batch scan 50 records                                    │
│  php symfony privacy:scan-pii --limit=50                    │
│                                                             │
│  # Scan specific repository only                            │
│  php symfony privacy:scan-pii --repository=5                │
│                                                             │
│  # Re-scan already scanned records                          │
│  php symfony privacy:scan-pii --rescan                      │
│                                                             │
│  # Show detailed output                                     │
│  php symfony privacy:scan-pii --verbose                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Risk Score Explained

┌─────────────────────────────────────────────────────────────┐
│ RISK SCORE CALCULATION                                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Score Range     │  Classification  │  Action Required      │
│  ────────────────┼──────────────────┼───────────────────────│
│    0 - 20        │  🟢 Low Risk     │  Monitor              │
│   21 - 50        │  🟡 Medium Risk  │  Review recommended   │
│   51 - 100       │  🔴 High Risk    │  Immediate review     │
│                                                             │
│  ─────────────────────────────────────────────────────────  │
│                                                             │
│  How the score is calculated:                               │
│                                                             │
│  • Critical PII (credit cards)     × 30 points each         │
│  • High-risk PII (ID numbers)      × 20 points each         │
│  • Medium-risk (email, phone)      × 5 points each          │
│  • Low-risk (names, places)        × 1 point each           │
│                                                             │
│  Maximum score: 100                                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 8b: PDF Redaction

What is PDF Redaction?

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   PDF REDACTION = Permanently removing sensitive            │
│                   information from PDF documents            │
│                                                             │
│   When you mark a PII entity for redaction:                 │
│   • The system searches the PDF for that text               │
│   • Applies black boxes over matching text                  │
│   • Creates a new "redacted" version of the PDF             │
│   • Public users see only the redacted version              │
│                                                             │
│   Original PDFs are PRESERVED - only copies are redacted.   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

PDF Redaction Workflow

                    Record has PDF
                          │
                          ▼
              ┌────────────────────────┐
              │   Scan for PII         │
              │   (Admin → Privacy →   │
              │    PII Scanner)        │
              └───────────┬────────────┘
                          │
                          ▼
              ┌────────────────────────┐
              │   Review detected      │
              │   entities             │
              └───────────┬────────────┘
                          │
         ┌────────────────┼────────────────┐
         │                │                │
    ✓ Approve        ✎ Redact         ✗ Reject
         │                │                │
         ▼                ▼                ▼
    Not PII,         Mark for        False positive,
    keep visible     redaction       remove from list
                          │
                          ▼
              ┌────────────────────────┐
              │   System generates     │
              │   redacted PDF         │
              │   (black boxes over    │
              │   sensitive text)      │
              └───────────┬────────────┘
                          │
                          ▼
              ┌────────────────────────┐
              │   Public users see     │
              │   redacted version     │
              │                        │
              │   Staff see original   │
              │   (if permissions)     │
              └────────────────────────┘

What Gets Redacted

┌─────────────────────────────────────────────────────────────┐
│ SOURCES OF REDACTION TERMS                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. NER-Extracted Entities                                  │
│     Names, organizations, places extracted from OCR text    │
│                                                             │
│  2. Regex-Detected PII                                      │
│     ID numbers, emails, phone numbers found in metadata     │
│                                                             │
│  3. ISAD Access Points                                      │
│     • Subjects: Topic terms linked to the record            │
│     • Places: Geographic locations                          │
│     • Names: People/organizations from events               │
│     • Dates: Date ranges from events                        │
│                                                             │
│  Only entities marked with status "Redact" are applied.     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

View Redacted PDF

┌─────────────────────────────────────────────────────────────┐
│ HOW PUBLIC USERS SEE REDACTED PDFs                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  When viewing a record with redacted PII:                   │
│                                                             │
│  1. The PDF viewer shows "PII Redacted" badge               │
│  2. Sensitive text appears as black boxes: ████████         │
│  3. The underlying text is permanently removed              │
│  4. Copy/paste won't reveal original text                   │
│                                                             │
│  ┌─────────────────────────────────────────────────┐        │
│  │  📄 Document Viewer        [PII Redacted]       │        │
│  ├─────────────────────────────────────────────────┤        │
│  │                                                 │        │
│  │  Employee Name: █████████████████               │        │
│  │  ID Number: ██████████████                      │        │
│  │  Department: Human Resources                    │        │
│  │  Date: 15 March 1985                            │        │
│  │                                                 │        │
│  └─────────────────────────────────────────────────┘        │
│                                                             │
│  Note: Original file remains available to staff with        │
│  appropriate permissions.                                   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Tips for Effective Redaction

┌─────────────────────────────────────────────────────────────┐
│  ✓ DO                          │  ✗ DON'T                  │
├────────────────────────────────┼────────────────────────────┤
│  Review all entities carefully │  Blindly redact everything │
│  Check ISAD access points      │  Ignore purple badges      │
│  Verify PDF has text layer     │  Assume scanned PDFs work  │
│  Test redacted output          │  Skip verification         │
│  Document your decisions       │  Leave audit trail gaps    │
│  Re-scan after metadata edits  │  Assume one scan is enough │
└────────────────────────────────┴────────────────────────────┘

PDF Requirements for Redaction

┌─────────────────────────────────────────────────────────────┐
│ PDF REQUIREMENTS                                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  For redaction to work, PDFs must have:                     │
│                                                             │
│  ✓ Text layer (not just scanned images)                     │
│  ✓ Searchable text (can be OCR'd or native)                 │
│                                                             │
│  If your PDF is a scan without OCR:                         │
│  1. The system cannot locate text to redact                 │
│  2. Consider running OCR first (e.g., using Tesseract)      │
│  3. Re-upload the OCR'd version                             │
│                                                             │
│  How to check if PDF has text:                              │
│  • Open PDF in viewer                                       │
│  • Try to select/highlight text                             │
│  • If you can select it, redaction will work                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Part 9: Compliance Dashboard

Overview Screen

┌─────────────────────────────────────────────────────────────┐
│ PRIVACY COMPLIANCE DASHBOARD                                │
├──────────────────┬──────────────────┬───────────────────────┤
│                  │                  │                       │
│  DSAR REQUESTS   │  DATA BREACHES   │   COMPLIANCE          │
│                  │                  │   SCORE               │
│  Open: 8         │  This Year: 2    │                       │
│  Overdue: 1 🔴   │  Open: 0         │      87%              │
│  Avg Response:   │  Last Incident:  │   🟢 Good             │
│  18 days         │  45 days ago     │                       │
│                  │                  │                       │
└──────────────────┴──────────────────┴───────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ UPCOMING DEADLINES                                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ⚠️  DSR-003 - Bob Wilson Access Request - OVERDUE 8 days   │
│  🟡 DSR-001 - John Doe Access Request - Due in 5 days       │
│  🟡 ROPA Annual Review - Due in 14 days                     │
│  🟢 IO Registration Renewal - Due in 60 days                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ COMPLIANCE CHECKLIST                                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ☑ Information Officer registered                           │
│  ☑ ROPA documented                                          │
│  ☑ Privacy notice published                                 │
│  ☐ Annual POPIA training completed                          │
│  ☐ Operator agreements reviewed                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Quick Reference

┌─────────────────────────────────────────────────────────────┐
│  TASK                      │  HOW TO DO IT                  │
├────────────────────────────┼────────────────────────────────┤
│  View dashboard            │  Admin → Privacy → Dashboard   │
│  Configure jurisdiction    │  Admin → Privacy → Config      │
│  Log new DSAR              │  Admin → Privacy → DSAR → Add  │
│  Report breach             │  Admin → Privacy → Breaches    │
│  Add processing activity   │  Admin → Privacy → ROPA → Add  │
│  Record consent            │  Admin → Privacy → Consent     │
│  Manage officers           │  Admin → Privacy → Officers    │
│  Generate report           │  Admin → Privacy → Reports     │
│  Scan for PII              │  Admin → Privacy → PII Scanner │
│  Scan single record        │  Record page → Scan for PII    │
│  Review PII findings       │  Admin → Privacy → PII Review  │
└────────────────────────────┴────────────────────────────────┘

Key Deadlines

┌─────────────────────────────────────────────────────────────┐
│                    RESPONSE DEADLINES                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  📨 DSAR REQUESTS                                           │
│     POPIA/GDPR/NDPA/Kenya: 30 calendar days                 │
│     CCPA: 45 calendar days                                  │
│     PIPEDA: 30 calendar days                                │
│                                                             │
│  🚨 BREACH NOTIFICATION                                     │
│     POPIA: As soon as reasonably possible                   │
│     GDPR: 72 hours to regulator                             │
│     NDPA: 72 hours                                          │
│     CCPA: Most expedient time possible                      │
│                                                             │
│  📋 PAIA REQUESTS (SA only)                                 │
│     Initial response: 30 days                               │
│     Extension possible: +30 days                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Tips for Best Practice

┌─────────────────────────────────────────────────────────────┐
│  ✓ DO                          │  ✗ DON'T                  │
├────────────────────────────────┼────────────────────────────┤
│  Log all requests immediately  │  Ignore requests          │
│  Verify identity carefully     │  Release without verify   │
│  Document all decisions        │  Skip the audit trail     │
│  Train staff regularly         │  Assume everyone knows    │
│  Report breaches promptly      │  Cover up incidents       │
│  Review ROPA annually          │  Let it get outdated      │
│  Keep consent evidence         │  Assume consent           │
│  Respond within deadlines      │  Miss deadlines           │
└────────────────────────────────┴────────────────────────────┘

Regulators Contact

┌─────────────────────────────────────────────────────────────┐
│  JURISDICTION   │  REGULATOR            │  WEBSITE          │
├─────────────────┼───────────────────────┼───────────────────┤
│  🇿🇦 POPIA       │  Information Regulator│ justice.gov.za    │
│  🇳🇬 NDPA        │  NDPC                 │ ndpc.gov.ng       │
│  🇰🇪 Kenya DPA   │  ODPC                 │ odpc.go.ke        │
│  🇪🇺 GDPR        │  National DPA         │ (varies by country│
│  🇨🇦 PIPEDA      │  OPC                  │ priv.gc.ca        │
│  🇺🇸 CCPA        │  CPPA                 │ cppa.ca.gov       │
└─────────────────┴───────────────────────┴───────────────────┘

Troubleshooting

Problem                          Solution
───────────────────────────────────────────────────────────
Can't find Privacy menu       →  Check Admin permissions
                                 May need admin role

Jurisdiction not showing      →  Enable in Configuration
                                 Check it's activated

Deadline calculating wrong    →  Check jurisdiction settings
                                 Verify response days set

Can't attach documents        →  Check file size (<10MB)
                                 Use PDF/JPG/PNG format

Report won't generate         →  Select date range
                                 Ensure data exists

Need Help?

Contact your system administrator or Information Officer if you experience issues.

For regulatory guidance:

  • POPIA: www.justice.gov.za/inforeg
  • GDPR: ec.europa.eu/info/law/law-topic/data-protection
  • PIPEDA: www.priv.gc.ca

Data Protection Impact Assessment (DPIA)

GDPR Article 35 DPIAs for high-risk processing. Where: Privacy admin → DPIAs (/privacyAdmin/dpiaList).

Workflow: draft → review → completed (signed off) → archived.

  1. Click New DPIA, name it, and optionally link a ROPA processing activity.
  2. Complete the four WP29 sections — necessity & proportionality, risks to data subjects, mitigation + residual risk, and the DPO consultation opinion — then Save.
  3. High-risk is auto-flagged when the text mentions special-category / biometric / large-scale / cross-border processing (or tick it manually).
  4. Move to review, then Sign off (optional note). Sign-off marks the DPIA completed, stamps who/when, sets dpia_completed + dpia_date on the linked ROPA entry, and writes an audit record. Completed/archived DPIAs are read-only.

Field-level redaction

Redact individual structured metadata fields for public viewers while staff see the full record. See Field-level redaction for the field types (full / partial patterns / pseudonymised), the admin panel at /privacyAdmin/redactionManage, and DSAR scope pre-population.


Part of the AtoM AHG Framework