Backend service for clinical document de-identification and synthetic data generation.
The application provides secure document processing, PII detection and anonymization, compliance framework management, synthetic data generation, user authentication, subscription management, and analytics support.
- HIPAA (US)
- EU GDPR
- UK GDPR
- Swiss FADP
The platform leverages Microsoft Presidio for automated detection and anonymization of personally identifiable information (PII) within clinical documents.
- NestJS
- TypeScript
- TypeORM
- MySQL
- JWT Authentication
- Google OAuth
- Microsoft OAuth
- Magic Link Authentication
- Microsoft Presidio
- Docker
- AWS S3
- Heroku
- Swagger
http://localhost:3000/apihttps://green-anonymization-be-602a891d18c3.herokuapp.com/apinpm installRefer to .env.example
Download and install Docker:
https://www.docker.com/get-started/
Ensure Docker is running before proceeding.
npm run infrastructure:upnpm run migration:runnpm run startnpm run infrastructure:startMigrations are already in place, no need to run them again.
All data persists from previous sessions.
npm run startnpm run infrastructure:stopnpm run infrastructure:downEnsure all ports defined in your .env file are not in use by other processes before starting the infrastructure.
Check your .env file for configured ports:
- DB_PORT
- PRESIDIO_ANALYZER_PORT
- PRESIDIO_ANONYMIZER_PORT
If these ports are already occupied, update both .env and compose.yml.
npm run startnpm run start:devnpm run start:prodnpm run testnpm run test:e2enpm run test:cov- Authentication
- Users
- Documents
- PII Entities
- Compliance Frameworks
- Synthetic Data Generation
- Subscription Plans
- Contact Messages
- Analytics
- Heroku
- AWS S3
- MySQL
npm run buildnpm run start:prodAll endpoints are protected by rate limiting to prevent abuse.
- 100 requests per hour per IP address
- Limits are tracked per IP address
{
"statusCode": 429,
"message": "Too Many Requests"
}Some endpoints may have stricter limits.
