Security & Privacy

Your Command Center handles sensitive business data — leads, payments, customer conversations. Every security measure listed here is built into the system by default, not sold as an add-on.

Your Data, Your Server

Your Command Center runs on your own server. We don't aggregate client data or share infrastructure between businesses.

Fail-Closed Design

When a security check can't verify, it denies by default. Missing webhook secret? The endpoint returns 503, not a silent pass.

No Training on Your Data

Your conversations, leads, and business data are never used to train AI models. Your information stays in your CRM and nowhere else.

Authentication

Multi-User Access Control

The Command Center supports multiple authenticated users with separate credentials, each secured against common attack vectors.

Bcrypt Password Hashing Live

All passwords are hashed with bcrypt before storage. Plain-text passwords never touch the database or logs.

Brute-Force Lockout Enforced

After 5 failed login attempts from the same IP, the account locks for 15 minutes. Prevents credential-stuffing and dictionary attacks.

5 attempts / 15-minute window / per IP

Session Token Authentication Live

Successful login returns a session token. Every subsequent request is authenticated against this token — no credentials stored in the browser.

Secrets Never Echoed Enforced

API responses never return passwords or access codes. The settings endpoint reports only whether values are set and whether they're custom — never the actual values.

Rate Limiting

Request Throttling & Spend Caps

Multiple layers prevent abuse, runaway costs, and denial-of-service — whether from malicious actors or accidental loops.

Public Chat Rate Limiter Enforced

The public-facing chat widget is limited to 10 requests per IP per 60-second window. Prevents abuse from bots and spam.

10 req / IP / 60 seconds

Public AI Spend Cap Enforced

Monthly spending on public AI interactions is hard-capped. Once the cap is hit, the system returns a polite message instead of running up your bill.

$300/month public cap

Owner AI Spend Cap Enforced

Owner-mode interactions have a separate, higher cap. Prevents unexpected costs even during heavy internal use.

$2,000/month owner cap

Search Spend Cap Enforced

Web search and research operations have their own isolated budget. Research-heavy months won't eat into your main AI allocation.

$50/month search cap
Network

CORS, Origins & API Access

Your API only talks to domains you've approved. No wildcard access, no open endpoints.

CORS Whitelist Enforced

Cross-origin requests are locked to an explicit list of allowed origins — your website, your dashboard, and nothing else. No wildcard (*) access is ever permitted. Every domain that talks to your Command Center is one you've approved.

Public Tool Restriction Enforced

The public-facing chat has access to exactly five tools: ask the Ohh Beehave agent, ask the Stinger Industries agent, ask the Late Nite Labs agent, log a lead, and check availability. Search, CRM queries, build requests, billing, and all other sensitive operations are completely inaccessible from the public interface.

PUBLIC_TOOLS: ask_ohh_beehave_agent, ask_stinger_industries_agent, ask_late_nite_labs_agent, log_lead, check_availability

Gate-Exempt Routes Live

Only specific routes bypass the authentication gate: the public chat endpoint, webhook receivers (Stripe, Buildertrend), the health check, and the proposal viewer. Everything else requires a valid session.

Webhooks

Webhook Verification

Every incoming webhook is cryptographically verified before processing. No exceptions.

Stripe HMAC-SHA256 Live

Stripe webhooks are verified using HMAC-SHA256 signature matching with a 5-minute replay guard. The signature parser collects all v1 entries to stay safe during secret rotation.

HMAC-SHA256 + 5-min replay window + multi-v1 sig

Buildertrend HMAC Live

Buildertrend milestone webhooks use a separate HMAC verification with a dedicated webhook secret. If the secret is not configured, the endpoint returns 503 — it never silently accepts unverified payloads.

Fail-closed: 503 if WEBHOOK_SECRET unset

Two-Step Confirmation for Irreversible Actions

Any action that can't be undone — sending a DocuSign envelope, creating a Stripe charge, pushing a lead to an external CRM — requires the AI to confirm with the user before executing. The system prompts explicitly instruct agents to ask for confirmation, not just proceed.

Data Privacy

Where Your Data Lives

A clear picture of what data the system handles and where it goes.

  1. Your CRM data lives in Airtable under your account. Leads, conversations, settings, social posts, and assets. Accessible only through authenticated API calls from your Command Center.
  2. Conversations are logged to your CRM for context continuity. The AI references past conversations to serve returning customers better — but the data never leaves your Airtable workspace.
  3. Payment data is handled entirely by Stripe. Your Command Center creates payment links and invoices through Stripe's API but never touches card numbers, bank details, or financial credentials.
  4. API keys and secrets are stored as environment variables on your server. They never appear in code, logs, API responses, or cloud-synced files. They are never committed to version control.
  5. AI processing uses the Anthropic Claude API. Conversation context is sent to generate responses but is not retained by Anthropic for training purposes.
Infrastructure

Hosting & Deployment

Your system runs on managed infrastructure with automatic deployment and health monitoring.

Render Hosting

Your Command Center runs on Render's managed platform. SSL is automatic. The server restarts on failure. No DevOps required on your end.

GitHub Auto-Deploy

Every update to the main branch triggers an automatic deployment. Changes go live in minutes, and rollback is one click away.

Health Check Endpoint

A dedicated health endpoint reports the status of every integration — Stripe, HubSpot, Twilio, Airtable, and more. One glance shows what's connected and what needs attention.

Environment Isolation

Each client's Command Center is a completely separate deployment with its own server, its own database, its own API keys, and its own domain. There is no shared infrastructure between clients.

Questions About Security?

We're happy to walk through the technical details. Book a call and ask us anything.

Call (772) 666-7057