Policy Objective
Godia.ai is a SaaS publisher of conversational AI agents. The platform provides a secure web client portal, AI agents accessible via embedded web widget and outbound email, a Copilot module connected to Gmail and Microsoft 365 mailboxes (reading inbound emails to suggest reply drafts, sending conditional on explicit human validation), and an automation system (trigger rules, transactional emails, prospect records).
This document describes the technical and organizational measures (TOMs) applied to our platform, ensuring the confidentiality, integrity and availability of our customers' data and that of their users.
100 % of data is hosted in the European Union.
Hosting & Infrastructure
All platform components are hosted in the European Union:
- Application: Railway (europe-west4 region, Amsterdam, Netherlands), SOC 2 certified
- Database: PostgreSQL 16 managed by Neon (europe-west4 region, EU), SOC 2 Type II + ISO 27001 + ISO 27701 certified, multi-zone replication
- AI Engine: Mistral AI SAS (France, EU). Data is not used to train the models.
- Transactional emails: Mailjet/Sinch (France, EU), ISO 27001 certified
- OAuth Authentication + Copilot APIs: Google LLC (United States, GDPR SCCs) and Microsoft Corporation (EU/United States, GDPR SCCs), Authorization Code PKCE flow for SSO; Gmail API (
gmail.modifyscope) and Microsoft Graph API (Mail.Read,Mail.Sendscopes) for the Copilot module, exclusively upon explicit client connection.
Governance and Organization
- GDPR Contact: legal@godia.ai (no DPO formally designated at this stage, GDPR Art. 37 regulatory threshold not met)
- Security Contact: legal@godia.ai (response SLA: 4h for critical incidents)
- Security Responsibility: held by the technical management
- Awareness: security and GDPR best practices disseminated internally
Access Control (IAM)
- Multi-Factor Authentication (MFA / TOTP)
TOTP MFA (Time-based One-Time Password) is mandatory for Godia administrator accounts, recommended and enabled for all client portal accounts (activation via Profile → Security). 6-digit code verification required at each login. Compatible with Google Authenticator, Authy, Microsoft Authenticator. 10 recovery codes generated upon activation. For SSO users (Google / Microsoft), MFA is delegated to the organization's identity provider.
- SSO (Single Sign-On)
OAuth2/OIDC via Google and Microsoft, Authorization Code PKCE flow.
- Role Management (RBAC)
Three native roles: Owner (organization owner, full access), Admin (administration and configuration), Member (operational). Each member additionally has 8 configurable granular permissions (canViewAnalytics, canManageAgents, canViewConversations, canViewProspects, canManageTeam, canManageBilling, canExportData, canViewCopilot) allowing read-only or custom profiles to be defined. The
canExportDatapermission is required for SIEM export, verified server-side (HTTP 403 if absent). - Automatic Deactivation of Inactive Accounts
Daily automatic job: warning at 60 days of inactivity (
INACTIVITY_WARNINGevent in the SIEM). Automatic revocation of all sessions at 90 days (GDPR Art. 32 / DORA Art. 9). Each event timestamped in the audit trail.
Data Encryption
- In Transit
TLS 1.2 / 1.3 enforced on all connections. HTTPS mandatory, HSTS enabled (
max-age=31536000; includeSubDomains; preload). HTTP automatically redirected to HTTPS. - At Rest
Sensitive data (CRM credentials, OAuth tokens, prospect files): application-level AES-256-GCM encryption before persistence. User passwords: bcrypt 12 rounds hash. PostgreSQL database: at-rest encryption at the infrastructure level (Neon). Backups: AES-256.
- JWT Session Keys
RS256, automatic rotation every 7 days. Primary key + backup key maintained for multi-instance high availability. Immediate revocation via LRU cache of invalidated tokens. Never transmitted in clear text.
- MASTER_KEY
AES-256-GCM master key (32 bytes, scrypt-derived) managed as an environment secret on the Railway platform (SOC 2 Type II). Annual planned rotation (Q4); immediate rotation on triggering event (suspected compromise, leak, forensic audit). Internal procedure documented covering preparation, backup, application-level re-encryption, Railway update, verification, destruction and audit trail.
- Developer API Keys
Format
godia_live_<base64url-32bytes>(orgodia_test_for the test environment): only the SHA-256 hash is persisted in database. The clear-text key is displayed only once at creation, never stored or recoverable.
Multi-tenant Isolation
Three cumulative levels guarantee strict data isolation between organizations:
clientIdcolumn on all tables:WHERE client_id = $clientIdfilter mandatory on every SQL query. Architecturally impossible to access data without this filter.- Authentication middleware: injects and verifies the
clientIdon every API call, before any data access. - Ownership verification on every endpoint: immediate HTTP 403 on cross-tenant access attempt, even if the identifier is known.
Real-time automatic alerts on any isolation violation attempt (TENANT_VIOLATIONS), logged in the SIEM.
Network & API Security
- Rate Limiting
Global: 3,000 req / 15 min per IP (sliding window). Login: 5 attempts / 15 min, automatic temporary 30-minute block. API v1: 1,000 req / hour per key. SIEM Export: 10 exports / hour per organization. Copilot mutations (POST / PATCH / DELETE): 60 req / min / IP.
- HTTP Security Headers
HSTS (
max-age=31536000; includeSubDomains; preload),X-Content-Type-Options: nosniff,Referrer-Policy: strict-origin-when-cross-origin, Content-Security-Policy active withdefault-src 'self',object-src 'none',base-uri 'self'and restrictiveframe-ancestors('self'on portal,*on widgets for voluntary cross-domain integration).unsafe-inlineis currently tolerated for the portal Vite/React stack; migration to nonce-based CSP planned in the security maturity roadmap.X-Frame-Options: DENYon the entire portal and API. The header is not sent on widget routes; cross-domain embedding is governed exclusively by CSPframe-ancestors. RestrictivePermissions-Policy(camera=(), geolocation=(), payment=(), usb=();microphone=(self)allowed only for the optional Voice Agent feature). - CSRF Protection
Synchronized token + server-side validation on all mutating routes. Systematic session regeneration at login (anti-fixation). GET requests are exempt.
- CORS
Strict whitelist of authorized origins. Only the chat widget APIs are intentionally open to allow integration on customer websites.
Logging & Monitoring (SIEM)
- Log Tables (append-only)
4 tables not modifiable through the interface: auth_events (logins, MFA, revocations), 90-day retention. access_logs (sensitive data access, admin actions), 90-day retention. client_activity_logs (portal actions), 30-day retention. alert_history (security alerts), 90-day retention.
- Native SIEM Export
JSON and CSV format from the client portal, compatible with Elastic, Splunk, QRadar, Microsoft Sentinel. Filters by period and event type. Server-side organization isolation.
canExportDatapermission required. Anti-exfiltration rate limit: 10 exports / hour. - Automatic Alerts (5 rules + inactivity detection)
5 active alert rules in the SIEM engine: brute force login attempts, CSRF violations, tenant isolation violations, invalid token attempts, suspicious activity. Plus a daily dedicated job for prolonged inactivity detection (60d / 90d). Immediate email notification via Mailjet upon trigger.
Vulnerability Management
- Dependency Analysis
npm auditautomatically run on every push and pull request via GitHub Actions (workflowsecurity-audit.yml), and weekly scheduled (cron Monday 6am UTC). The pipeline fails if a High or Critical severity vulnerability is detected. JSON report archived 30 days. - Remediation SLA
Critical: 48h / High: 7 days / Medium: 30 days / Low: next release.
- OWASP Audit
Internal OWASP Top 10:2025 + OWASP LLM Top 10 audit performed (February 2026, updated April 2026). Score 100/100, full compliance. Report available upon request under confidentiality agreement.
- Penetration Testing
Internal security tests performed at each major release. External penetration test by a certified third party not scheduled at this stage; may be considered as the security maturity roadmap evolves.
- Responsible Disclosure
Official program available on our dedicated page. Reporting via legal@godia.ai (response SLA: 48h for any reported vulnerability).
Secure Development
- Input Validation
Zod (strict TypeScript schemas) on 100 % of backend routes. Systematic rejection of data not conforming to the expected schema.
- SQL Injection Prevention
Drizzle ORM, parameterized queries only. No SQL string concatenation in the codebase.
- Code Reviews
Systematic code review on every pull request before merging to production. Validation by automated tools integrated into the CI pipeline (security ESLint, npm audit, integration tests). For critical changes (authentication, multi-tenant isolation, cryptography), additional validation by a technical third party before deployment.
- Secret Management
Railway environment variables, never in source code or Git repository. OAuth and CRM credentials encrypted with AES-256-GCM before persistence. Annual MASTER_KEY rotation (Q4) and immediate rotation on security event.
- Environment Segmentation
Production and development environments separated, distinct database and environment variables. No cross prod/dev access. The implementation of a dedicated staging environment is included in the maturity roadmap.
Operational Resilience
- RTO / RPO
Contractual RTO (Recovery Time Objective): 4 hours (worst case, full restoration from artifacts). Typical automatic application restart observed via Railway: < 15 minutes (common application incidents, no human intervention). RPO (Recovery Point Objective): 24 hours, aligned with the frequency of Neon backups (sub-hour point-in-time restoration in practice for application incidents). Plan for full failover tests with measured RTO/RPO under formalization for H2 2026.
- Availability SLA
99.5 % monthly guaranteed, 99.9 % contractually negotiable. See our full SLA. Real-time status: status.godia.ai.
- Backups
Daily encrypted AES-256 backups, managed by Neon. Retention according to subscribed Neon plan. EU multi-zone replication.
- Degraded Mode
In case of incompatibility or error on a Mistral model, automatic fallback between models (small / medium / large). In case of total Mistral API unavailability, existing data (conversations, prospects, analytics) remains accessible; explicit error messages returned, no silent fallback to another provider. The LLM abstraction layer integrated in the code allows a subsequent switch to an alternative provider on operational decision.
Incident Management
- Treatment Process
Detection via SIEM alerts, internal qualification, customer notification (4h SLA for critical incidents), remediation, post-incident report (PIR).
- Post-Incident Reports (PIR)
Available in the client portal: creation, tracking and closure from the interface. Each incident documented with timeline, impact and corrective measures.
- Regulatory Notification
Documented procedure: notification to the competent supervisory authorities (CNIL France, CNPD Luxembourg) within 72 hours in case of personal data breach (GDPR Art. 33). Email notification to affected organizations via Mailjet, triggered from the administration portal.
- Operational Support
L1: in-app ticket from the portal. L2: support@godia.ai. L3: technical management. L4: security emergency legal@godia.ai (4h SLA for critical incidents).
GDPR & DORA Compliance
- DPIA (GDPR Art. 35)
Formalized data protection impact assessment (DPIA-GODIA-2026-001 v1.1, April 2026), 5 documented processings: (1) AI Conversations, (2) Prospect data, (3) Authentication & SIEM logging, (4) Developer API keys, (5) Email reading and sending via Copilot (Gmail / Microsoft 365). GDPR Art. 22 clarification: no automated decision with legal effect, all email sending is conditional on explicit human validation. Available upon request to legal@godia.ai. Next review: April 2027.
- ICT Register (DORA)
Formal and operational register covering 6 ICT providers under DORA Art. 28: Railway (application infrastructure), Neon (database), Mistral AI SAS (AI engine, France), Mailjet/Sinch (transactional emails, France), Google LLC (OAuth + Gmail API for Copilot), Microsoft Corporation (OAuth + Microsoft Graph API for Copilot). Available upon request. Next review: October 2026.
- PIR Module (DORA)
Post-incident reports accessible from the client portal, integrated incident reporting, tracking and closure from the interface. Compliant with DORA Art. 11 (incident management).
- SIEM Export (DORA)
JSON/CSV from the portal, compatible with market SIEM tools (Elastic, Splunk, QRadar, Microsoft Sentinel).
- DPA GDPR Art. 28
Data processing agreement available for signature before any contractual relationship begins. Contact: legal@godia.ai.
- Exit Strategy
Contractual commitment: complete data export provided upon request within 30 days in case of termination. Definitive data deletion within 60 days after end of contract (except legal retention obligation). No proprietary lock-in: standard PostgreSQL, data exportable in JSON/CSV via the portal. Per-ICT-provider details documented in the DORA register.
Contacts
- Vulnerability reporting: legal@godia.ai (48h SLA). See also our responsible disclosure program.
- Critical incidents: legal@godia.ai (4h SLA)
- GDPR / Compliance / DPA questions: legal@godia.ai
- L2 technical support: support@godia.ai
- L1 client portal support: in-app ticket from the portal