651b48658c
Merge origin/main into feature branch, resolving 3 conflicts: - app/api/__init__.py: add classification_rules_router alongside new routers from main (audit_logs, i18n, mobile, compliance, translation) - app/models.py: keep ClassificationRuleModel alongside new models from main (MobileDevice, ComplianceTemplate, PipelineRoutingRule) - tests/conftest.py: import both ClassificationRuleModel and new models from main (AuditLog, ComplianceTemplate) Also renumber migration from 027 to 037 to chain from the latest migration on main (036_add_document_translation_fields). Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
191 lines
6.0 KiB
Markdown
191 lines
6.0 KiB
Markdown
# Compliance Templates Guide
|
|
|
|
DocuElevate includes pre-built compliance templates for **GDPR**, **HIPAA**, and **SOC 2** that help you configure your instance to meet regulatory requirements. This guide covers how to use the compliance dashboard, apply templates, and monitor your compliance status.
|
|
|
|
## Overview
|
|
|
|
The compliance templates feature provides:
|
|
|
|
- **Pre-built configurations** for GDPR, HIPAA, and SOC 2
|
|
- **One-click apply** to configure all required settings at once
|
|
- **Compliance status dashboard** to monitor your regulatory posture
|
|
- **Individual check results** showing which settings are compliant and which need attention
|
|
|
|
## Accessing the Dashboard
|
|
|
|
The compliance dashboard is available to **admin users only**.
|
|
|
|
1. Log in as an administrator
|
|
2. Click **Admin** in the navigation bar
|
|
3. Select **Compliance** from the dropdown menu
|
|
|
|
Or navigate directly to: `/admin/compliance`
|
|
|
|
## Available Templates
|
|
|
|
### GDPR (General Data Protection Regulation)
|
|
|
|
The European Union regulation for data protection and privacy. The GDPR template enforces:
|
|
|
|
| Setting | Value | Purpose |
|
|
|---------|-------|---------|
|
|
| `AUTH_ENABLED` | `True` | Controls access to personal data |
|
|
| `SENTRY_SEND_DEFAULT_PII` | `False` | Prevents PII leaking to external services |
|
|
| `SECURITY_HEADERS_ENABLED` | `True` | Protects against common web vulnerabilities |
|
|
| `SECURITY_HEADER_HSTS_ENABLED` | `True` | Ensures encrypted connections |
|
|
| `SECURITY_HEADER_CSP_ENABLED` | `True` | Prevents XSS and injection attacks |
|
|
| `SECURITY_HEADER_X_FRAME_OPTIONS_ENABLED` | `True` | Prevents clickjacking |
|
|
| `ENABLE_DEDUPLICATION` | `True` | Data minimisation — avoids duplicate storage |
|
|
|
|
### HIPAA (Health Insurance Portability and Accountability Act)
|
|
|
|
United States regulation for protecting health information. The HIPAA template includes all GDPR settings plus:
|
|
|
|
| Setting | Value | Purpose |
|
|
|---------|-------|---------|
|
|
| `MULTI_USER_ENABLED` | `True` | Individual accounts for access accountability |
|
|
|
|
### SOC 2 (Service Organization Control 2)
|
|
|
|
Trust Service Criteria framework for service organisations. The SOC 2 template includes the same settings as HIPAA, mapped to SOC 2 Trust Service Criteria (CC6.x, PI1.x).
|
|
|
|
## Applying a Template
|
|
|
|
1. Navigate to the **Compliance** dashboard (`/admin/compliance`)
|
|
2. Find the template you want to apply (GDPR, HIPAA, or SOC 2)
|
|
3. Click **Apply Template**
|
|
4. Confirm the action in the dialog
|
|
5. The template settings are written to the database immediately
|
|
|
|
> **Note:** Applying a template writes configuration values to the database. Some settings (e.g., security headers) may require a restart to take effect. Check the Settings page for restart indicators.
|
|
|
|
## Understanding Compliance Status
|
|
|
|
Each template shows one of four statuses:
|
|
|
|
| Status | Badge | Meaning |
|
|
|--------|-------|---------|
|
|
| **Compliant** | Green | All checks are passing |
|
|
| **Partial** | Yellow | Some checks are passing, others are not |
|
|
| **Non-Compliant** | Red | No checks are passing |
|
|
| **Not Applied** | Grey | Template has never been applied |
|
|
|
|
### Individual Checks
|
|
|
|
Click **Show Details** on any template card to see individual check results:
|
|
|
|
- ✅ **Passing** — The setting matches the expected compliance value
|
|
- ❌ **Failing** — The setting does not match; the current and expected values are shown
|
|
|
|
## API Endpoints
|
|
|
|
The compliance feature exposes the following API endpoints under `/api/compliance/`:
|
|
|
|
### List Templates
|
|
|
|
```bash
|
|
GET /api/compliance/templates
|
|
```
|
|
|
|
Returns all compliance templates with their current status.
|
|
|
|
### Get Single Template
|
|
|
|
```bash
|
|
GET /api/compliance/templates/{name}
|
|
```
|
|
|
|
Returns a single template by name (`gdpr`, `hipaa`, or `soc2`).
|
|
|
|
### Apply Template
|
|
|
|
```bash
|
|
POST /api/compliance/templates/{name}/apply
|
|
```
|
|
|
|
Applies a compliance template, writing all its settings to the database.
|
|
|
|
### Get Template Status
|
|
|
|
```bash
|
|
GET /api/compliance/templates/{name}/status
|
|
```
|
|
|
|
Evaluates the live compliance status of a template against current settings.
|
|
|
|
**Response example:**
|
|
|
|
```json
|
|
{
|
|
"status": "partial",
|
|
"total": 7,
|
|
"passed": 5,
|
|
"failed": 2,
|
|
"check_results": [
|
|
{
|
|
"key": "auth_enabled",
|
|
"label": "Authentication enabled",
|
|
"description": "User authentication must be enabled to control access to personal data.",
|
|
"expected": "True",
|
|
"actual": "True",
|
|
"passing": true
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Compliance Summary
|
|
|
|
```bash
|
|
GET /api/compliance/summary
|
|
```
|
|
|
|
Returns an overall compliance summary across all templates.
|
|
|
|
**Response example:**
|
|
|
|
```json
|
|
{
|
|
"overall_status": "partial",
|
|
"total_checks": 22,
|
|
"total_passed": 18,
|
|
"total_failed": 4,
|
|
"templates": [
|
|
{
|
|
"name": "gdpr",
|
|
"display_name": "GDPR (General Data Protection Regulation)",
|
|
"enabled": true,
|
|
"status": "compliant",
|
|
"total": 7,
|
|
"passed": 7,
|
|
"failed": 0,
|
|
"applied_at": "2026-03-09T12:00:00+00:00",
|
|
"applied_by": "admin@example.com"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
> **Note:** All API endpoints require admin authentication.
|
|
|
|
## Configuration
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `COMPLIANCE_ENABLED` | `True` | Enable the compliance templates dashboard. Set to `False` to hide the feature. |
|
|
|
|
## Best Practices
|
|
|
|
1. **Apply templates before going live** — Set up compliance before processing real documents
|
|
2. **Monitor status regularly** — Check the compliance dashboard after configuration changes
|
|
3. **Use the refresh button** — After changing settings elsewhere, refresh the compliance page to see updated status
|
|
4. **Combine templates** — You can apply multiple templates; settings overlap is handled automatically
|
|
5. **Review after updates** — After upgrading DocuElevate, review your compliance status as new checks may be added
|
|
|
|
## Related Documentation
|
|
|
|
- [Configuration Guide](./ConfigurationGuide.md) — Full list of configuration options
|
|
- [Privacy & Compliance Guide](./PrivacyCompliance.md) — Privacy notice and GDPR compliance details
|
|
- [Deployment Guide](./DeploymentGuide.md) — Production deployment with security best practices
|
|
- [Security Audit](../SECURITY_AUDIT.md) — Security findings and mitigations
|