Use Case From Zero to SOC 2 Compliant: How FlowSquad's Audit Trail, RBAC, and Encryption Support the Certification

From Zero to SOC 2 Compliant: How FlowSquad's Audit Trail, RBAC, and Encryption Support the Certification

Audit log every action, encrypt every API key, enforce MFA, control access with roles β€” FlowSquad ships with the controls SOC 2 auditors look for out of the box.
TL;DR

What SOC 2 Trust Service Criteria Does FlowSquad Address?

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.

August 22, 2026 · 9 min read · Compliance OfficersCTOs
9
SOC 2 CC categories addressed
100%
User actions captured in audit log
AES-128
Encryption standard for all secrets
5
RBAC roles enforcing least privilege

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 ControlCriterionFlowSquad FeatureEvidence Type
CC6.1Logical access security measuresField-level encryption (Fernet/AES-128)Encrypted secrets in DB, key rotation logs
CC6.2Prior to issuing credentials10-step setup wizard + admin approval workflowUser provisioning audit trail
CC6.3Registered users / authorizationRBAC (global admin, product admin, analyst, reviewer, viewer)Role assignment logs, permission policy export
CC6.6Logical access β€” system boundariesSAML 2.0 with Keycloak, MFA enforcementSSO configuration, MFA enrollment rate report
CC6.7Transmission of dataTLS 1.3 on all endpoints, HTTPS enforcedTLS certificate logs, Ingress config
CC6.8Unauthorized access preventionOWASP Top 10 / Semgrep scanningVulnerability scan reports, remediation tickets
CC7.2Monitoring of system componentsAudit logs, health probes, LLM cost tracker anomaly alertsAudit log exports, monitoring dashboards
CC7.3Evaluation of security eventsAudit log + alert rules on suspicious patternsAlert history, incident response records
A1.1Availability β€” capacity planningKubernetes HPA, PostgreSQL connection poolingHPA configuration, uptime metrics

How Does FlowSquad's Audit Log Support SOC 2 CC6?

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.

Auditor Evidence Request (typical): "Provide a complete list of all user access events to system X for the period January 1 – March 31, 2026, including the action taken, resource affected, timestamp, and originating IP."

FlowSquad Response: Admin panel β†’ Audit Logs β†’ Export β†’ Date range: Jan 1–Mar 31 β†’ Format: JSON. Time to produce: under 60 seconds.
# 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
}

How Does RBAC Enforce the Principle of Least Privilege?

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.

RoleAccess ScopeTypical Job FunctionSOC 2 Least Privilege?
Global AdminAll products, all settings, user management, audit logsPlatform administratorRestricted to <3 users by policy
Product AdminOne product: all features, project settings, integrationsTech lead / product ownerProduct-scoped, no cross-product access
AnalystGenerate artifacts, view code analysis, run quality scansBusiness analyst, developerNo user management, no billing
ReviewerView and comment on artifacts onlyQA, security reviewerRead + comment only
ViewerView published artifacts onlyStakeholder, executiveStrictly 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.

How Does Field-Level Encryption Satisfy CC6.1?

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."

Evidence for CC6.1: The platform's architecture document (auto-generated by FlowSquad's HLD generation feature) includes a data classification section showing which fields are encrypted, the encryption algorithm, and the key management approach. This document satisfies the "description of security measures" evidence typically requested.

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.

How Does MFA Reduce Access Risk?

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.

What Does a SOC 2 Auditor Look for That FlowSquad Provides Out of the Box?

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 RequestFlowSquad FeatureTime 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

Frequently Asked Questions

Does FlowSquad provide a SOC 2 report of its own?

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.

How long are audit logs retained by default?

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.

Can FlowSquad integrate with our existing SIEM (Splunk, Datadog)?

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.

Does RBAC work with SAML 2.0 / SSO groups?

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.

What encryption does FlowSquad use for data in transit vs. data at rest?

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.

dev.to Hashnode Medium LinkedIn