Privacy & Compliance
Unseenr is designed for GDPR/DSGVO compliance from the ground up. All infrastructure is hosted in the EU.
Infrastructure Location
All Unseenr infrastructure runs on Hetzner Cloud in the European Union:
| Component | Region |
|---|---|
| Application servers | Falkenstein, Germany (FSN1) |
| PostgreSQL database | Nuremberg, Germany (NBG1) |
| Redis cache | Nuremberg, Germany (NBG1) |
| S3 storage (replays) | Nuremberg, Germany |
| Uptime worker (EU) | Helsinki, Finland (HEL1) |
| Uptime worker (US, planned) | Ashburn, Virginia (ASH) - not yet active |
A US worker (ASH) is planned but not yet active; all uptime checks currently run from EU regions. Once active, it would only perform outbound HTTP checks, store no customer data, and have no direct database access.
GDPR/DSGVO Compliance
Legal Basis
Customer data (error events, logs, session replays) is processed under Art. 6 Abs. 1 lit. b DSGVO (contract fulfillment).
Data Minimization
- Only data necessary for error tracking is stored
- PII scrubbing: Email addresses are automatically removed from session replay metadata
- Sensitive inputs in session replays are masked by default
- No personal data is stored unless explicitly sent by the SDK
Data Subject Rights
- Right to Access: Organization owners can view all stored data in the dashboard
- Right to Erasure: Data is automatically deleted after the plan's retention period
- Right to Data Portability: Data export is available via the dashboard
- Right to Restriction: Projects and organizations can be deactivated
Data Processing Agreement (DPA)
A Data Processing Agreement is available at unseenr.io/dpa.
Encryption
In Transit
- All traffic is encrypted with TLS 1.2+
- HSTS is enabled with a 2-year max-age and preload
At Rest
- PostgreSQL data is encrypted on Hetzner volumes
- S3 objects (session replays) are encrypted at rest
- Sensitive monitor fields (database connection strings, auth tokens) are encrypted with AES-256-GCM
Audit Logging
Unseenr maintains audit logs with 24+ event types covering:
- Organization lifecycle (created, deleted, settings changed)
- Project management (created, deleted, settings changed)
- User actions (created, deleted, password changed)
- Member management (added, removed, role changed)
- Authentication (login success, login failed, logout)
- API keys (generated, revoked)
- Content changes (issues, comments)
- Data operations (exported)
Audit logs are retained for 365 days and include IP address and user agent.
Security Measures
Input Validation
All user inputs are validated and sanitized using Zod schemas. No direct string interpolation in database queries (Prisma parameterized queries only).
SSRF Protection
Monitor URLs are validated against an allowlist. Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, localhost, etc.) are blocked by default.
Domain Abuse Prevention
- Global domain cap: max 10 monitors per target hostname (system-wide)
- Reserved slugs for status pages to prevent brand impersonation
- Abuse reporting:
[email protected]
Inbound Filters
Events can be filtered before processing to reduce noise and prevent abuse:
- Browser extension errors
- Localhost events
- Web crawler events
- Origin allowlisting with wildcard support
Responsible Disclosure
Security issues can be reported to [email protected]. We aim to respond within 48 hours.