Privacy & Compliance
POPIA/GDPR/CCPA compliance: breach management, consent tracking, SAR requests, data retention.
ahgPrivacyPlugin
0
privacy_approval_log0
privacy_audit_log1
privacy_breach1
privacy_breach_i18n0
privacy_breach_incident0
privacy_breach_notification1
privacy_complaint119
privacy_compliance_rule6
privacy_config0
privacy_consent0
privacy_consent_i18n0
privacy_consent_log0
privacy_consent_record1
privacy_data_inventory6
privacy_dsar3
privacy_dsar_i18n4
privacy_dsar_log0
privacy_dsar_request1
privacy_institution_config6
privacy_jurisdiction10
privacy_jurisdiction_registry68
privacy_lawful_basis0
privacy_notification1
privacy_officer1
privacy_paia_request2
privacy_processing_activity0
privacy_processing_activity_i18n0
privacy_redaction_cache71
privacy_request_type100
privacy_retention_schedule83
privacy_special_category1
privacy_template7
privacy_visual_redactionEntity Relationship Diagram
Open Full SizeForeign Key Relationships
| Constraint | Table | Column | References | Referenced Column | |
|---|---|---|---|---|---|
fk_breach_i18n |
privacy_breach_i18n |
id | privacy_breach |
id | |
fk_breach_notif |
privacy_breach_notification |
breach_id | privacy_breach |
id | |
fk_consent_i18n |
privacy_consent_i18n |
id | privacy_consent |
id | |
fk_consent_log |
privacy_consent_log |
consent_id | privacy_consent |
id | |
fk_dsar_i18n |
privacy_dsar_i18n |
id | privacy_dsar |
id | |
fk_processing_i18n |
privacy_processing_activity_i18n |
id | privacy_processing_activity |
id |
privacy_approval_log
9 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | entity_type |
varchar(50) | NOT NULL | - | ||
entity_id |
int unsigned | NOT NULL | - | |||
action |
varchar(50) | NOT NULL | - | submitted, approved, rejected, comment | ||
old_status |
varchar(50) | NULL | - | |||
new_status |
varchar(50) | NULL | - | |||
comment |
text | NULL | - | |||
user_id |
int | NOT NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_audit_log
10 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | entity_type |
varchar(50) | NOT NULL | - | ||
entity_id |
int unsigned | NOT NULL | - | |||
| FK | action |
varchar(50) | NOT NULL | - | ||
| FK | user_id |
int | NULL | - | ||
ip_address |
varchar(45) | NULL | - | |||
old_values |
json | NULL | - | |||
new_values |
json | NULL | - | |||
notes |
text | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_breach
22 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference_number |
varchar(50) | NOT NULL | - | ||
| FK | jurisdiction |
varchar(30) | NOT NULL |
popia
|
||
breach_type |
varchar(48) | NOT NULL | - | confidentiality, integrity, availability | ||
| FK | severity |
varchar(34) | NOT NULL |
medium
|
low, medium, high, critical | |
| FK | status |
varchar(58) | NOT NULL |
detected
|
detected, investigating, contained, resolved, closed | |
detected_date |
datetime | NOT NULL | - | |||
occurred_date |
datetime | NULL | - | |||
contained_date |
datetime | NULL | - | |||
resolved_date |
datetime | NULL | - | |||
data_subjects_affected |
int | NULL | - | |||
data_categories_affected |
text | NULL | - | |||
notification_required |
tinyint(1) | NOT NULL |
0
|
|||
regulator_notified |
tinyint(1) | NOT NULL |
0
|
|||
regulator_notified_date |
datetime | NULL | - | |||
subjects_notified |
tinyint(1) | NOT NULL |
0
|
|||
subjects_notified_date |
datetime | NULL | - | |||
risk_to_rights |
varchar(39) | NULL | - | unlikely, possible, likely, high | ||
assigned_to |
int | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_breach_i18n
8 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | ||
| PK | culture |
varchar(16) | NOT NULL |
en
|
||
title |
varchar(255) | NULL | - | |||
description |
text | NULL | - | |||
cause |
text | NULL | - | |||
impact_assessment |
text | NULL | - | |||
remedial_actions |
text | NULL | - | |||
lessons_learned |
text | NULL | - |
privacy_breach_incident
17 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference |
varchar(50) | NOT NULL | - | ||
incident_date |
datetime | NOT NULL | - | |||
discovered_date |
datetime | NOT NULL | - | |||
breach_type |
varchar(100) | NOT NULL | - | |||
description |
text | NOT NULL | - | |||
data_affected |
text | NULL | - | |||
individuals_affected |
int | NULL | - | |||
severity |
varchar(50) | NULL | - | |||
root_cause |
text | NULL | - | |||
containment_actions |
text | NULL | - | |||
regulator_notified |
tinyint(1) | NULL |
0
|
|||
notification_date |
datetime | NULL | - | |||
subjects_notified |
tinyint(1) | NULL |
0
|
|||
| FK | status |
varchar(50) | NULL |
open
|
||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_breach_notification
10 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | breach_id |
int unsigned | NOT NULL | - | ||
notification_type |
varchar(53) | NOT NULL | - | regulator, data_subject, internal, third_party | ||
recipient |
varchar(255) | NOT NULL | - | |||
method |
varchar(45) | NOT NULL | - | email, letter, portal, phone, in_person | ||
sent_date |
datetime | NULL | - | |||
acknowledged_date |
datetime | NULL | - | |||
content |
text | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_complaint
15 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference_number |
varchar(50) | NOT NULL | - | ||
jurisdiction |
varchar(20) | NULL |
popia
|
|||
complainant_name |
varchar(255) | NOT NULL | - | |||
complainant_email |
varchar(255) | NULL | - | |||
complainant_phone |
varchar(50) | NULL | - | |||
complaint_type |
varchar(100) | NOT NULL | - | |||
description |
text | NULL | - | |||
date_of_incident |
date | NULL | - | |||
status |
varchar(58) | NULL |
received
|
received, investigating, resolved, escalated, closed | ||
assigned_to |
int | NULL | - | |||
resolution |
text | NULL | - | |||
resolved_date |
date | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_compliance_rule
14 columns
119 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | jurisdiction_code |
varchar(30) | NOT NULL | - | ||
| FK | category |
varchar(50) | NOT NULL | - | dsar, breach, ropa, consent, retention | |
code |
varchar(50) | NOT NULL | - | |||
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
check_type |
varchar(50) | NOT NULL | - | required_field, value_check, date_check, custom | ||
field_name |
varchar(100) | NULL | - | |||
condition |
varchar(255) | NULL | - | |||
error_message |
text | NULL | - | |||
legal_reference |
varchar(100) | NULL | - | |||
severity |
varchar(28) | NULL |
error
|
error, warning, info | ||
is_active |
tinyint(1) | NULL |
1
|
|||
sort_order |
int | NULL |
0
|
privacy_config
13 columns
6 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | jurisdiction |
varchar(50) | NOT NULL |
popia
|
||
organization_name |
varchar(255) | NULL | - | |||
registration_number |
varchar(100) | NULL | - | |||
privacy_officer_id |
int unsigned | NULL | - | |||
data_protection_email |
varchar(255) | NULL | - | |||
dsar_response_days |
int | NOT NULL |
30
|
|||
breach_notification_hours |
int | NOT NULL |
72
|
|||
retention_default_years |
int | NOT NULL |
5
|
|||
is_active |
tinyint(1) | NOT NULL |
1
|
|||
settings |
json | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_consent
9 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | consent_type |
varchar(86) | NOT NULL | - | processing, marketing, profiling, third_party, cookies, research, special_category | |
| FK | purpose_code |
varchar(50) | NOT NULL | - | ||
is_required |
tinyint(1) | NOT NULL |
0
|
|||
is_active |
tinyint(1) | NOT NULL |
1
|
|||
valid_from |
date | NULL | - | |||
valid_until |
date | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_consent_i18n
5 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | ||
| PK | culture |
varchar(16) | NOT NULL |
en
|
||
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
purpose_description |
text | NULL | - |
privacy_consent_log
12 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | consent_id |
int unsigned | NOT NULL | - | ||
| FK | user_id |
int | NULL | - | ||
| FK | subject_identifier |
varchar(255) | NULL | - | Email or other identifier if not user | |
action |
varchar(43) | NOT NULL | - | granted, withdrawn, expired, renewed | ||
consent_given |
tinyint(1) | NOT NULL |
0
|
|||
consent_date |
datetime | NOT NULL | - | |||
withdrawal_date |
datetime | NULL | - | |||
ip_address |
varchar(45) | NULL | - | |||
user_agent |
text | NULL | - | |||
consent_proof |
text | NULL | - | Evidence of consent | ||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_consent_record
16 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | data_subject_id |
varchar(255) | NOT NULL | - | ||
subject_name |
varchar(255) | NULL | - | |||
subject_email |
varchar(255) | NULL | - | |||
purpose |
varchar(255) | NOT NULL | - | |||
consent_given |
tinyint(1) | NULL |
0
|
|||
consent_method |
varchar(50) | NULL |
form
|
|||
consent_date |
datetime | NULL | - | |||
withdrawal_date |
datetime | NULL | - | |||
source |
varchar(100) | NULL | - | |||
jurisdiction |
varchar(20) | NULL |
popia
|
|||
ip_address |
varchar(45) | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
status |
varchar(50) | NULL |
active
|
|||
withdrawn_date |
date | NULL | - |
privacy_data_inventory
13 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
| FK | data_type |
varchar(88) | NOT NULL | - | personal, special_category, children, criminal, financial, health, biometric, genetic | |
storage_location |
varchar(255) | NULL | - | |||
storage_format |
varchar(31) | NOT NULL |
electronic
|
electronic, paper, both | ||
encryption |
tinyint(1) | NOT NULL |
0
|
|||
access_controls |
text | NULL | - | |||
retention_years |
int | NULL | - | |||
disposal_method |
varchar(100) | NULL | - | |||
is_active |
tinyint(1) | NOT NULL |
1
|
|||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_dsar
26 columns
6 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference_number |
varchar(50) | NOT NULL | - | ||
| FK | jurisdiction |
varchar(30) | NOT NULL |
popia
|
||
request_type |
varchar(89) | NOT NULL | - | access, rectification, erasure, portability, restriction, objection, withdraw_consent | ||
requestor_name |
varchar(255) | NOT NULL | - | |||
requestor_email |
varchar(255) | NULL | - | |||
requestor_phone |
varchar(50) | NULL | - | |||
requestor_id_type |
varchar(50) | NULL | - | |||
requestor_id_number |
varchar(100) | NULL | - | |||
requestor_address |
text | NULL | - | |||
is_verified |
tinyint(1) | NOT NULL |
0
|
|||
verified_at |
datetime | NULL | - | |||
verified_by |
int | NULL | - | |||
| FK | status |
varchar(81) | NOT NULL |
received
|
received, verified, in_progress, pending_info, completed, rejected, withdrawn | |
priority |
varchar(32) | NOT NULL |
normal
|
low, normal, high, urgent | ||
received_date |
date | NOT NULL | - | |||
| FK | due_date |
date | NOT NULL | - | ||
completed_date |
date | NULL | - | |||
| FK | assigned_to |
int | NULL | - | ||
outcome |
varchar(58) | NULL | - | granted, partially_granted, refused, not_applicable | ||
refusal_reason |
text | NULL | - | |||
fee_required |
decimal(10,2) | NULL | - | |||
fee_paid |
tinyint(1) | NOT NULL |
0
|
|||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_dsar_i18n
5 columns
3 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | ||
| PK | culture |
varchar(16) | NOT NULL |
en
|
||
description |
text | NULL | - | |||
notes |
text | NULL | - | |||
response_summary |
text | NULL | - |
privacy_dsar_log
7 columns
4 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | dsar_id |
int unsigned | NOT NULL | - | ||
action |
varchar(100) | NOT NULL | - | |||
details |
text | NULL | - | |||
user_id |
int | NULL | - | |||
ip_address |
varchar(45) | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_dsar_request
14 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference |
varchar(50) | NOT NULL | - | ||
request_type |
varchar(50) | NOT NULL | - | |||
data_subject_name |
varchar(255) | NOT NULL | - | |||
data_subject_email |
varchar(255) | NULL | - | |||
data_subject_id_type |
varchar(50) | NULL | - | |||
received_date |
date | NOT NULL | - | |||
| FK | deadline_date |
date | NOT NULL | - | ||
completed_date |
date | NULL | - | |||
| FK | status |
varchar(50) | NULL |
pending
|
||
notes |
text | NULL | - | |||
assigned_to |
int | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_institution_config
13 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | repository_id |
int | NULL | - | NULL = global | |
| FK | jurisdiction_code |
varchar(30) | NOT NULL | - | ||
organization_name |
varchar(255) | NULL | - | |||
registration_number |
varchar(100) | NULL | - | |||
privacy_officer_id |
int unsigned | NULL | - | |||
data_protection_email |
varchar(255) | NULL | - | |||
dsar_response_days |
int | NULL | - | Override jurisdiction default | ||
breach_notification_hours |
int | NULL | - | Override jurisdiction default | ||
retention_default_years |
int | NULL |
5
|
|||
settings |
json | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_jurisdiction
17 columns
6 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | code |
varchar(30) | NOT NULL | - | ||
name |
varchar(50) | NOT NULL | - | |||
full_name |
varchar(255) | NOT NULL | - | |||
country |
varchar(100) | NOT NULL | - | |||
region |
varchar(50) | NULL |
Africa
|
|||
regulator |
varchar(255) | NULL | - | |||
regulator_url |
varchar(255) | NULL | - | |||
dsar_days |
int | NULL |
30
|
|||
breach_hours |
int | NULL |
72
|
|||
effective_date |
date | NULL | - | |||
related_laws |
json | NULL | - | |||
icon |
varchar(10) | NULL | - | |||
is_active |
tinyint(1) | NULL |
1
|
|||
sort_order |
int | NULL |
99
|
|||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_jurisdiction_registry
21 columns
10 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | code |
varchar(30) | NOT NULL | - | ||
name |
varchar(50) | NOT NULL | - | |||
full_name |
varchar(255) | NOT NULL | - | |||
country |
varchar(100) | NOT NULL | - | |||
| FK | region |
varchar(50) | NULL |
International
|
||
regulator |
varchar(255) | NULL | - | |||
regulator_url |
varchar(500) | NULL | - | |||
dsar_days |
int | NOT NULL |
30
|
|||
breach_hours |
int | NOT NULL |
72
|
|||
effective_date |
date | NULL | - | |||
related_laws |
json | NULL | - | |||
icon |
varchar(10) | NULL | - | |||
default_currency |
varchar(3) | NULL |
USD
|
|||
| FK | is_installed |
tinyint(1) | NOT NULL |
0
|
||
installed_at |
datetime | NULL | - | |||
| FK | is_active |
tinyint(1) | NOT NULL |
0
|
||
sort_order |
int | NULL |
99
|
|||
config_data |
json | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_lawful_basis
10 columns
68 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | jurisdiction_code |
varchar(30) | NOT NULL | - | ||
code |
varchar(50) | NOT NULL | - | |||
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
legal_reference |
varchar(100) | NULL | - | |||
requires_consent |
tinyint(1) | NULL |
0
|
|||
requires_lia |
tinyint(1) | NULL |
0
|
Legitimate Interest Assessment | ||
is_active |
tinyint(1) | NULL |
1
|
|||
sort_order |
int | NULL |
0
|
privacy_notification
14 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | user_id |
int | NOT NULL | - | ||
| FK | entity_type |
varchar(50) | NOT NULL | - | ropa, dsar, breach, consent | |
entity_id |
int unsigned | NOT NULL | - | |||
notification_type |
varchar(50) | NOT NULL | - | submitted, approved, rejected, comment, reminder | ||
subject |
varchar(255) | NOT NULL | - | |||
message |
text | NULL | - | |||
link |
varchar(500) | NULL | - | |||
is_read |
tinyint(1) | NULL |
0
|
|||
read_at |
datetime | NULL | - | |||
email_sent |
tinyint(1) | NULL |
0
|
|||
email_sent_at |
datetime | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_officer
12 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | user_id |
int | NULL | - | ||
name |
varchar(255) | NOT NULL | - | |||
email |
varchar(255) | NOT NULL | - | |||
phone |
varchar(50) | NULL | - | |||
title |
varchar(100) | NULL | - | |||
| FK | jurisdiction |
varchar(30) | NOT NULL |
all
|
||
registration_number |
varchar(100) | NULL | - | POPIA Information Regulator registration | ||
appointed_date |
date | NULL | - | |||
is_active |
tinyint(1) | NOT NULL |
1
|
|||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_paia_request
23 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| UQ | reference_number |
varchar(50) | NOT NULL | - | ||
| FK | paia_section |
varchar(64) | NOT NULL | - | section_18, section_22, section_23, section_50, section_77 | |
requestor_name |
varchar(255) | NOT NULL | - | |||
requestor_email |
varchar(255) | NULL | - | |||
requestor_phone |
varchar(50) | NULL | - | |||
requestor_id_number |
varchar(100) | NULL | - | |||
requestor_address |
text | NULL | - | |||
record_description |
text | NULL | - | |||
access_form |
varchar(27) | NOT NULL |
copy
|
inspect, copy, both | ||
| FK | status |
varchar(84) | NOT NULL |
received
|
received, processing, granted, partially_granted, refused, transferred, appealed | |
outcome_reason |
text | NULL | - | |||
refusal_grounds |
varchar(100) | NULL | - | PAIA grounds for refusal section | ||
fee_deposit |
decimal(10,2) | NULL | - | |||
fee_access |
decimal(10,2) | NULL | - | |||
fee_paid |
tinyint(1) | NOT NULL |
0
|
|||
received_date |
date | NOT NULL | - | |||
due_date |
date | NOT NULL | - | |||
completed_date |
date | NULL | - | |||
assigned_to |
int | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_processing_activity
32 columns
2 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
jurisdiction |
varchar(20) | NULL |
popia
|
|||
purpose |
text | NOT NULL | - | |||
lawful_basis |
varchar(100) | NULL | - | |||
lawful_basis_code |
varchar(50) | NULL | - | |||
data_categories |
text | NULL | - | |||
data_subjects |
text | NULL | - | |||
recipients |
text | NULL | - | |||
third_countries |
json | NULL | - | |||
transfers |
text | NULL | - | |||
retention_period |
varchar(100) | NULL | - | |||
security_measures |
text | NULL | - | |||
dpia_required |
tinyint(1) | NULL |
0
|
|||
dpia_completed |
tinyint(1) | NULL |
0
|
|||
dpia_date |
date | NULL | - | |||
status |
varchar(50) | NULL |
active
|
|||
owner |
varchar(255) | NULL | - | |||
department |
varchar(255) | NULL | - | |||
created_by |
int | NULL | - | |||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL | - | |||
next_review_date |
date | NULL | - | |||
submitted_at |
datetime | NULL | - | |||
submitted_by |
int | NULL | - | |||
approved_at |
datetime | NULL | - | |||
approved_by |
int | NULL | - | |||
rejected_at |
datetime | NULL | - | |||
rejected_by |
int | NULL | - | |||
rejection_reason |
text | NULL | - | |||
assigned_officer_id |
int | NULL | - |
privacy_processing_activity_i18n
5 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | ||
| PK | culture |
varchar(16) | NOT NULL |
en
|
||
name |
varchar(255) | NOT NULL | - | |||
purpose |
text | NULL | - | |||
description |
text | NULL | - |
privacy_redaction_cache
11 columns
0 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
bigint unsigned | NOT NULL | - | auto_increment | |
| FK | object_id |
int | NOT NULL | - | ||
digital_object_id |
int | NULL | - | |||
original_path |
varchar(500) | NOT NULL | - | |||
redacted_path |
varchar(500) | NOT NULL | - | |||
file_type |
varchar(20) | NOT NULL |
pdf
|
pdf, image | ||
regions_hash |
varchar(64) | NOT NULL | - | SHA256 of applied region IDs | ||
region_count |
int | NOT NULL |
0
|
|||
file_size |
bigint unsigned | NULL | - | |||
generated_at |
datetime | NOT NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
| FK | expires_at |
datetime | NULL | - |
privacy_request_type
10 columns
71 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | jurisdiction_code |
varchar(30) | NOT NULL | - | ||
code |
varchar(50) | NOT NULL | - | |||
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
legal_reference |
varchar(100) | NULL | - | |||
response_days |
int | NULL | - | Override jurisdiction default | ||
fee_allowed |
tinyint(1) | NULL |
0
|
|||
is_active |
tinyint(1) | NULL |
1
|
|||
sort_order |
int | NULL |
0
|
privacy_retention_schedule
11 columns
100 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
record_type |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
retention_period |
varchar(100) | NOT NULL | - | |||
retention_years |
int | NULL | - | |||
legal_basis |
varchar(255) | NULL | - | |||
disposal_action |
varchar(42) | NOT NULL |
destroy
|
destroy, archive, anonymize, review | ||
| FK | jurisdiction |
varchar(30) | NOT NULL |
all
|
||
is_active |
tinyint(1) | NOT NULL |
1
|
|||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
privacy_special_category
9 columns
83 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | jurisdiction_code |
varchar(30) | NOT NULL | - | ||
code |
varchar(50) | NOT NULL | - | |||
name |
varchar(255) | NOT NULL | - | |||
description |
text | NULL | - | |||
legal_reference |
varchar(100) | NULL | - | |||
requires_explicit_consent |
tinyint(1) | NULL |
1
|
|||
is_active |
tinyint(1) | NULL |
1
|
|||
sort_order |
int | NULL |
0
|
privacy_template
10 columns
1 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
int unsigned | NOT NULL | - | auto_increment | |
| FK | category |
varchar(50) | NOT NULL | - | ||
name |
varchar(255) | NOT NULL | - | |||
content |
text | NOT NULL | - | |||
file_path |
varchar(500) | NULL | - | |||
file_name |
varchar(255) | NULL | - | |||
file_size |
int | NULL | - | |||
mime_type |
varchar(100) | NULL | - | |||
is_active |
tinyint(1) | NULL |
1
|
|||
created_at |
datetime | NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED |
privacy_visual_redaction
18 columns
7 rows
| Column | Type | Nullable | Default | Extra | Comment | |
|---|---|---|---|---|---|---|
| PK | id |
bigint unsigned | NOT NULL | - | auto_increment | |
| FK | object_id |
int | NOT NULL | - | information_object.id | |
| FK | digital_object_id |
int | NULL | - | digital_object.id if specific | |
page_number |
int | NOT NULL |
1
|
Page number (1-indexed) | ||
region_type |
varchar(36) | NOT NULL |
rectangle
|
rectangle, polygon, freehand | ||
coordinates |
json | NOT NULL | - | Normalized 0-1 coords: {x, y, width, height} | ||
normalized |
tinyint(1) | NOT NULL |
1
|
Whether coords are normalized 0-1 | ||
| FK | source |
varchar(43) | NOT NULL |
manual
|
manual, auto_ner, auto_pii, imported | |
| FK | linked_entity_id |
bigint unsigned | NULL | - | Links to ahg_ner_entity.id if from NER | |
label |
varchar(255) | NULL | - | Optional label for the region | ||
color |
varchar(7) | NOT NULL |
#000000
|
Redaction color (hex) | ||
| FK | status |
varchar(43) | NOT NULL |
pending
|
pending, approved, applied, rejected | |
created_by |
int | NULL | - | user.id who created | ||
reviewed_by |
int | NULL | - | user.id who reviewed | ||
reviewed_at |
datetime | NULL | - | |||
applied_at |
datetime | NULL | - | When redaction was applied to output | ||
created_at |
datetime | NOT NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED | ||
updated_at |
datetime | NOT NULL |
CURRENT_TIMESTAMP
|
DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
Notes
Log in to add notes.
Legend
PK Primary Key
FK Foreign Key / Index
UQ Unique Constraint
Table structures are read live from the database. Row counts reflect current data.