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.

Last Reviewed: April 20, 2026

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

Active

All 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

Active

HTTP 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

Active

Permitted 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

Active

Database 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

Active

All 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

Active

Automated 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

Active

Voice 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

Active

API 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)

Active

Every 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

Active

Server-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

Active

All 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

Active

Three 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

Active

Multi-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

Active

All 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

Active

Supabase 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

Active

All 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

Active

The 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

Active

API 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)

Active

All 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

Active

HTTP 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

Active

Supabase 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

Active

All 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

Active

All 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

Active

React'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)

Active

CSP 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

Active

The 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

Active

Outbound 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)

Active

Invite 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

Active

Dependabot 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

Active

npm 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

Active

Primary 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)

Active

Supabase 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

Active

n8n 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

Active

Web 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

Active

Supabase 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

Active

Supabase 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

Active

Dimora 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:

1
Detection

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.

2
Triage

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.

3
Containment

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.

4
Eradication

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.

5
Recovery

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.

6
Postmortem

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

Active

Dependabot 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

Active

Critical 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

Active

npm 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

Planned

Dimora 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

Active

Internal 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

Active

All 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

Active

PostgREST 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

Active

All 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

Active

Railway 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

Active

Production 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

Active

Each 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

Active

External 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

Active

All 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

Planned

Dimora 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

Active

All 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-ProcessorCertificationsLocationBreach SLA to Dimora

Supabase

Database & Auth

SOC 2 Type II, DPFAWS us-east-1, USAPer DPA / GDPR Art. 33

OpenAI

AI Language Models

SOC 2 Type II, DPFUSAPer DPA

Google Cloud (Gemini)

AI Classification

ISO 27001, SOC 2, DPFUSAPer DPA

VAPI

Voice AI Platform

GCP-hosted; DPA executedGCP USAPer DPA

Deepgram

Speech-to-Text

SOC 2 Type II, DPFUSAPer DPA

Railway

Workflow Hosting (n8n)

SOC 2USAPer DPA

Netlify

Web Hosting & CDN

SOC 2 Type II, DPFUSA (global CDN)Per DPA

Stripe

Payment Processing

PCI DSS Level 1, SOC 2, DPFUSAPer DPA

Resend

Transactional Email

SOC 2 (in progress)USAPer DPA

Guesty

PMS Integration

SOC 2 Type IIUSA / IsraelPer DPA

Twilio

Voice / SMS

ISO 27001, SOC 2, DPFUSAPer DPA

xAI (Grok)

AI (Demo only)

DPA executedUSAPer 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:

FrameworkStatusNotes
GDPRCompliantEU personal data processed under Module 2 SCCs. DPA at dimora.ai/dpa. Customer supervisory authority: AEPD (Spain).
CCPA / CPRACompliantService Provider designation. No selling, sharing, or cross-context use of personal information.
EU-US Data Privacy Framework (DPF)In ProgressDPF self-certification in progress under GT1 Partners LLC. All primary sub-processors are already DPF-certified.
SOC 2 Type II (Dimora)Not PursuedNot currently held. Inherited from sub-processors (Supabase, Netlify, Deepgram, Stripe). Will re-evaluate when scale warrants.
ISO 27001Not PursuedNot currently pursued. Security practices follow NIST and OWASP guidance. Will commission when customer requirement demands it.
HIPAANot ApplicableDimora AI does not process protected health information (PHI). HIPAA compliance is not applicable.
PCI DSSNot ApplicableDimora 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.ai

Responsible 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.ai

Privacy & Data Subject Rights

privacy@dimora.ai

Enterprise 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