Trust Center

How we protect your data. All numbers on this page are pulled directly from our production configuration.

Data Processing Agreement Privacy Policy

Encryption

WhatHow
Data in transitTLS 1.3, all connections
Data at restAES-256, Google Cloud managed keys
Stored credentialsAES-256-GCM with 12-byte nonce. 256-bit key from dedicated environment variable. Decrypted only at moment of use, then redacted from all stored logs.
Passwordsbcrypt via PostgreSQL pgcrypto (gen_salt('bf')). Timing-safe comparison.
API keysSHA-256 hashed before storage. Plaintext never persisted. Looked up by hash.
Session tokens32 random bytes, SHA-256 hashed, hex-encoded

Browser Isolation

Every AI agent runs in its own isolated container. No two agents share a browser session, and containers are destroyed after use.

SettingValue
Container typeEphemeral Docker container (Selenium Grid)
Max concurrent containers5 per node
Session timeout600 seconds (10 minutes idle)
Page load timeout30 seconds
Max agent iterations115 per agent
Max agent token budget2,000,000 tokens
Agent cleanup timeout5 seconds (container destroyed)
Tenant separationLogical isolation at database level with enforced tenant IDs on all queries

Data Retention

Data typeRetentionNotes
Page HTML contentNot persistedUsed in-memory for agent decisions, never written to database. Truncated at 15,000 characters.
Page text contentNot persistedTruncated at 8,000 characters in-memory.
Credentials in agent logsRedacted immediatelyMasked to first and last character before storage.
Console logsNot persistedCapped at 200 entries per session, returned to agent only.
Network eventsNot persistedURL, method, status, size. Available to agent only during session.
Agent session dataDuration of projectScreenshots, conversation logs, test results. Deletable on request.
Video recordingsDuration of projectStored in Google Cloud Storage. Recorded only when enabled.
Completed background jobs2 hoursAutomatically purged by job queue.
Cancelled/failed jobs24 hoursKept for debugging, then purged.
User sessions (cookies)7 daysHttpOnly, SameSite=Lax. Session table is UNLOGGED (not durable).
Password reset tokens1 daySHA-256 hashed. Consumed on use.
OAuth state tokens10 minutesExpired states cleaned automatically.
Account data30 days after subscription endsName, email, company.
Payment recordsPer Belgian tax lawProcessed and stored by Stripe (PCI DSS compliant).

Access Control

ControlImplementation
API authenticationBearer token in Authorization header. SHA-256 hash lookup. Optional expiry date per key.
User rolesRole-based: admin, member. Enforced per tenant.
Cookie securityHttpOnly=true, SameSite=Lax, Path=/. 7-day MaxAge.
Security headersX-Content-Type-Options: nosniff, X-Frame-Options: DENY, X-XSS-Protection: 1; mode=block, Referrer-Policy: strict-origin-when-cross-origin
Response compressiongzip (BestSpeed level) on all responses except WebSocket and pre-compressed paths

Infrastructure

Hosting

  • Google Cloud Platform, EU (Belgium)
  • PostgreSQL 17 (Cloud SQL)
  • Google Cloud Storage for files and recordings

Server Configuration

  • Read/write timeout: 5 minutes
  • Graceful shutdown: 30 seconds
  • Max idle connections: 100 (20/host)
  • Idle connection timeout: 90 seconds

LLM Resilience

  • Max retries: 5
  • Exponential backoff: 5s initial, 60s max
  • Backoff multiplier: 2.0x with 0.3 jitter
  • Client timeout: 120 seconds

Database

  • PostgreSQL 17 with pgcrypto, citext, pg_trgm
  • SSL required for production connections
  • Structured logging via slog

Integrations

Each integration is enabled by the customer and can be disabled at any time. Aiqaramba processes integration data only on the customer's instruction.

IntegrationData accessedDirection
Microsoft 365 (email)Email subject, sender, body preview, extracted links. Scoped by customer's OAuth credentials. Default: last 10 minutes, max 5 results per query.Third-party → Aiqaramba
WebhooksAgent/discovery results: ID, name, status, summary, duration, video URL. HMAC-signed with per-project secret.Aiqaramba → Customer
GitHub AppAgent failure summaries for issue creation. OAuth token encrypted at rest.Aiqaramba → Customer
PostHog (product analytics)Aggregated, non-PII events only: agent_completed with agent_id, model, success, iterations, tokens_used, tenant_id. No personal data.Aiqaramba → PostHog

Sub-processors

We provide at least 14 days' notice before adding or replacing a sub-processor. To receive notifications, email privacy@alex-ai.eu.

Sub-processorLocationPurpose
Google Cloud PlatformEU (Belgium)Infrastructure hosting, compute, Cloud SQL (PostgreSQL), Cloud Storage
Google Vertex AIEULLM inference (Gemini models) for agent intelligence
StripeEU / USPayment processing and subscription management (PCI DSS compliant)

Last updated: March 2026

Compliance

FrameworkStatus
GDPRCompliant — EU-based processing (Belgium). DPA with Standard Contractual Clauses (Module 2).
UK GDPRCompliant — UK Addendum (ICO version B1.0) incorporated into DPA.
CCPACompliant — Service provider designation. No sale of personal information.

Incident Response

In the event of a personal data breach, we notify affected customers within 48 hours, providing the nature and scope of the breach, likely consequences, and measures taken to address it.

Report a security vulnerability: security@alex-ai.eu

Company

Legal entityAlex AI BV, trading as Aiqaramba
AddressJozef Plateaustraat 75/201, 9000 Gent, Belgium
Company numberBCE 1029.742.102
JurisdictionBelgium
Supervisory authorityBelgian Data Protection Authority (Gegevensbeschermingsautoriteit)
Privacy contactprivacy@alex-ai.eu
Security contactsecurity@alex-ai.eu