Manage data subject access requests (DSARs) under GDPR, CCPA/CPRA, and other privacy regulations. Track requests from intake through identity verification, data collection, and response — with auto-calculated deadlines, custodian routing, and a full audit trail.
Coming soon — a hosted instance will be available at a public URL.
./start.sh # macOS/Linux
start.bat # WindowsThis installs dependencies, starts the API and frontend, loads sample data, and opens your browser. No setup required beyond Python 3.11+.
docker compose upThen open http://localhost:8501 in your browser.
- Fork this repository
- Create a new project on Railway
- Connect your fork — Railway will auto-detect
railway.json - Deploy
The app will be available at your Railway-provided URL.
- DSAR Intake — Submit new requests with requester info, request type, and applicable regulation
- Auto-Calculated Deadlines — GDPR (30 days), CCPA/CPRA (45 days), or custom deadlines for other jurisdictions
- Identity Verification Tracking — Track verification status with notes
- Custodian Routing — Assign data custodians to requests, track task completion
- Status Workflow — Enforced status transitions with auto-advancement (e.g., verification complete automatically advances the request)
- Deadline Extensions — Extend deadlines with logged justification (one extension per request)
- Audit Trail — Append-only log of every action taken on every request
- DSAR Register — Color-coded dashboard showing all requests with deadline urgency
With the API running, visit http://localhost:8000/docs for interactive Swagger documentation.
dwm_app/ # FastAPI backend
main.py # App entry point
config.py # Settings (pydantic-settings)
models.py # SQLAlchemy ORM models
schemas.py # Pydantic validation schemas
database.py # DB engine and session
seed.py # Sample data seeder
routers/ # API endpoints
services/ # Business logic (deadline, workflow, audit)
dwm_frontend/ # Streamlit frontend
app.py # Main page
api_client.py # HTTP client for the API
pages/ # Multi-page Streamlit app
tests/ # pytest test suite
data/sample/ # Synthetic sample data
pip install -e ".[dev]"
pytest- Backend: Python 3.11+, FastAPI, SQLAlchemy 2.0, Pydantic v2
- Frontend: Streamlit
- Database: SQLite (prototype), designed for PostgreSQL migration
- Deployment: Docker, Railway
MIT — see LICENSE for details.