Air-Gapped AI We Couldn't Use Cloud LLMs. Here's How We Still Built an AI-Powered SDLC.

We Couldn't Use Cloud LLMs. Here's How We Still Built an AI-Powered SDLC.

Air-gapped environments don't have to mean no AI. FlowSquad runs entirely on-premise with Ollama (Llama 3.1/Mistral) and ChromaDB — no data leaves your network.

March 15, 2026 · 9 min read · GovernmentFinanceHealthcare
TL;DR

What Is the Compliance Problem with Cloud LLMs?

For organisations operating under strict data classification requirements — government agencies, defence contractors, financial institutions, healthcare providers — the question of cloud LLM usage isn't a preference, it's a compliance boundary. The specific concerns vary by regulatory framework but cluster around several issues:

The compliance answer: The only approach that satisfies all of the above constraints simultaneously is local inference with fully on-premise infrastructure. FlowSquad's air-gapped mode is built for exactly this.

What Is FlowSquad's Air-Gapped Deployment Architecture?

FlowSquad's on-premise deployment replaces every cloud component with a self-hosted equivalent:

[Developer Browser / IDE] | [FlowSquad Application Server] ← runs on-premise | | [ChromaDB] [Ollama Server] (vector store) (local LLM inference) | | [Local Git Repo] [Llama 3.1 / Mistral / CodeLlama] (code index) (model weights, stored locally) | [PostgreSQL / SQLite] ← all metadata stored locally | [Jira Server / Confluence Server] ← internal instances

Every component in this stack runs within your network perimeter. There are no outbound connections — not for telemetry, not for model updates, not for license validation. FlowSquad's on-premise licence is a static key validated against your deployment's hardware fingerprint at startup.

Key components:

How Do You Set Up Ollama + Local ChromaDB?

FlowSquad's 10-step setup wizard includes a dedicated air-gapped configuration path. Below is the core configuration for an on-premise deployment:

# FlowSquad on-premise / air-gapped configuration
# config/flowsquad.yaml

deployment:
  mode: "on_premise"          # disables all external API calls
  airgapped: true             # enforces no-egress mode; any outbound call raises error

llm:
  provider: "ollama"
  ollama:
    base_url: "http://localhost:11434"
    default_model: "llama3.1:70b"     # requires ~40GB VRAM
    code_model: "codellama:34b"        # optimised for code tasks
    fast_model: "mistral:7b"           # for quick scan / low-latency tasks
    timeout_seconds: 120
    num_gpu_layers: -1                 # use all available GPU layers

embeddings:
  provider: "ollama"
  model: "nomic-embed-text"            # local embedding model, no API cost
  dimensions: 768

vectordb:
  provider: "chromadb"
  chromadb:
    host: "localhost"
    port: 8000
    persist_directory: "/data/flowsquad/chromadb"
    collection_prefix: "fs_prod_"

security:
  encryption_at_rest: true
  encryption_provider: "fernet"        # AES-128 symmetric encryption
  key_path: "/secrets/flowsquad.key"   # store outside container

auth:
  mfa_required: true
  session_timeout_minutes: 30
  audit_log_enabled: true
  audit_log_path: "/var/log/flowsquad/audit.jsonl"

What Are the Performance Tradeoffs vs. Cloud LLMs?

Local inference is slower than cloud inference, primarily because commercial cloud LLM providers operate at scale with purpose-built inference hardware. The tradeoffs are manageable with appropriate server provisioning:

TaskCloud GPT-4 TurboLocal Llama 3.1 70B (A100)Local Mistral 7B (A100)
Story decomposition (1 epic)4–8 seconds12–22 seconds5–9 seconds
AskProduct query2–5 seconds8–18 seconds3–7 seconds
Test generation (1 module)8–15 seconds25–45 seconds12–22 seconds
HLD generation15–30 seconds45–90 seconds20–40 seconds
Cost per 1M tokens$10~$0.08 (power + amortised hardware)~$0.02

For most development workflows, 8–22 second response times are entirely acceptable — the latency is comparable to waiting for a CI pipeline to start. Teams that require lower latency for interactive use (e.g., real-time AskProduct in IDE plugins) should provision Mistral 7B alongside Llama 3.1 70B and use FlowSquad's model routing to assign fast, lightweight queries to the smaller model.

What Regulated Industries Use This Architecture?

FlowSquad's air-gapped deployment is actively used across several regulated sectors:

SOC 2 note: FlowSquad's on-premise deployment includes audit logs, MFA enforcement, RBAC controls, and field-level encryption — all of which are SOC 2 Type II controls. If your organisation is SOC 2 certified, FlowSquad's deployment architecture is designed to be compatible with your existing control framework.

Frequently Asked Questions

What hardware is required for the on-premise deployment?

Minimum recommended for Llama 3.1 70B: a server with 2x NVIDIA A100 80GB GPUs (or equivalent, e.g., H100 40GB x2), 128GB RAM, and 2TB NVMe storage. For Mistral 7B as the primary model: a single A10 24GB GPU is sufficient. CPU-only inference is possible but not recommended for production — Mistral 7B on a modern 32-core CPU produces response times of 90–180 seconds, which is too slow for interactive use. FlowSquad's setup wizard includes a hardware compatibility checker.

How are model weights delivered in an air-gapped environment?

Model weights are distributed via FlowSquad's offline model bundle — a set of pre-pulled Ollama model packages distributed on encrypted USB drives or via an internal artifact repository. The bundle includes all recommended models (Llama 3.1 70B, Mistral 7B, CodeLlama 34B, nomic-embed-text) with SHA-256 checksums for integrity verification. Model updates are released quarterly and delivered via the same offline bundle mechanism.

Can FlowSquad's air-gapped deployment integrate with on-premise Jira and Confluence?

Yes. FlowSquad's Jira and Confluence integrations support both cloud (Atlassian Cloud) and on-premise (Jira Server / Jira Data Center, Confluence Server / Confluence Data Center) deployments. For air-gapped deployments, FlowSquad communicates with Jira and Confluence over your internal network using the standard REST API. No internet connectivity is required for these integrations.

Is the quality (OWASP) scanning available in air-gapped mode?

Yes. FlowSquad's Semgrep-based security scanning is entirely local — the Semgrep binary and all rule sets are bundled with FlowSquad and run on your infrastructure. There are no calls to Semgrep's cloud API. Rule sets are updated during scheduled maintenance windows via the offline bundle mechanism. All 11 supported languages and all OWASP Top 10 rule categories are available in air-gapped mode.

How does field-level encryption work in FlowSquad's on-premise deployment?

FlowSquad uses Fernet symmetric encryption (AES-128) to encrypt specific sensitive fields at rest: LLM provider API keys, user credentials (salted + hashed separately), requirement documents marked as confidential, and scan findings classified as HIGH or CRITICAL. The encryption key is stored outside the application container at a path you specify during setup — typically a hardware security module (HSM) integration or a secrets management system (Vault, AWS Secrets Manager on private network). Key rotation is supported via the admin panel without requiring re-deployment.