NIS2 Compliance & Information Security Policy

Sarama CRM Platform
Operator: Angad Manik Beratung fur Strategie und Projekte, Rebgasse 53, 4058 Basel, Switzerland
Responsible Person: Angad Bank (ehemals Manik), impact@angad.swiss
Platform: sarama.angad.swiss
Effective Date: 11 March 2026


1. Purpose and Scope

This Information Security Policy documents the security measures and incident response procedures of the Sarama CRM Platform in alignment with Directive (EU) 2022/2555 (NIS2 Directive), which entered into force on 16 January 2023 and requires transposition by EU member states by 17 October 2024.

Although Angad Manik Beratung fur Strategie und Projekte is a Swiss entity and not directly subject to NIS2, we adopt NIS2-aligned security practices because:

This policy covers the Sarama CRM Platform and all systems, data, and processes involved in its operation.


2. Governance and Accountability

2.1 Management Responsibility (NIS2 Art. 20)

2.2 Risk Management Approach (NIS2 Art. 21(1))

We adopt a risk-based approach to security, proportionate to our size, the nature of our services, and the potential impact of incidents on our customers.


3. Risk Management Measures (NIS2 Art. 21(2))

3.1 Risk Assessment and Policies (Art. 21(2)(a))

Risk Register (key risks identified):

RiskLikelihoodImpactMitigation
Unauthorised database accessMediumCriticalRLS, encrypted credentials, org isolation
API key compromise (customer keys)MediumHighAES-256-GCM encryption, rotation reminders
OAuth token theftLowHighSupabase Vault encryption, token revocation
XSS / injection attacksMediumHighDOMPurify, parameterised queries, CSP
Supabase infrastructure breachLowCriticalSwiss hosting, encryption at rest, backup
DDoS on public endpointsMediumMediumRate limiting, Supabase edge protection
Supply chain compromise (npm)LowHighDependency review, lock files
Phishing against platform usersMediumMediumOTP-only auth (no passwords to phish)

3.2 Incident Handling (Art. 21(2)(b))

See Section 5 (Incident Response Plan).

3.3 Business Continuity (Art. 21(2)(c))

3.4 Supply Chain Security (Art. 21(2)(d))

Sub-processors and their security posture:

SupplierServiceSecurity StandardsData Location
SupabaseDatabase, Auth, Storage, Edge FunctionsSOC 2 Type II, encrypted at rest (AES-256), TLSZurich, CH
StripePayment processingPCI DSS Level 1, SOC 2USA (EU-US DPF)
AnthropicAI modelsSOC 2, data not used for trainingUSA (SCCs)
OpenAIAI modelsSOC 2, enterprise data handlingUSA (SCCs)
Google CloudAI models (Gemini)ISO 27001, SOC 2USA/EU
GoogleAnalytics (consent-gated)SOC 2, ISO 27001USA/EU
CloudflareTurnstile CAPTCHASOC 2, ISO 27001USA/EU (Anycast)

Supply chain measures:

3.5 Security in Development and Maintenance (Art. 21(2)(e))

3.6 Effectiveness Assessment (Art. 21(2)(f))

3.7 Cybersecurity Training (Art. 21(2)(g))

3.8 Cryptography (Art. 21(2)(h))

AssetEncryptionStandard
API keys (AI providers)AES-256-GCMNIST SP 800-38D
OAuth tokens (email/calendar)Supabase VaultEnvelope encryption
Data in transitTLS 1.2+IETF RFC 5246+
Data at rest (database)AES-256 (Supabase/AWS)Managed by infrastructure
Unsubscribe tokensHMAC-SHA256RFC 2104
Encryption keySupabase secret (ENCRYPTION_KEY)Rotated on compromise

3.9 Access Control and Asset Management (Art. 21(2)(i))

Authentication:

Authorisation:

API Key Management:

3.10 Multi-Factor Authentication (Art. 21(2)(j))

3.11 AI Agents and Automated Actions


4. Public Endpoint Security

The Platform exposes public (unauthenticated) endpoints for forms and email tracking:

EndpointPurposeSecurity Measures
form-loaderLoad form definitionsNo JWT required; CORS restricted to allowed domains
form-submitAccept form submissionsRate limit: 5/min/IP/form; CORS restricted
form-connectExternal form integrationRate limit: 10/min/IP; per-org domain validation
track-openEmail open trackingTracking pixel; IP filtering for Apple MPP
track-clickEmail click tracking302 redirect; no data exposure
process-unsubscribeEmail unsubscribeHMAC-SHA256 token validation; no plaintext IDs
assessment-chatPublic assessment chatNo CORS wildcard; dynamic domain validation

Rate limiting prevents abuse of all public endpoints. Responses do not leak internal identifiers.


