Security & compliance readiness
Built-in controls mapped to SOC 2 and ISO 27001, what the operator still has to do, and the path to a report.
What Diffbridge already does towards SOC 2 and ISO 27001, what the company running it still has to do, and a path to a first report. A certification is about how the organisation operates over time, so no code can earn one on its own. This page is for whoever runs the hosted service: the operator.
Policy templates to adapt live in the repository's docs/compliance/ folder: information security,
access control, change management, incident response, vendor management, and data retention. Backup and recovery are covered in Operations.
Controls built into the product
SOC 2 Trust Services Criteria (Security, plus Availability and Confidentiality), with the ISO 27001:2022 Annex A control each one serves.
| Criterion | What Diffbridge does | Evidence to collect | ISO 27001 |
|---|---|---|---|
| CC6.1 Logical access | Roles (owner, admin, deployer, viewer), per-org access and deploy roles, API tokens limited by role and expiry | Settings → Team; tokens list | A.5.15, A.5.18, A.8.2 |
| CC6.1 Authentication | Passwords hashed with bcrypt; Google, GitHub and SAML single sign-on, SSO enforcement per workspace | Settings → Single sign-on | A.5.17, A.8.5 |
| CC6.2/6.3 Provisioning | SCIM 2.0: joiners, movers and leavers driven by the identity provider; leavers' tokens revoked | Audit log entries "SCIM provisioning" | A.5.16, A.5.18 |
| CC6.6 Network | Workspace IP allowlist (IPv4/IPv6 CIDR); HTTPS only (Caddy, Let's Encrypt); only 80/443 open; outbound requests to customer URLs can't reach private networks or cloud metadata | Settings → Security; Terraform security list | A.8.20, A.8.21, A.8.23 |
| CC6.8 Web security | Content-Security-Policy without inline scripts, X-Frame-Options, nosniff, HSTS; revocable sessions; SSO domains proven by DNS; SAML replay protection | Response headers; security regression tests | A.8.26, A.8.28 |
| CC6.1 Sessions | HttpOnly, SameSite cookies, secure in production; maximum session length and idle timeout | Settings → Security | A.8.5 |
| CC6.1/C1.1 Encryption | Secrets (Salesforce and git credentials, webhook URLs, integration keys) encrypted with AES-256-GCM under per-workspace keys wrapped by a master key; key rotation; deleting a workspace destroys its key | Settings → Security → Encryption | A.8.24 |
| CC7.2 Monitoring | Audit log of every change, deployment and support session; deep health endpoint; uptime workflow; error tracking with admin emails; Prometheus metrics | Audit log export; Admin panel → Errors | A.8.15, A.8.16 |
| CC7.3–7.5 Incidents | Downtime issues opened automatically; incident response policy template | downtime issues, incident records |
A.5.24–A.5.28 |
| CC8.1 Change management | Every change through pull requests and CI (dependency audit, typecheck, unit and API tests, browser tests with accessibility checks, build) before the image is published; images tagged by commit | GitHub PRs and Actions runs | A.8.32, A.8.25, A.8.29 |
| A1.2 Backups | Nightly off-box database backups with checksums, 35-day retention, weekly automated restore test, blob versioning | Backup logs, healthchecks pings | A.8.13 |
| A1.3 Recovery | Documented restore and full-recovery procedure, quarterly drill | Drill records | A.5.30 |
| C1.1 Customer data access | Who can view or restore record data is a workspace setting; support access needs the customer to grant it, and is time-limited and audited | Settings → Data → Privacy; audit log | A.5.12, A.8.3 |
| C1.2 Disposal | Right-to-erasure across backups and archives with a hash-only log; retention purges; workspace deletion | Erasure log | A.8.10 |
| P (privacy) | Data masking for sandbox seeding; AI assistance is off unless a workspace turns it on | Workspace settings | A.5.34 |
What the operator still has to do
These are organisational controls: written down, done, and recorded with evidence.
- Scope and ownership. Name a security owner. Write down the scope: the hosted Diffbridge service, its cloud account, the GitHub organisation, and the people with access.
- Policies. Adapt the templates in
docs/compliance/, have management approve them, and have staff acknowledge them every year. - Risk assessment. A yearly risk register (threats, likelihood, impact, treatment), reviewed when something big changes.
- People. Background checks where lawful, security awareness training at hire and yearly, and a documented onboarding and offboarding checklist.
- Access reviews. Quarterly review of who can reach production (cloud console, SSH, GitHub admins, platform admins), recorded with the reviewer's sign-off.
- Endpoint security. Company laptops encrypted, screen lock, OS updates, and malware protection, tracked by an MDM tool.
- Production hardening. MFA on the cloud console, GitHub and the domain registrar; SSH by key
only, restricted by IP; unattended security upgrades; branch protection with required reviews
on
main. - Vulnerability management. Dependabot and the
npm auditgate in CI are in place. Add image scanning, and a yearly third-party penetration test with tracked remediation. An internal code review (November 2026) reported 18 findings; 17 are fixed with regression tests inapps/server/src/security-fixes.test.tsand the other was already handled. An external test is still needed. - Vendors. Keep the vendor register (template) and collect each provider's SOC 2 report or equivalent yearly.
- Incidents and continuity. Run a tabletop exercise yearly, and the recovery drill quarterly (Operations).
- Customer commitments. Diffbridge serves a security page, a sub-processor list, terms and a
privacy policy (/security, /subprocessors, /terms, /privacy) and
security.txt(setSECURITY_CONTACT). They name MOKAHUB LLC (Florida) as the operator. A company still needs a data processing agreement and a lawyer's review. Then setLEGAL_EFFECTIVE_DATEandLEGAL_HOSTING_REGIONin.env.
Path to a report
- Readiness (1–2 months). Do the list above. A compliance platform (Vanta, Drata, Secureframe, Sprinto) speeds this up: it connects to the cloud account, GitHub and HR tools, tracks policies and collects evidence automatically.
- SOC 2 Type I. An auditor (a licensed CPA firm) checks the controls are designed properly at one point in time. Usually the first report enterprise buyers accept.
- SOC 2 Type II. The same controls checked as they operate over 3–12 months. Most enterprise procurement asks for this one, renewed yearly.
- ISO 27001 if customers in Europe or Asia ask for it: an ISMS (the policies, risk process and reviews above), a Statement of Applicability, internal audit, management review, then a two-stage certification audit by an accredited body. The SOC 2 work covers most of it.
Self-hosting customers run Diffbridge in their own cloud, so it falls under their controls. Give them this page, the security manual, and the operations guide for their own audits.