Skip to main content

Shared Responsibility Matrix

This document divides operational and security responsibilities between FactoryThread and the Customer across our three deployment modes:

ModeHostingTenancy
SaaSFactoryThread, on Microsoft Azure (multi-tenant)Multi-tenant; isolated by tenantId (Auth0 org_id) at the row level in PostgreSQL
Single-tenant managedFactoryThread, on Microsoft Azure (single-tenant infra)Single tenant; customer-pinned region
On-premCustomer's network (Docker Compose)Single tenant set at deployment time

Throughout this document, "FactoryThread" refers to the platform vendor and "Customer" refers to the organization deploying or subscribing to FactoryThread.

A foundational point: FactoryThread is a data virtualization platform — not a system of record for customer business data. The application database holds only operational metadata (connection definitions, flow definitions, tenancy / identity metadata, execution insights). Two limited exceptions are documented in the Security Overview: a bounded sample of failing records may be captured on execution errors for debugging, and workers may use ephemeral in-memory or temporary local-disk staging during a single run. This shapes the responsibility split below — many "data at rest" responsibilities that would normally fall on a SaaS vendor do not apply.

Matrix

Legend: FT = FactoryThread is responsible · C = Customer is responsible · Shared = both parties contribute · n/a = not applicable in this deployment mode

TopicSaaSSingle-tenant managedOn-prem
Identity provider — operation and availabilityFT (Auth0)FT (Auth0)C (customer SSO behind reverse proxy)
Identity provider — configuration (allowed domains, MFA policy, password policy)FT (Auth0 organization settings)FTFT
MFA enforcementC (configured in Auth0)CC (customer SSO)
SAML federation / SCIM provisioningShared (FT enables Auth0; C configures IdP)SharedC
User lifecycle (provision / deprovision)C (via Auth0 / IdP)CC
Workspace assignment and RBACC (workspace owners assign access)CC
API key issuance and rotationC (FT provides the UI; SHA-256-hashed at storage)CC
API key secrets — handling on the customer sideC (treat as production credentials)CC
Connection credential lifecycle (OAuth2 client credentials / Bearer token / Basic / session cookies)C (rotate per Customer's policy)CC
Connection credential storageFT (PostgreSQL, JSONB; AES-256-GCM application-layer encryption shipping Q2 2026)FT (same)C operates the database; FT provides the schema and application code
TLS termination on platform endpointsFT (Azure Front Door / App Gateway, TLS 1.2+)FTC (customer reverse proxy)
Strict TLS verification on outbound REST callsFT — outbound HTTPS calls do not strictly verify TLS certificates today, in order to support customer endpoints with self-signed or private-CA certificates; strict-by-default with per-connection opt-in shipping Q2 2026FT (same)FT (same)
Customer endpoint TLS configuration (e.g., TLS cert, ciphers on the customer-side endpoint)CCC
Network egress allow-listing for FactoryThread workersShared (FT publishes outbound CIDRs; C allow-lists)Sharedn/a — workers run inside customer network
Network segmentation between FactoryThread and customer systemsC (firewall / VNet on Customer side)CC
Production host hardening (OS, container runtime, kernel)FT (Azure-managed)FTC
Backup of the FactoryThread application database (Postgres)FT (Azure-managed Postgres backups)FTC
Backup of customer source-of-truth systems (ERPs, MES, databases, files)CCC
Disaster recovery — FactoryThread computeFT (container redeploy from immutable image)FTC (customer's DR plan)
Disaster recovery — RPO / RTO targets for the application databaseFT (Azure-managed Postgres point-in-time recovery)FTC
Patching of base container imagesFT (rebuilt and redeployed on every merge to main)FTC — FT publishes image versions; customer pulls and redeploys per their cadence
Patching of Postgres / RabbitMQFT (managed services)FTC
Application-layer vulnerability management (Dependabot, pnpm audit, advisories)FTFTFT publishes patches; C deploys
Infrastructure as code (Bicep, GitHub Actions)FTFTFT provides reference; C operates customer-side IaC
Logging — application and worker logsFT (Pino → Grafana Alloy → Loki/Prometheus)FTC operates the log stack; FT provides Pino output
Logging — flow execution insights surfaced in-productFT (built-in flow_execution_insights table; retention configurable via insightsRetentionDays)FTFT (operates inside C's environment)
Audit trail — comprehensive who-did-what-whenRoadmap Q3 2026; today FT records publish events, API key lifecycle, and execution insightsRoadmap Q3 2026Roadmap Q3 2026
Incident detection and response — platformFT (paging on alerts from Loki / Prometheus)FTC
Incident detection and response — customer systemsCCC
Customer notification of platform-side security incidentsFT (per support agreement)FTn/a
Data residencyFT (default region)FT (customer-pinned region)C (data stays inside customer network)
Data subject rights handling (GDPR, CCPA)Shared (C is Controller; FT is Processor)SharedC is both Controller and operator
Stripe billing data (PCI scope)FT (Stripe-hosted; only Stripe IDs and timestamps persisted on FT side; no card data)FTn/a (license-managed)
License compliance (on-prem)n/an/aC
Customer training on secure configuration of flows and connectionsC (FT provides documentation; C ensures internal users follow it)CC

Things that are always the customer's responsibility

A short consolidated list, regardless of deployment mode:

  1. Configure MFA and SSO policies in your IdP. FactoryThread enforces what your IdP returns; the strength of authentication is set by your IdP.
  2. Rotate connection credentials per your own policy. FactoryThread does not auto-rotate ERP, MES, or database credentials; rotation happens on the customer side and the new value is updated in the FactoryThread connection metadata.
  3. Allow-list FactoryThread egress IPs at your perimeter (SaaS / single-tenant managed). FactoryThread publishes the outbound CIDR list on request; the customer firewalls / VNet / load-balancer rules are your job.
  4. Treat API keys as production credentials. FactoryThread shows the plaintext key once at creation and only stores the SHA-256 hash thereafter. If a key is exposed, revoke and reissue.
  5. Choose the right deployment mode for your regulatory posture. GxP and 21 CFR Part 11 workloads belong on the on-prem release.

Things that are always FactoryThread's responsibility

  1. Operating the platform. Container builds, deploys, autoscaling, observability, on-call.
  2. Securing how connection credentials are stored within the application database — including the application-layer encryption shipping in Q2 2026.
  3. Keeping the application code current. Dependency hygiene, base-image patching, type-checking and linting on every PR.
  4. Honest disclosure of known security gaps with target quarters. The four open gaps (connection-metadata encryption, strict TLS, comprehensive activity log, flow version history) are listed in the Security Overview with Q2 / Q3 2026 targets.
  5. Customer notification of platform-side security incidents affecting your tenant, per the support agreement.

Contact

For this matrix tailored to your specific deployment, or to confirm any item above, contact support@factorythread.com.