Trust Center
Everything a procurement or security team needs to evaluate EM3A. Maintained by ShiftNode Digital s.r.o.. Last updated August 9, 2026 · v2.2.0.
Editable content notice. This page is maintained by ShiftNode Digital s.r.o. to answer common security and privacy questions about EM3A. It is not an independent attestation. ShiftNode Digital s.r.o. does not currently hold SOC 2 Type II or ISO/IEC 27001 certification; the controls described below reflect operational practices modelled on those frameworks. Signed agreements (MSA, DPA, SLA) control over this public copy.
Shipped controls
Tenant isolation
Row-Level Security on every tenant table; server-side enforcement via SECURITY DEFINER helpers scoped to org_id.
Authentication & MFA
Email/password + Google OAuth. Optional TOTP MFA with backup codes; per-org MFA enforcement policy with grace window and hard gate on sensitive routes.
Session hardening
30-minute idle timeout, 12-hour absolute session ceiling, per-user 'Sign out from all devices' revoking every refresh token.
Tamper-evident audit logs
SHA-256 hash-chained rows in user_activity_audit, admin_audit_log, and org_audit_log. verify_audit_chain() RPC detects any insert, edit, or reorder.
SIEM export (Enterprise)
Signed webhooks fan out audit events every 5 minutes to Enterprise-entitled subscribers (audit.user_activity / .admin_action / .org_event).
Retention & 30-day deletion
Daily purge of operational logs (90d/180d windows). User-initiated account deletion is queued and hard-deleted after 30 days by an hourly worker.
Companion documents
Pre-answered security questionnaire
Covers the questions we most often see in mid-market and SME vendor reviews. Need the full SIG or CAIQ workbook? Email security@em3a.ai.
Governance & Compliance
Access control & identity
Data protection
Application & AI security
Operations & incident response
Questionnaire (full text)
Governance & Compliance
Q. Do you hold SOC 2, ISO 27001, or equivalent certifications?
Q. Where is the Data Processing Agreement (GDPR Art. 28)?
Q. Where can I see your sub-processors?
Access control & identity
Q. How are user accounts authenticated?
Q. Is multi-factor authentication supported?
MfaPolicyGate.Q. Are sessions bounded?
Q. How is role-based access enforced?
user_roles table (never on profiles) and are checked via SECURITY DEFINER helper functions to prevent recursive RLS. Workspace roles (super_admin, admin, member, viewer) are enforced by RLS + server-side capability checks.Data protection
Q. Is data encrypted in transit and at rest?
Q. How is tenant data isolated?
org_id and enforces a consolidated *_scoped_select RLS policy plus insert/update checks. Cross-tenant reads are impossible without a service-role token, and service-role usage is inventoried in docs/hardening/service-role-inventory.md.Q. What data-retention windows apply?
- API request logs, edge function errors, login attempts, notification delivery log: 90 days.
- Read notifications and email send log: 180 days.
- Tamper-evident audit logs: retained for the life of the workspace.
- Account-deletion requests: hard-deleted 30 days after submission.
Q. Can we export our data?
Application & AI security
Q. Do you run inputs through an AI model? What is the retention policy at that model?
auth.users rows; we send scoped project context only.Q. Are edge function inputs validated?
_shared/api-validation.ts before execution. SSRF is blocked server-side via assertSafeWebhookUrl. No user-provided SQL is ever executed.Q. How are API keys and webhook secrets protected?
rotate-api-key with an optional grace window. Webhook payloads are signed t=<ts>,v1=<hex> over ${ts}.${body}, and retried with exponential backoff by webhook-retry-worker.Operations & incident response
Q. What is your breach notification SLA?
Q. How do you monitor for tampering?
select * from verify_audit_chain('admin_audit_log'); and receive ok = true or the first broken link. Enterprise subscribers can also stream audit events to their own SIEM in real time.Q. How do we report a suspected vulnerability?