Security & Data Protection
Transparent, technical disclosure of the security measures GT1 Partners LLC, dba Dimora AI implements to protect your data and your guests' data.
Encryption
All data in transit and at rest is encrypted using modern cipher suites. Deprecated protocols (SSLv3, TLS 1.0, TLS 1.1) are disabled across all systems.
In Transit
TLS 1.3 with Perfect Forward Secrecy
ActiveAll network traffic between clients, APIs, and sub-processors is encrypted via TLS 1.3. PFS (ECDHE key exchange) ensures that session keys cannot be derived from the server's long-term private key — past sessions remain confidential even if a private key is later compromised.
HTTPS Enforced on All Endpoints
ActiveHTTP requests are redirected to HTTPS across all web-facing surfaces. HSTS (HTTP Strict Transport Security) headers instruct browsers to refuse non-HTTPS connections for the domain and subdomains.
Modern Cipher Suites Only
ActivePermitted cipher suites include TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, and TLS_AES_128_GCM_SHA256. Weak cipher suites (RC4, 3DES, NULL) are explicitly disabled. Cipher suite selection is inherited from Netlify (edge) and Supabase (database).
Secure Connection Pooling
ActiveDatabase connections use PgBouncer via Supabase (transaction mode, port 6543) with TLS enforced on all pooled connections. Direct connections for migrations use port 5432 with TLS required. No plaintext database connections are permitted.
At Rest
AES-256 Database Encryption
ActiveAll data stored in Supabase (PostgreSQL on AWS us-east-1) is encrypted at rest using AES-256, managed by AWS at the storage layer. This covers all tables, indexes, and backup snapshots.
Encrypted Backups
ActiveAutomated daily backups are encrypted at rest using the same AES-256 standard. Backups are stored separately from the primary volume and retained for 30 days.
Call Recording Encryption
ActiveVoice call recordings and transcripts processed by VAPI are encrypted at rest on GCP infrastructure. Recordings are automatically purged after 90 days. Clients may request earlier deletion.
Secrets Management
ActiveAPI keys, integration credentials, and service-role keys are stored as encrypted environment variables in Netlify and Railway. Credentials are never committed to source control. Secret rotation is performed manually and tracked.
Access Control
Access to systems and data follows a least-privilege model enforced at multiple layers: the database (RLS), the application (JWT + role claims), and infrastructure (named accounts only).
Tenant Isolation
Supabase Row-Level Security (RLS)
ActiveEvery table containing customer data enforces RLS policies that restrict reads and writes to the requesting organization's data. Organization scope is validated at the database layer — no application-level workaround can bypass it. Cross-tenant data leakage is structurally prevented.
Service Role Scoping
ActiveServer-side functions that require elevated privileges use the service_role client only after validating the caller's organization membership in the API route itself. Service-role keys are never exposed to browser clients.
Authentication & Authorization
JWT-Based Authentication
ActiveAll authenticated sessions use short-lived JWTs issued by Supabase Auth. Tokens are signed (HS256 / RS256), validated server-side on every API request, and automatically refreshed. Expired or tampered tokens are rejected.
Role-Based Access Control
ActiveThree access roles: PM Admin (full access to their organization's data, settings, and team management), Contractor (job-specific access — sees only jobs assigned to them, via a separate portal), and Viewer (read-only, planned). Role claims are embedded in JWTs and verified on every protected route.
MFA on Dimora Admin Accounts
ActiveMulti-factor authentication (TOTP-based) is required on all Dimora AI infrastructure accounts including Supabase, Railway, Netlify, GitHub, Cloudflare, and AWS. MFA is recommended (and UI-prompted) for customer accounts, though not currently enforced.
Quarterly Access Reviews
ActiveAll production system access is reviewed quarterly. Accounts are audited for continued need. Stale accounts and unused service credentials are revoked. This applies to both internal team access and sub-processor API keys.
Audit Logging
Auth & Query Logs via Supabase
ActiveSupabase provides auth event logs (sign-ins, password resets, token refreshes) and query logs available via the Supabase dashboard. Logs are retained by Supabase for 7 days on the Pro plan, with additional retention configurable. Production database access is logged and limited to authorized personnel on a need-to-know basis.
Workflow Execution Logs via n8n
ActiveAll automation workflow executions are logged by n8n with inputs, outputs, timestamps, and errors. Logs are retained for 30 days and reviewed for anomalies. Sensitive data (API keys, guest PII) is masked in log output where possible.
Network Security
Network-layer protections are inherited from Netlify (web frontend) and Supabase/Railway (backend). These infrastructure providers operate enterprise-grade network security controls.
DDoS Protection via Netlify Edge
ActiveThe Dimora AI web application is served via Netlify's global edge network. Netlify provides L3/L4 DDoS mitigation and automatic traffic scrubbing at the edge layer. No direct-origin exposure for web traffic.
API Rate Limiting
ActiveAPI endpoints enforce rate limits to prevent abuse and brute-force attempts. Authentication endpoints (login, password reset) apply stricter per-IP limits. Rate limit violations return 429 responses and are logged.
HSTS Enforced (HTTP Strict Transport Security)
ActiveAll web responses include the Strict-Transport-Security header with a minimum 1-year max-age directive and includeSubDomains. This prevents SSL-stripping attacks and forces HTTPS-only connections from compliant browsers.
Security Headers
ActiveHTTP responses include: Content-Security-Policy (restrict script/frame sources), X-Frame-Options: DENY (clickjacking prevention), X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, and Permissions-Policy (disable camera/microphone/geolocation in web app). Headers configured in next.config.ts.
Supabase Network Isolation
ActiveSupabase database instances run in isolated VPCs on AWS. Direct database access is restricted to allowlisted connection sources. Connection pooler (PgBouncer) is the only publicly exposed database endpoint.
Application Security
Security controls are embedded throughout the application code. We follow OWASP Top 10 guidance as the baseline for application-level controls.
Input & Output Handling
Input Validation on All API Endpoints
ActiveAll API routes validate request body structure, data types, and value ranges before processing. Unexpected fields are stripped. Requests failing validation return 400 with structured error responses — no raw error strings that could expose internal state.
SQL Injection Prevention via Parameterized Queries
ActiveAll database interactions use Supabase's PostgREST client or parameterized SQL via the Supabase SDK. Raw string interpolation in SQL is not used anywhere in the codebase. Supabase's prepared statement handling structurally prevents SQL injection.
Output Encoding — XSS Prevention
ActiveReact's JSX templating automatically HTML-encodes dynamic content before rendering, preventing reflected XSS. dangerouslySetInnerHTML is not used in the application. Transcript and message content is always rendered through React's encoding pipeline.
Content Security Policy (CSP)
ActiveCSP headers restrict which scripts, styles, frames, and connections the browser permits. Inline scripts are restricted. External script sources are allowlisted to known providers (Supabase, Clarity, GA4). CSP violations are surfaced in browser console.
Code Safety
No eval() or Dynamic Code Execution
ActiveThe application codebase contains no use of eval(), Function(), or setTimeout/setInterval with string arguments. All n8n automation Code nodes use explicit JavaScript — no dynamic code construction from user-supplied input.
SSRF Protection on Webhook Endpoints
ActiveOutbound HTTP requests from server-side routes validate destination URLs against an allowlist. Internal network addresses (169.254.x.x, 10.x.x.x, 127.x.x.x) are blocked to prevent server-side request forgery.
Atomic Token Operations (TOCTOU Prevention)
ActiveInvite tokens and one-time credentials use atomic check-and-consume database operations to prevent time-of-check-to-time-of-use race conditions. Tokens are single-use and invalidated immediately on consumption.
Dependency Management
Dependabot Enabled on GitHub
ActiveDependabot is configured on the GitHub repository to automatically create pull requests for npm dependency updates, including security patch releases. PRs are reviewed before merging.
Weekly npm Audit Reviews
Activenpm audit is run weekly as part of the development workflow. High and critical severity vulnerabilities trigger immediate review. Patches for critical CVEs are applied within 7 days of public disclosure.
Infrastructure Security
Dimora AI inherits significant security controls from its infrastructure providers. Where a provider holds a certification, that certification covers the data Dimora AI stores or processes on that platform.
Hosting & Compute
Supabase — SOC 2 Type II Certified
ActivePrimary database and auth platform. Hosted on AWS us-east-1 (N. Virginia, USA). Supabase holds SOC 2 Type II certification (audited annually). Physical security, environmental controls, and logical access controls at the infrastructure layer are covered by Supabase's compliance posture.
AWS us-east-1 — Physical Security (Inherited)
ActiveSupabase runs on AWS us-east-1 (N. Virginia). AWS maintains ISO 27001, SOC 1/2/3, and PCI DSS certifications. Physical security of data centers — including access controls, CCTV, biometric authentication, and 24/7 security — is AWS's responsibility and is audited annually.
Railway — SOC 2 Certified
Activen8n workflow automation runs on Railway (United States). Railway holds SOC 2 certification. Execution environments are tenant-isolated. No persistent guest personal data is stored in Railway — data passes through during workflow execution.
Netlify — Edge Security
ActiveWeb application frontend deployed on Netlify's global CDN. Netlify provides DDoS protection, TLS termination, and automated SSL certificate management. Build artifacts are isolated per deployment. Production environment variables are encrypted at rest.
Backup & Recovery
Automated Daily Backups — 30-Day Retention
ActiveSupabase performs automated daily backups of the production database with 30-day retention. Backup files are encrypted at rest and stored in a separate AWS S3 bucket from the primary database volume.
Point-in-Time Recovery — 7 Days
ActiveSupabase Pro provides point-in-time recovery (PITR) with 7-day granularity. In the event of data corruption or accidental deletion, the database can be restored to any point within the last 7 days.
Business Continuity — Inherited SLAs
ActiveDimora AI inherits availability guarantees from its infrastructure providers: Supabase 99.9% uptime SLA, Railway 99.9% uptime SLA, Netlify 99.99% edge uptime. Dimora AI does not make independent RTO/RPO commitments beyond what is provided by these platforms. Multi-AZ database replication is included in Supabase's infrastructure.
Incident Response
Dimora AI maintains a documented 6-phase incident response procedure. Monitoring runs continuously via Supabase and Railway alerting. In the event of a confirmed security incident involving personal data:
Detection & Alerting
Continuous monitoring of auth anomalies, query errors, and infrastructure alerts via Supabase and Railway dashboards. Abnormal patterns (spike in failed auth attempts, unexpected data exports, elevated error rates) trigger immediate investigation. Alert escalation is to the security contact within 15 minutes of detection.
Triage & Scope Assessment
Rapid classification of the incident: severity (critical/high/medium/low), categories of data potentially affected, approximate number of data subjects, and whether exfiltration has occurred or is suspected. Triage is completed within 2 hours of initial detection for critical incidents.
Containment
Affected systems are isolated immediately. This may include: revoking compromised credentials, disabling affected API routes, blocking IP ranges, suspending affected workflow executions, or temporarily restricting access to the affected data set. Containment priority is stopping further data exposure before investigation.
Eradication
Root cause is identified and eliminated. Malicious code, unauthorized access paths, or misconfigured permissions are fully removed. System integrity is verified before re-enabling affected components.
Recovery
Affected systems are restored to verified-clean state. If data restoration is required, point-in-time recovery is used to restore to the last known-good state. Service is re-enabled only after integrity verification.
Postmortem & Prevention
Root cause analysis is documented for all incidents lasting more than 30 minutes or involving personal data. Findings are used to update preventive controls, detection rules, and response procedures. Postmortem shared with affected Clients on request.
Breach Notification SLAs
24 hours — Customer notification
Dimora AI notifies affected Clients within 24 hours of a confirmed personal data breach, giving Clients sufficient lead time to meet their own GDPR Article 33 obligation (72-hour notification to supervisory authority).
72 hours — Full incident report
A detailed written incident report — including nature of breach, data categories affected, approximate data subject count, measures taken, and next steps — is provided to affected Clients within 72 hours of initial notification.
Responsible Disclosure: If you discover a potential security vulnerability, report it to security@dimora.ai. Dimora AI does not currently operate a formal bug bounty program. Informal disclosure is welcome. We acknowledge all valid reports within 2 business days and communicate remediation timelines. We ask that you do not publicly disclose vulnerabilities before we have had a reasonable opportunity to address them (typically 90 days from report, or sooner if patched). Reporters acting in good faith under this policy are covered by our safe harbor described in the Acceptable Use Policy.
Vulnerability Management
A structured vulnerability management program covers dependency scanning, third-party security reviews, and responsible disclosure.
Dependabot — Automated Dependency Scanning
ActiveDependabot is enabled on the GitHub repository. It automatically scans npm dependencies against known CVE databases (GitHub Advisory Database, NVD) and opens pull requests for vulnerable or outdated packages.
Critical CVEs Patched Within 7 Days
ActiveCritical severity CVEs are assessed immediately upon Dependabot alert or public disclosure. Patches are applied and deployed within 7 calendar days. High severity CVEs are addressed within 30 days.
Weekly npm Audit
Activenpm audit is run weekly as part of the development process. Results are reviewed and tracked. Low/medium severity issues are batched for resolution monthly unless they have a viable exploitability path.
Third-Party Penetration Testing — Planned
PlannedDimora AI has not yet commissioned an external penetration test. Annual third-party penetration testing will be commissioned when operationally warranted by data volume or customer requirement. Enterprise customers may request a customer-funded penetration test — contact security@dimora.ai to discuss.
Infrastructure Security Reviews
ActiveInternal security reviews of RLS policies, API route authorization, and access controls are conducted on a regular basis. The most recent review (March 2026) addressed 75+ findings across 10 security domains — all critical and high issues were remediated in commit cad3221.
Logging & Monitoring
Security-relevant events are logged across the stack. Logs are used for anomaly detection, incident investigation, and compliance evidence.
Supabase Auth Logs
ActiveAll authentication events are logged: sign-in attempts (success and failure), password reset requests, token refresh, MFA events, and admin actions. Logs are accessible in the Supabase dashboard and retained per Supabase's retention policy.
Supabase Query Logs
ActivePostgREST API calls and edge function executions are logged with timestamps, request identifiers, and response status codes. Slow query logging is enabled. Logs are used to detect unusual query patterns, data exports, or access anomalies.
n8n Workflow Execution Logs — 30-Day Retention
ActiveAll n8n workflow executions (Guesty webhooks, VAPI events, upsell triggers, AI processing runs) are logged with full execution traces. Logs are retained for 30 days minimum and used to audit AI decision paths and identify processing errors.
Infrastructure Alerts
ActiveRailway and Netlify provide deployment and error alerts. Critical workflow failures (Guesty webhook misses, Supabase connection failures, VAPI processing errors) surface in real-time via error alerting to the operations team.
Log Access
ActiveProduction logs are accessible only to authorized Dimora AI personnel. Clients may request log extracts related to their organization's activity for compliance or incident investigation purposes — contact security@dimora.ai.
Employee Access Controls
Honest disclosure: Dimora AI is a 2-person team at this stage. Access controls are designed for the current scale while being extensible as the team grows.
Principle of Least Privilege
ActiveEach team member is granted only the access required for their role. Production database access is limited to personnel who require it for operations or incident response — not the entire team by default. Access grants are reviewed quarterly.
No Production Database Access for Contractors
ActiveExternal contractors engaged for development or support work do not receive direct production database access. Contractors work against development or staging environments. Any production access requires documented justification and is logged.
Production Access Logged
ActiveAll production database access is logged via Supabase audit logs. Access by any account (including admin accounts) is timestamped and traceable. Logs are reviewed as part of the quarterly access review.
Background Checks
PlannedDimora AI does not currently perform formal background checks given the 2-person team structure. This is disclosed honestly. As the team scales and customer data volumes grow, background screening will be incorporated into the hiring process.
Confidentiality Obligations
ActiveAll team members and contractors with any access to customer data are bound by confidentiality obligations in their employment or contractor agreements. These obligations survive termination.
Sub-Processor Security
Dimora AI contractually requires sub-processors to maintain data protection standards no less protective than those in the DPA. All primary sub-processors are DPF-certified or hold equivalent privacy framework certification. Security posture by sub-processor:
| Sub-Processor | Certifications | Location | Breach SLA to Dimora |
|---|---|---|---|
Supabase Database & Auth | SOC 2 Type II, DPF | AWS us-east-1, USA | Per DPA / GDPR Art. 33 |
OpenAI AI Language Models | SOC 2 Type II, DPF | USA | Per DPA |
Google Cloud (Gemini) AI Classification | ISO 27001, SOC 2, DPF | USA | Per DPA |
VAPI Voice AI Platform | GCP-hosted; DPA executed | GCP USA | Per DPA |
Deepgram Speech-to-Text | SOC 2 Type II, DPF | USA | Per DPA |
Railway Workflow Hosting (n8n) | SOC 2 | USA | Per DPA |
Netlify Web Hosting & CDN | SOC 2 Type II, DPF | USA (global CDN) | Per DPA |
Stripe Payment Processing | PCI DSS Level 1, SOC 2, DPF | USA | Per DPA |
Resend Transactional Email | SOC 2 (in progress) | USA | Per DPA |
Guesty PMS Integration | SOC 2 Type II | USA / Israel | Per DPA |
Twilio Voice / SMS | ISO 27001, SOC 2, DPF | USA | Per DPA |
xAI (Grok) AI (Demo only) | DPA executed | USA | Per DPA |
Sub-processor changes are communicated with 30 days' advance notice. The complete sub-processor list with DPA links is maintained at dimora.ai/sub-processors.
Certifications & Compliance
Honest status of certifications and regulatory compliance as of April 20, 2026:
| Framework | Status | Notes |
|---|---|---|
| GDPR | Compliant | EU personal data processed under Module 2 SCCs. DPA at dimora.ai/dpa. Customer supervisory authority: AEPD (Spain). |
| CCPA / CPRA | Compliant | Service Provider designation. No selling, sharing, or cross-context use of personal information. |
| EU-US Data Privacy Framework (DPF) | In Progress | DPF self-certification in progress under GT1 Partners LLC. All primary sub-processors are already DPF-certified. |
| SOC 2 Type II (Dimora) | Not Pursued | Not currently held. Inherited from sub-processors (Supabase, Netlify, Deepgram, Stripe). Will re-evaluate when scale warrants. |
| ISO 27001 | Not Pursued | Not currently pursued. Security practices follow NIST and OWASP guidance. Will commission when customer requirement demands it. |
| HIPAA | Not Applicable | Dimora AI does not process protected health information (PHI). HIPAA compliance is not applicable. |
| PCI DSS | Not Applicable | Dimora AI does not store, process, or transmit payment card data. All payment processing is handled exclusively by Stripe (PCI DSS Level 1). |
Data Minimization
Dimora AI processes only what is necessary to deliver the service. The following categories of sensitive data are never collected, stored, or transmitted through Dimora AI's systems:
Payment card numbers or CVVs
Bank account or routing numbers
Government-issued ID numbers
Biometric identifiers
Health or medical information (GDPR Art. 9 special categories)
Racial or ethnic origin data
Children's data (under 13 / under 16 in EU)
Social security or national insurance numbers
PMS Data — Processed, Not Permanently Stored
Guest names, reservation details, and message content are read from the property management system via API at processing time. This data is not permanently stored in Dimora AI's database — it is used transiently to generate AI responses and then discarded.
Call Recording Retention — 90 Days
Voice call recordings and transcripts are retained for 90 days to support quality review and dispute resolution. Clients may request earlier deletion. Recordings are not used to train AI models.
No AI Training on Customer Data
Dimora AI does not use customer data or guest interactions to train AI models. All AI processing is conducted against third-party model APIs (OpenAI, Google) under API data processing addenda that prohibit training on API-submitted data.
Organization-Scoped Data Isolation
Supabase RLS policies ensure complete isolation between client organizations. No cross-tenant data access is possible at the application or database level. RLS is enforced at the PostgreSQL row level, not just the application layer.
Secure Deletion on Termination
All personal data deleted within 90 days of contract termination. Backups purged within 30 days of primary deletion. Billing records retained 7 years per legal obligation. Data export available within 30 days of termination request.
No Data Selling
Dimora AI does not sell, rent, share, or use client or guest data for cross-context behavioral advertising, model training, or any purpose outside the contracted service.
Transparency Commitments
Dimora AI commits to proactive disclosure when security or data processing practices change.
Sub-Processor Changes — 30 Days Notice
Dimora AI provides 30 calendar days advance notice before adding or materially changing a sub-processor. Notice is delivered by email to the Client's primary account address and via update to dimora.ai/sub-processors.
Material Policy Changes — 30 Days Notice
Changes to the Privacy Policy, DPA, or Security Policy that materially affect Client or guest data processing are communicated 30 calendar days in advance. Minor clarifications and corrections take effect immediately with no notice required.
Breach Disclosure — 24 Hours (Confirmed), 72 Hours (Full Report)
On confirmed personal data breach: Client notification within 24 hours of confirmation. Full written incident report within 72 hours. Dimora AI does not delay notification while breach scope is still being assessed — preliminary notification is sent once a breach is confirmed.
Security Policy Updates — Version Dated
This Security page carries a 'Last Reviewed' date (currently April 20, 2026). Material updates are versioned and the previous version is available on request. We encourage enterprise buyers to request a copy for their vendor security files.
DPA and Legal Document Access
Full legal documents — Privacy Policy, Data Processing Agreement, GDPR Addendum, Sub-Processor List — are publicly available at dimora.ai/privacy, dimora.ai/dpa, dimora.ai/gdpr, and dimora.ai/sub-processors. No NDA required to review.
Security Best Practices for Clients
Your security posture affects the protection of your guests' data. Help us keep your account secure:
Use Strong Passwords
Unique, complex passwords for your Dimora AI account and all integrated services (Guesty, Gmail, etc.). 12+ characters with mixed character types. Use a password manager.
Enable Two-Factor Authentication
Activate 2FA on your Dimora AI account and on all PMS and email accounts connected to Dimora AI. TOTP apps (Authy, Google Authenticator) are preferred over SMS 2FA.
Protect API Keys
Store API keys securely. Never share them via email or Slack. Rotate them periodically or immediately if you suspect exposure. Use the minimum-permission API key scope your integration requires.
Limit Team Access
Grant access only to team members who need it. Revoke access promptly when employees or contractors leave. Use the Contractor role for cleaning and maintenance staff — they see only their assigned jobs.
Report Suspicious Activity
Report any unusual account activity — unexpected logins, changed settings, unrecognized AI drafts — immediately to security@dimora.ai. We investigate all reports within 1 business day.
Notify Us of Guest Data Concerns
If a guest contacts you about a data concern related to AI interactions, notify us at privacy@dimora.ai so we can assist in fulfilling data subject rights (access, deletion, correction) under GDPR or CCPA.
Security Contact
For security inquiries, vulnerability reports, compliance documentation, or enterprise vendor security assessments:
Security Inquiries & Vulnerability Reports
security@dimora.aiResponsible disclosure, penetration test scoping, enterprise security assessments, and SOC 2 / ISO 27001 evidence requests. Response within 2 business days.
DPA & Legal Document Requests
legal@dimora.aiPrivacy & Data Subject Rights
privacy@dimora.aiEnterprise Security Review?
We respond to vendor security questionnaires, provide evidence packages for SOC 2 inherited controls, and schedule calls for enterprise due diligence. Response within 5 business days.
security@dimora.ai