What runs where

Everything runs in AWS, in a single region (us-east-1), inside a dedicated VPC. Application services run on ECS Fargate inside private VPC subnets with outbound egress only; the database is RDS PostgreSQL 16, also private. The application your experts work in runs as its own service against its own database — a separate database on the same instance, not a shared schema — so expert judgments are not co-mingled with platform records.

Your task specs and clips live only in S3. Public access is blocked on every bucket, and every read and write goes through a short-lived presigned URL rather than a public object URL: fifteen minutes to write, five minutes to read on the platform buckets, and a read-only fifteen-minute grant scoped to a single object for media shown to experts. Every public hostname is TLS with HTTP redirected to HTTPS, database connections are encrypted, and each service sits behind its own health-checked load balancer.

On production the two services on the judgment path each run two tasks across availability zones, so one task can drain or redeploy without downtime, and the database is Multi-AZ with automatic failover.

Data handling

Four kinds of records, and who can see each one.

  • Task specs and clip references

    Held in the S3 uploads bucket and the platform database. Visible to our operators, to the experts assigned to your project, and to you — your own project only.

  • Expert judgments and QA responses

    Held in the review service's database only. You see them through the validation report and the evidence pack.

  • Expert identity and payment detail

    Held in the platform database, with bank details in a separately encrypted vault under its own key. Never visible to you: experts and partners present under a Deepen-controlled display identity, not their own name.

  • Partner organisation identity

    Never reaches you. Partner names are stripped from every lab-facing free-text field by a redaction function in code — by construction, not by policy.

Retention and deletion, stated honestly. Deleting a record removes the database row. The underlying S3 object is not actively purged today — a known gap we are tracking — and the relevant buckets are versioned, so a deleted object can persist as a prior version until an explicit purge is run. We would rather tell you that than write a deletion guarantee the platform cannot yet keep. Per-engagement retention and deletion commitments are set in the DPA. Audit-log anchors are the deliberate exception: they sit under S3 Object Lock in governance mode with a one-year retention and cannot be deleted early, including by us.

Controls

In place today, being hardened, and not built yet.

In place today — production configuration reviewed 2026-08-28

  • Network isolation

    Application tasks and the database run in private subnets in one VPC, with outbound egress only.

  • Encryption in transit and at rest

    TLS on every public hostname with HTTP redirected to HTTPS, encrypted database connections, encrypted database storage and server-side encryption on every S3 bucket.

  • No public objects

    Block-public-access on every bucket; access only through short-lived presigned URLs.

  • Secrets management

    Database credentials, session secrets, the OAuth client secret and the API-key pepper are generated straight into AWS Secrets Manager — never into code, CI or logs.

  • Dedicated keys for the sensitive paths

    Separate KMS keys for the bank-detail vault and for evidence-pack signing, each grantable to exactly one service role.

  • Least-privilege database roles

    Each service connects as a read/write runtime role with no schema rights. The owning credential is confined to one-off migration tasks and is never held by a running service.

  • Immutable audit and evidence tables

    Update and delete are revoked at the database-role level and again by trigger on the audit log, the evidence packs and their equivalents.

  • Identity redaction

    Partner organisation names and expert identities are stripped from lab-facing fields in code; experts and partners appear under a Deepen-controlled identity.

  • Session security

    httpOnly, secure, SameSite cookies; session-ID regeneration on login as a fixation defence; 30-day rolling and 90-day absolute expiry; full session invalidation on password reset.

  • Host isolation

    The operator console and the lab-facing application are separate hostnames. An operator session is invisible on the public host and the reverse, and unmatched routes return 404 rather than 403.

  • Resilient database

    Multi-AZ with automatic failover, 14-day automated backups, point-in-time recovery, deletion protection and encryption under a customer-managed key.

  • Detective controls

    CloudTrail across regions with log-file validation, GuardDuty threat detection, load-balancer access logs, and 14 CloudWatch alarms wired to a confirmed notification address.

  • Application logging

    Per-service CloudWatch log groups, with three-month retention on production.

  • Email integrity

    Outbound mail through AWS SES with signature-verified bounce and complaint suppression that fails closed.

Being hardened now

  • Database TLS certificate verification

    Connections to the database are encrypted today, but the server certificate is not yet validated. Moving to full verification against the RDS certificate bundle is the next infrastructure item.

  • WAF on the public load balancers

    Planned, not yet deployed. Traffic reaches the application without a web application firewall in front of it.

  • Cross-region snapshot copy

    Not in place. Snapshots are encrypted and stay in one account and one region, so a regional loss would not be recoverable from backups.

  • Automated routing of threat-detection findings

    Threat detection is enabled and publishing findings, but those findings are reviewed in the console rather than pushed to the alerting address. Wiring them to the alarm topic is queued.

Not built yet — no committed date

  • Enterprise SSO and SAML or OIDC federation

    Decided in principle, not built. There are no SSO code paths in the product today.

  • Multi-factor authentication

    Not built. Sign-in today is email and password, or Google. We say the same thing to users inside the product rather than only here.

  • SCIM user lifecycle

    Not built; it depends on SSO landing first.

  • A penetration test of DeepenSkill specifically

    None has been performed on this platform. One is scheduled as part of the compliance scope extension below. Deepen AI's broader environment is covered by its existing SOC 2 program.

  • A formal periodic access review

    Access is role-scoped in code today — operator, lab, partner and expert — with least-privilege database roles per service. The formal review cadence is part of the same scope extension, not a separate new control.

We send the full control list before a pilot, gaps included. This page is the summary. The overview we send names each control, cites the infrastructure that implements it, and separates what is live from what is planned — which is why the two sections above exist at all.

Certifications

Read this one carefully, because the honest answer has two halves and vendors usually publish only the first.