5. Incident Response Plan (NIS2 Art. 21(2)(b), Art. 23)

5.1 Incident Classification

SeverityDescriptionExampleResponse Time
CriticalData breach, system compromise, complete outageDatabase breach, encryption key leakImmediate (< 1 hour)
HighPartial data exposure, significant degradationAPI key exposure, RLS bypass< 4 hours
MediumLimited impact, single-tenant issueSingle org data issue, edge function failure< 24 hours
LowMinor issue, no data exposureUI bug, non-sensitive log leak< 72 hours

5.2 Incident Response Steps

  1. Detection & Triage (0–1 hour) — Identify scope, affected data, and affected customers. Classify severity per table above.
  2. Containment (1–4 hours) — Isolate affected systems or accounts. Revoke compromised credentials. Disable affected endpoints if necessary.
  3. Notification (within 24 hours for significant incidents) — Notify affected customers via email. For data breaches: notify within 72 hours per GDPR Art. 33. For NIS2-significant incidents: notify relevant CSIRT within 24 hours (early warning), full report within 72 hours.
  4. Eradication & Recovery (1–7 days) — Root cause analysis. Patch vulnerabilities. Restore from backups if necessary. Mandate API key rotation for affected customers.
  5. Post-Incident Review (within 30 days) — Document lessons learned. Update risk register. Implement preventive measures. Update this policy if needed.

5.3 NIS2 Reporting Timeline (Art. 23)

DeadlineRequirement
24 hoursEarly warning to competent CSIRT
72 hoursFull incident notification with initial assessment
1 monthFinal report with root cause, impact, and remediation

5.4 Customer Notification Template

In the event of a security incident affecting customer data, we will communicate:


6. API Key and Credential Security

6.1 Platform-Managed Secrets

SecretPurposeRotation Policy
ENCRYPTION_KEYAES-GCM encryption of API keysOn compromise; no scheduled rotation (envelope encryption)
UNSUBSCRIBE_SECRETHMAC for unsubscribe tokensOn compromise
Supabase service role keyBackend operationsManaged by Supabase
Stripe secret keyPayment processingOn compromise; monitor Stripe dashboard

6.2 Customer-Managed Credentials

CredentialStorageRotation Recommendation
AI provider API keysAES-256-GCM encryptedEvery 90 days
Email OAuth tokensSupabase VaultRe-authorise if compromised
Calendar OAuth tokensSupabase VaultRe-authorise if compromised
IMAP/SMTP passwordsEncryptedEvery 90 days

6.3 Breach Scenario: Key Rotation Protocol

If a breach is suspected or confirmed:

  1. All affected customer API keys are immediately invalidated server-side (where technically possible).
  2. Customers are notified to regenerate keys at the provider (Anthropic, OpenAI, Google).
  3. New keys must be re-entered in the Platform.
  4. OAuth integrations: customers are advised to revoke and re-authorise.
  5. Platform secrets are rotated by the operator.

7. Data Isolation and Multi-Tenancy


8. Logging and Monitoring

WhatWhereRetention
User actions (CRUD)crm.audit_log2 years
Edge function logsSupabase Dashboard7 days (Supabase default)
Authentication eventsSupabase Auth logs7 days
API errorsEdge function stderr7 days
Security incidentsManual documentationIndefinite

9. Compliance Mapping

NIS2 ArticleRequirementSarama Implementation
Art. 20GovernanceSole proprietor accountability; documented policy
Art. 21(2)(a)Risk analysisRisk register (Section 3.1)
Art. 21(2)(b)Incident handlingIRP (Section 5)
Art. 21(2)(c)Business continuitySupabase backups, export capability
Art. 21(2)(d)Supply chainSub-processor assessment (Section 3.4)
Art. 21(2)(e)Secure developmentOWASP, RLS, input sanitisation
Art. 21(2)(f)Effectiveness assessmentPeriodic security audits
Art. 21(2)(g)TrainingOngoing education
Art. 21(2)(h)CryptographyAES-256-GCM, TLS, HMAC (Section 3.8)
Art. 21(2)(i)Access controlRLS, RBAC, OTP auth (Section 3.9)
Art. 21(2)(j)MFAOTP (planned: TOTP/hardware keys)
Art. 23Incident reporting24h/72h/1mo timeline (Section 5.3)

10. Review and Updates

This policy is reviewed:


11. Contact

For security enquiries or to report a vulnerability:

Angad Manik Beratung fur Strategie und Projekte
Angad Bank (ehemals Manik)
Rebgasse 53, 4058 Basel, Switzerland
Email: impact@angad.swiss

For urgent security incidents, email with subject line: [SECURITY INCIDENT] — Sarama CRM


Last updated: 28 March 2026