Hosting & infrastructure
OpSyn runs on Microsoft Azure with infrastructure-as-code, automated deployment, and isolated tenants. UK South is the default region; EU residency is available on request.
Hosting
Azure Container Apps in UK South, with horizontally-scalable instances behind a managed ingress.
- →Azure Container Apps
- →Bicep infrastructure-as-code
- →UK South default; EU on request
- →Per-tenant data isolation
Database
PostgreSQL on Azure Flexible Server with automated backups, point-in-time recovery, and encryption at rest.
- →Azure PostgreSQL Flexible Server
- →Encryption at rest (Azure-managed keys)
- →Daily backups, 7-day PITR
- →Read-only credentials for reporting
Network
TLS terminates at the managed ingress; internal traffic is private. Public endpoints are rate-limited.
- →TLS 1.2+ enforced
- →Custom domain with managed certs
- →Rate-limited login & API
- →Webhook signing on outbound events
Authentication & access control
Sign-in is session-based with TOTP 2FA. Authorisation is fine-grained: every permission resolves on action, access scope, and entity — not just role membership.
Authentication
HTTP-only session cookies, TOTP 2FA via authenticator apps, email verification on signup, and rate-limited login.
- →TOTP 2FA (RFC 6238)
- →Email verification
- →Password length 12+ with complexity
- →Login throttling & lockout
Authorisation (RBAC)
Two tiers — global and organisation — with feature flags per user per org. Permissions resolve as action × access × entity.
- →Global & organisation roles
- →Action × access × entity
- →Per-module feature flags
- →Viewer / contributor / admin presets
Sessions
Sessions are server-side and revocable. Customer admins can terminate any session from the user admin screen.
- →Server-side session store
- →Revoke from admin UI
- →Idle and absolute timeout
- →IP and device fingerprint logged
Audit, monitoring & response
Every write is logged. Every error is observed. Every incident is communicated to affected tenants on a defined timeline.
Audit logging
Each write is traced to a user, timestamp, IP, and previous-state diff. Immutable for the tenant retention period.
- →User & timestamp on every write
- →Previous-state diff captured
- →IP and session ID logged
- →Exportable per organisation
Application monitoring
Sentry for error monitoring; Azure Application Insights for performance, availability, and dependency health.
- →Sentry error monitoring
- →Azure Application Insights
- →Synthetic uptime checks
- →Alerting to on-call rotation
Incident response
On-call rotation, defined severity ladder, and 72-hour customer notification for confirmed personal-data incidents.
- →Defined SEV ladder
- →On-call rotation
- →Customer comms within 72h (Art. 33)
- →Post-incident review on every SEV-1
Vulnerability management & compliance
We patch quickly, review regularly, and welcome reports from the security community.
Dependency hygiene
Automated dependency scanning with same-day patching of critical advisories. Production builds reproducible from a pinned manifest.
- →Dependabot / Renovate
- →Same-day critical patching
- →Reproducible production builds
- →Image SBOMs available on request
Reviews & testing
Code review on every change, dedicated security review on changes touching auth or data export, and an annual third-party penetration test.
- →Mandatory code review
- →Auth-path security review
- →Annual external pen test
- →Static analysis in CI
Compliance posture
GDPR-compliant by design. SOC2-aligned controls in place; formal certification on the roadmap. ISO 27001 under evaluation.
- →GDPR-compliant (see /gdpr)
- →SOC2-aligned controls
- →Records of processing activities
- →DPA available on request
Reporting a vulnerability
We welcome responsible-disclosure reports from security researchers and customers alike. Email us with reproduction steps and we'll acknowledge within one business day, with a triage decision within five.
We do not run a paid bounty programme today, but we credit reporters in release notes where they are happy to be named.