{"data":{"id":"security","title":"Security Overview","version":"0.9.0-draft","hash":"88574dac8fd80e00cfc1308b96f6bd507f57043af877ac39e98f0e713b93036f","status":"Draft — pending qualified counsel review","markdown":"---\ntitle: Security Overview\ndocument_id: security\nversion: 0.9.0-draft\neffective_date: \"[[LEGAL_REVIEW_REQUIRED: effective date set at launch]]\"\nstatus: \"Draft — pending qualified counsel review\"\noperator: Audon Software LLC\nproduct: Audon\n---\n\n# Audon — Security Overview\n\n> **Drafting note (remove before publication):** Every statement here must be true of the deployed system. Remove or reword any control that is not live in production at the time of publication.\n\nThis page describes, plainly, how Audon (operated by **Audon Software LLC**) protects customer data, what we have not yet done, and what customers are responsible for. It is informational and does not create contractual commitments beyond those in the Terms of Service and the Data Processing Addendum (Annex II).\n\n## 1. Our assurance status — stated plainly\n\n- We **do not** hold SOC 2, ISO/IEC 27001 or any other security certification.\n- We **have not** yet commissioned an independent penetration test or external security audit.\n- We **do not** offer data residency in the UAE, Saudi Arabia, the UK or the EU.\n- We are a small team. We do not operate a 24/7 security operations centre.\n\nIf any of this changes, we will update this page and say what was done, by whom and when.\n\n## 2. Design principle: least data, read-only\n\nThe most effective protection is not collecting data in the first place.\n\n- **Read-only connectors.** We use the OpenAI Organization Admin API key and the Anthropic Claude Platform Admin API key you provide only to read **daily aggregated cost and token usage reports** (by project or workspace, model, line item and API key id). We do not read prompts, responses, files or end-user data, and we never change your provider configuration or infrastructure.\n- **No content telemetry.** The optional Telemetry API accepts only operational fields (run and workflow ids, status, verification type, estimated cost, token counts, retry and tool-call counts, and up to 20 operational metadata keys). It **rejects** metadata keys that suggest prompts, content, personal data or secrets. Raw prompt capture is not offered.\n- **No AI processing of your data.** We do not send customer data to any LLM or AI model, and we do not train models on it.\n- **No third-party trackers.** We use no analytics, advertising or session-replay tools.\n\n## 3. Protecting provider credentials\n\nProvider admin keys are the most sensitive data we hold. Because those keys may permit more than read access at the provider, we treat them accordingly:\n\n- Keys are **envelope-encrypted with AES-256-GCM** before storage: each secret is encrypted with a data key, which is itself encrypted with a master key held separately from the database.\n- Keys are **never returned** to browsers, Agents, API responses or logs after submission. The interface shows only a masked identifier.\n- Outbound connector requests go only to official provider API hosts over HTTPS.\n- **Disconnecting a connector destroys the encrypted key** and stops all future synchronization.\n\n**Recommendation:** where your provider offers it, create a dedicated admin key for Audon, label it clearly, and rotate or revoke it if you stop using the Services.\n\n## 4. Infrastructure\n\n| Layer | Provider | Notes |\n|---|---|---|\n| Application hosting | Vercel Inc. (United States) | Serverless application hosting; TLS termination |\n| Database | Neon (managed PostgreSQL) | Encryption at rest provided by Neon [[LEGAL_REVIEW_REQUIRED: confirm Neon encryption-at-rest configuration]]; region to be confirmed |\n| Transactional email | Resend (when enabled) | Sends alerts and account emails |\n| Payments | Stripe | Card data entered only on Stripe-hosted pages |\n| Source code | GitHub | Source code only; no customer data |\n\nThe full list is maintained in the Subprocessors list (document id `subprocessors`).\n\n## 5. Application security controls\n\n**Encryption in transit.** All traffic to the Services uses TLS.\n\n**Authentication.** Passwords are hashed with scrypt. Sessions use a random token in an `HttpOnly`, `Secure`, `SameSite=Lax` cookie; only a hash of the token is stored, sessions expire after 14 days, and sessions are validated server-side on every request. Audon API keys are stored only as hashes.\n\n**Authorization (RBAC).** Each organization member has one role:\n\n| Role | Typical capability |\n|---|---|\n| owner | Full control, including billing, deletion requests and ownership |\n| admin | Manage members, connectors, settings and Agents |\n| analyst | View and analyse spend, Findings and reports |\n| billing_admin | Manage plan and billing |\n| read_only | View only |\n\n**Agents.** AI agents connect through OAuth (MCP) or scoped API keys. Each Agent action is limited to its granted scopes and to the authorizing user's role, and is attributed in the activity log to that user. Deleting an organization requires a signed-in human owner, and optimization proposals require explicit human approval. Removing a member revokes their API keys and Agent access.\n\n**Tenant isolation.** All data is scoped to an organization. We run automated tests intended to prevent one tenant from reading or enumerating another tenant's data through web, REST or MCP routes.\n\n**Abuse and injection defences.** Rate limiting on authentication, API and MCP routes; idempotency keys for state-changing API calls; payload size limits; a server-side request forgery (SSRF) guard on outbound requests; signed outbound webhooks; and treatment of all customer-supplied metadata as data, never as instructions.\n\n**Audit trail.** Sensitive actions are recorded in an activity log with the actor, action, channel and request id. Entries are linked by a tamper-evident hash chain so that alteration of past entries can be detected. Logs exclude secrets and authorization headers.\n\n## 6. Data lifecycle\n\n- **Retention:** spend data is kept for the period set by the organization (default 400 days).\n- **Export:** organization owners can export organization data in JSON at any time.\n- **Deletion:** an owner can request organization deletion; after a 14-day grace period, organization data is permanently deleted from active systems. Backups expire on the database provider's cycle. Certain activity, legal acceptance and billing records may be retained where required by law.\n\n## 7. Incident response\n\nIf we become aware of a security incident affecting customer data, we will investigate, contain and remediate it, and notify affected customers as set out in the DPA (Section 8), including what happened, what data was affected and what we are doing.\n\n## 8. Reporting a vulnerability\n\nPlease report suspected vulnerabilities to [[LEGAL_REVIEW_REQUIRED: support contact email]] with \"Security\" in the subject line. Please give us reasonable time to fix the issue before disclosure, do not access or modify other customers' data, and do not degrade the Services. We will not pursue action against good-faith research that follows these principles. We do not currently run a paid bug bounty.\n\n## 9. Your responsibilities\n\nSecurity is shared. You are responsible for:\n\n- deciding whether to provide provider admin keys, and rotating or revoking them;\n- assigning appropriate roles and removing users who no longer need access;\n- protecting passwords and Audon API keys, and reviewing connected Agents and their scopes;\n- not submitting prompts, personal data or secrets in Telemetry;\n- setting spending limits directly with your AI providers (our alerts monitor spend; they do not block it); and\n- reviewing the activity log for unexpected actions.\n"},"meta":{"request_id":"req_01m61e5g8xr0jfv8k5c4tr","operation":"legal.get"}}