Deepen AI, the parent company, holds

SOC 2 Type II · ISO 27001 · TISAX · a GDPR-aligned data-protection posture — company-wide, covering people, physical security and corporate IT controls.

Verifiable at security.deepen.ai

DeepenSkill itself

Is being added to that existing program, not certified separately. There is no DeepenSkill-specific SOC 2 or TISAX report today, and we will not represent DeepenSkill as independently certified until the scope extension is complete.

Ask us for the current state of that work — skill@deepen.ai

Sub-processors

Five entries, and one of them is a category.

  • AWS — us-east-1

    Infrastructure hosting: compute, storage and database. Scope: all platform data.

  • Google

    OAuth sign-in only. Scope: authentication credentials and tokens — not data processing, and not your task material.

  • AWS SES

    Transactional and notification email. Scope: email content and recipient addresses.

  • Stripe

    Invoicing and payment processing. Scope: billing and payment data only; it is not wired to lab task material.

  • Vetted expert-sourcing partners, as a category

    Sourcing and management of expert contributors. Scope: expert records only — never your task material, unless a tier-1 arrangement is separately agreed in writing. Named entities go to your DPO on request under NDA, which is why they are a category here and not a list.

Changes to this list are governed by the DPA: 30 days' notice, with an objection right.

Backup, restore and service posture

The production database takes automated daily snapshots with 14-day retention, and supports point-in-time recovery across the same window with transaction logs shipped every five minutes. Snapshots are encrypted with the instance's key.

Restore drills run 2026-08-28. Restoring the newest automated snapshot produced an available instance in roughly 6 minutes; a point-in-time restore produced an available, schema-intact instance in roughly 27 minutes. Each drill restored into a throwaway instance in the same subnet group and security group, proved the restored schema from inside the VPC, and deleted the throwaway afterwards. The live database was never touched. A real recovery adds repointing the services, about fifteen minutes.

Object data has its own protections: the uploads and media buckets are versioned and TLS-only, the audit anchors sit under Object Lock (not deletable early, even by us), and versioning keeps prior versions of evidence artefacts until an explicit purge.

Rebuilding the whole environment from the repository is scripted, but it has not yet been timed end to end, so we do not quote a figure for it.

These are measurements, not commitments. For the pilot, DeepenSkill is operated on a best-effort basis. This page describes the architecture and publishes what has actually been measured; it does not commit to numeric availability, recovery or response-time targets. Scheduled maintenance is announced at least 24 hours ahead. Incidents are worked by the DeepenSkill team during US Pacific business hours, best effort. The one timing commitment that is contractual is security-incident notification, below.

An audit trail you can check yourself

Every operator, lab, partner and expert action lands in an append-only, hash-chained audit log. The chains are anchored hourly into an S3 bucket under Object Lock in governance mode with a one-year retention — anchors cannot be deleted early, including by us — and update and delete are revoked on those tables at the database-role level and again by trigger. Both production chains verified with no seam on 2026-08-28.

Released evidence packs are signed with ES256 using a dedicated key and carry a readable manifest. Verification is something you run, not something you take from us: the verification scripts recompute the pack hash and check the signature against the published public key on your own machine, with no dependency on our dashboard. At the account level, CloudTrail records API activity across regions with log-file validation on.

See how the evidence pack is produced →

Incident response

Security incidents and suspected breaches go to skill@deepen.ai, which is also the address our production alarms notify.

Our DPA commits us to notifying you without undue delay and in any event within 48 hours of becoming aware of a confirmed personal-data breach affecting your data — deliberately tighter than the 72-hour outer bound in GDPR Article 33, so your own regulatory clock keeps some room. The notification describes, so far as it is then known, the nature of the breach, the categories and approximate number of data subjects and records affected, the likely consequences, and the measures taken or proposed.

FAQ

  • Is DeepenSkill SOC 2 certified?

    Not on its own. Deepen AI, the parent company, holds SOC 2 Type II, ISO 27001 and TISAX company-wide, with a GDPR-aligned data-protection posture. DeepenSkill is being added to that existing program rather than certified separately. There is no DeepenSkill-specific SOC 2 or TISAX report today, and we will not represent one until that scope extension is complete.

  • Do you support SSO, MFA and SCIM?

    Not yet. Sign-in today is email and password, or Google. Enterprise SSO and SAML or OIDC federation, multi-factor authentication and SCIM user lifecycle are decided in principle and not built, with no committed date. We state the same thing to users inside the product.

  • Where does our task material live, and who can see it?

    In AWS, in a single region (us-east-1), inside a dedicated VPC. Task specs and clips live only in S3, with public access blocked on every bucket and every read and write through a short-lived presigned URL rather than a public object URL. Application services and the databases run in private subnets. Your material is seen by our operators, the experts assigned to your project, and you.

  • Do your sourcing partners see our task material?

    No, unless you separately agree in writing to an arrangement where they do. Sourcing partners handle expert records — identity, credentials and payment detail — not your task material. In the other direction, partner organisation names and expert identities are stripped from every lab-facing field by a redaction function in code.

  • What availability and recovery targets do you commit to?

    For the pilot, none numerically. DeepenSkill is operated on a best-effort basis: we describe the architecture and publish what we have actually measured rather than committing to availability, recovery or response-time numbers. The one contractual timing commitment is security-incident notification within 48 hours.

  • Can we get your DPA and a completed security questionnaire?

    Yes. Email skill@deepen.ai and we will send the DPA and the full security overview. That overview names every control, cites the infrastructure that implements it, and states plainly what is live, what is being hardened and what does not exist yet.

Request the DPA or a security questionnaire

Send us the questionnaire you use and we will answer it against this same list — including the rows where the answer is "not yet". If you would rather start from ours, ask for the security overview and the DPA and we will send both.