SOC 2 is built on five Trust Service Criteria (TSC): Security, Availability, Processing Integrity, Confidentiality, and Privacy. The most commonly audited β and the most complex to evidence β is the Security category, specifically the CC6 (Logical and Physical Access) series. FlowSquad's security architecture was designed with these criteria in mind, because the platform itself handles sensitive artifacts: LLM API keys, codebase data, design documents, and user management.
The table below maps the key SOC 2 criteria to the specific FlowSquad features that provide evidence. This mapping is the starting point for preparing your SOC 2 readiness documentation.
| SOC 2 Control | Criterion | FlowSquad Feature | Evidence Type |
|---|---|---|---|
| CC6.1 | Logical access security measures | Field-level encryption (Fernet/AES-128) | Encrypted secrets in DB, key rotation logs |
| CC6.2 | Prior to issuing credentials | 10-step setup wizard + admin approval workflow | User provisioning audit trail |
| CC6.3 | Registered users / authorization | RBAC (global admin, product admin, analyst, reviewer, viewer) | Role assignment logs, permission policy export |
| CC6.6 | Logical access β system boundaries | SAML 2.0 with Keycloak, MFA enforcement | SSO configuration, MFA enrollment rate report |
| CC6.7 | Transmission of data | TLS 1.3 on all endpoints, HTTPS enforced | TLS certificate logs, Ingress config |
| CC6.8 | Unauthorized access prevention | OWASP Top 10 / Semgrep scanning | Vulnerability scan reports, remediation tickets |
| CC7.2 | Monitoring of system components | Audit logs, health probes, LLM cost tracker anomaly alerts | Audit log exports, monitoring dashboards |
| CC7.3 | Evaluation of security events | Audit log + alert rules on suspicious patterns | Alert history, incident response records |
| A1.1 | Availability β capacity planning | Kubernetes HPA, PostgreSQL connection pooling | HPA configuration, uptime metrics |
The SOC 2 CC6 criteria require that you demonstrate who accessed what, when, and what they did. FlowSquad's audit logs capture every user action at the application layer with five mandatory fields: timestamp (UTC, millisecond precision), user ID, action type, resource affected, and IP address. Logs are written to an append-only table in PostgreSQL and cannot be modified by any user role β not even global admin.
The most commonly requested audit log export during a SOC 2 Type II audit covers a 90-day lookback window. FlowSquad's admin panel exports this as CSV or JSON with one click, filtering by user, action type, date range, or resource. The export is timestamped and cryptographically signed, giving auditors confidence the log has not been tampered with since export.
# Sample audit log entry (JSON format) { "event_id": "evt_01HZ9M2X...", "timestamp": "2026-03-15T09:14:22.847Z", "user_id": "usr_jane_doe", "user_email": "jane@example.com", "role": "analyst", "action": "story.generate", "resource_type": "epic", "resource_id": "epic_0042", "ip_address": "192.168.1.44", "session_id": "sess_XwQ...", "outcome": "success", "llm_provider": "openai", "tokens_used": 1842 }
SOC 2 CC6.3 requires that system access is granted based on job function and revoked promptly when no longer needed. FlowSquad's RBAC implements 5 role tiers that map cleanly to the job functions in an SDLC team, ensuring no user has more access than their role requires.
| Role | Access Scope | Typical Job Function | SOC 2 Least Privilege? |
|---|---|---|---|
| Global Admin | All products, all settings, user management, audit logs | Platform administrator | Restricted to <3 users by policy |
| Product Admin | One product: all features, project settings, integrations | Tech lead / product owner | Product-scoped, no cross-product access |
| Analyst | Generate artifacts, view code analysis, run quality scans | Business analyst, developer | No user management, no billing |
| Reviewer | View and comment on artifacts only | QA, security reviewer | Read + comment only |
| Viewer | View published artifacts only | Stakeholder, executive | Strictly read-only |
Role assignments are logged in the audit trail β every grant, revocation, and modification. Auditors typically ask for an "access matrix" showing which users have which roles on which systems. FlowSquad exports this directly from the admin panel as a CSV. For SOC 2 Type II, you will need to demonstrate that you performed a quarterly access review β FlowSquad's admin panel includes a one-click "Access Review Report" button specifically to support this control.
SOC 2 CC6.1 requires protection of logical access credentials, including encryption of stored credentials. FlowSquad applies field-level encryption using Fernet (AES-128-CBC with HMAC-SHA256) to every sensitive field stored in PostgreSQL: LLM provider API keys, database credentials, OAuth tokens for GitHub/Jira/Confluence integrations, and SAML private keys.
The encryption key is stored separately from the database β in a Kubernetes Secret or external secrets manager (Vault, AWS Secrets Manager, Azure Key Vault). This means a database dump alone is useless without the encryption key β a critical separation that SOC 2 auditors explicitly look for under CC6.1's "logical access security measures."
Quarterly key rotation is a SOC 2 operational best practice. FlowSquad's key rotation wizard re-encrypts all stored secrets with a new Fernet key without downtime, completing in under 4 minutes for a typical deployment with 50 stored credentials. The rotation event is recorded in the audit log with the timestamp and the admin user who initiated it.
SOC 2 CC6.6 requires that system access is protected against unauthorized access, including multi-factor authentication for remote access. FlowSquad supports MFA (TOTP-based, compatible with Google Authenticator, Authy, and 1Password) enforced at the platform level. When auth.mfaRequired: true is set in the Helm values, users cannot log in without MFA β there is no opt-out at the user level.
Industry data shows that MFA blocks 99.9% of automated account takeover attacks (Microsoft Security, 2023). For SOC 2, the evidence requirement is an MFA enrollment report showing that 100% of users have MFA enabled. FlowSquad's admin panel exports this report in one click, showing each user's MFA status and enrollment date.
SOC 2 auditors conduct walkthroughs of your environment to verify controls are operating as described. Based on common audit findings, the table below lists the most frequent requests during a SOC 2 Type II audit and where each FlowSquad feature satisfies the request.
| Auditor Request | FlowSquad Feature | Time to Produce Evidence |
|---|---|---|
| "Show me a list of all user logins in the past 90 days" | Audit Logs β Filter by action=login β Export CSV | < 60 seconds |
| "Who has admin access to the platform?" | Admin panel β Users β Filter by role=global_admin | < 30 seconds |
| "Show me evidence that credentials are encrypted at rest" | Architecture doc (HLD output) + DB schema showing encrypted columns | < 5 minutes |
| "How do you detect and respond to unauthorized access attempts?" | Audit log failed login events + alert rules configuration export | < 5 minutes |
| "Show me your vulnerability scan results for the past quarter" | OWASP Top 10 / Semgrep scan report exports (per-PR and monthly summary) | < 2 minutes |
| "What is your MFA enrollment rate?" | Admin panel β Auth report β MFA enrollment by user | < 30 seconds |
| "Can you demonstrate your access review process?" | Quarterly Access Review Report + role change audit trail | < 3 minutes |
Yes. FlowSquad maintains a SOC 2 Type II report covering the Security Trust Service Criteria. The report is available under NDA to customers and prospects. The controls described in this post β audit logs, RBAC, MFA, field-level encryption β are all covered in FlowSquad's own SOC 2 report, meaning your organization inherits these controls as part of a vendor due diligence argument. Contact sales@flowsquad.ai to request the report.
The default retention period is 90 days, which satisfies most SOC 2 Type II audit windows. Retention can be extended to 365 days or indefinitely in the admin panel under Settings β Audit Logs β Retention Policy. Log storage is compressed at approximately 1.2 KB per event; a team of 20 engineers generating 500 events/day requires ~11 MB/month of storage β negligible cost compared to the compliance value.
Yes. FlowSquad's audit log API streams events in JSON-LD format via a webhook endpoint. Configure the webhook URL to point at your Splunk HEC, Datadog Log Intake, or Elastic Logstash endpoint. The webhook fires within 500ms of each event. Alternatively, use the PostgreSQL audit log table directly with a Splunk DB Connect or Datadog PostgreSQL integration for bulk historical ingestion.
Yes. When SAML 2.0 with Keycloak is configured, FlowSquad maps Keycloak group membership to FlowSquad RBAC roles via a configurable attribute mapping in the SAML assertion. For example, the Keycloak group flowsquad-analysts maps to the analyst role automatically on first login. Role changes in Keycloak are reflected at the user's next login. This means your organization's Identity team controls access through existing IAM tooling rather than a separate FlowSquad admin panel.
Data in transit is protected by TLS 1.3 enforced on all HTTP endpoints (the Ingress rejects connections below TLS 1.2). Data at rest uses field-level Fernet encryption (AES-128-CBC + HMAC-SHA256) for sensitive fields in PostgreSQL, and relies on the cloud provider's disk encryption (e.g., AWS EBS encryption with KMS, or GCP Persistent Disk encryption) for the full volume. The combination satisfies CC6.1 requirements for both in-transit and at-rest protection as documented in FlowSquad's own SOC 2 report.