GDPR-first
Zero tracking cookies. Analytika bez ukladania v prehliadači. Hosting v EU.
Vaše dáta sú v bezpečí. Transparentne a bez kompromisov.
Zero tracking cookies. Analytika bez ukladania v prehliadači. Hosting v EU.
Samohodnotenie v súlade s SK vyhláškou 227/2025 a smernicou NIS2.
Primárne dáta v EÚ; subdodávatelia mimo EÚ na základe SCC. Pred odoslaním do AI odstraňujeme identifikátory firmy a kontakty.
Vyplnený dotazník pre posúdenie dodávateľa podľa NIS2 čl. 21 ods. 2 písm. d) a čl. 32 GDPR. Odpovede zapracujeme aj do vašej šablóny na požiadanie.
Pre-filled vendor security questionnaire published by NISMap so customers subject to NIS2 Art. 21(2)(d) (supply-chain risk management) or Art. 32 GDPR (security of processing) can incorporate NISMap into their own supplier register without bilateral back-and-forth.
This document is the canonical source. A customer may instead use their internal CAIQ / SIG / VSAQ template — we will copy the answers below into it on request. Send the request to [email protected].
Scope: facts as of 2026-05-22. Re-issued on each material change. Customers are notified by email and via this page when sub-processors, hosting region, or certifications change.
Update 2026-09-24: since 2026-06-29 the application runs as a Docker container on a server operated by Inger s.r.o. at Hetzner Online GmbH (Germany), no longer on Vercel. Sections B, C, G, H, K, M, N and O reflect that; backup statements in G are limited to what is confirmed.
Honesty disclaimer: NISMap is a small operator and this document is honest about that. Where a control is not yet in place, the answer says so. Embellishment would be caught at customer DD and we won't do it.
A1. Legal entity providing the service. Inger s.r.o., a Slovak limited liability company.
A2. Company ID (IČO) and registration.
IČO 50178831, VAT ID SK2120217781, registered office Azalková 6524/10, 974 01 Banská Bystrica, Slovakia. Registered in the Commercial Register of the District Court Banská Bystrica, Section Sro, Entry No. 29266/S (also listed at /imprint).
A3. Headquarters / data-controller jurisdiction. Slovak Republic (European Union).
A4. Website and public security contact. https://nismap.com — security inquiries: [email protected]. Bug bounty / responsible disclosure intake: same address, covered at https://nismap.com/security.
A5. DPO / privacy contact. Combined [email protected] mailbox (handled by Inger s.r.o.). Inger has not formally appointed an external DPO — current processing volumes do not trigger the Art. 37 GDPR mandatory appointment criteria. Customers requiring a named DPO contact for DPA purposes can request a designated point of contact in writing.
B1. What service is provided? A SaaS web application (Next.js) for NIS2, DORA, and GDPR self-assessment, technical security scanning of customer public infrastructure, AI-assisted report and policy generation, an auditor marketplace (in preparation — no auditors listed yet), and incident-management tooling. Detailed architecture is available to customers under NDA on request.
B2. Where is the application hosted? Self-hosted: a Docker container (Next.js standalone) on a server operated by Inger s.r.o. at Hetzner Online GmbH, Germany, behind a Caddy reverse proxy. Images are built in GitHub Actions and pulled from GitHub Container Registry; deploys pin an image tag and roll back automatically if the post-deploy smoke test fails.
B3. Where is customer data stored?
Supabase Postgres + Auth + Storage, EU region eu-central-1 (Frankfurt, Germany). No customer business data leaves the EU at rest.
B4. Are there any third-country data transfers? Yes, narrowly scoped:
/sub-processors.B5. Multi-tenant or single-tenant?
Multi-tenant SaaS. Tenant isolation enforced by Postgres row-level security (RLS) policies on every business table (40 tables with RLS enabled) and tenant_id / org_id foreign keys.
C1. Encryption in transit.
HTTPS on all public endpoints (TLS 1.3 negotiated, TLS 1.2 accepted), terminated at the Caddy reverse proxy on the application server and at Supabase. HSTS enabled (max-age=63072000; includeSubDomains; preload). Plain HTTP only answers with a 308 redirect to HTTPS.
C2. Encryption at rest — platform. Supabase storage and Postgres volumes are encrypted at AES-256 disk-level by the underlying cloud provider (AWS, EU region). Supabase manages the keys.
C3. Application-layer encryption of secret tokens.
Long-lived secret tokens (e.g. third-party API keys held on behalf of a tenant) are sealed with libsodium secretbox (XSalsa20-Poly1305 AEAD) before insertion. Implementation details are available to customers under NDA on request. Payload format nismap:v2:<key_id>:<nonce>:<ciphertext> so encrypted blobs are key-rotation-aware.
C4. Column-level encryption of PII.
feedback.contact_email is sealed with pgcrypto pgp_sym_encrypt; key lives in Supabase Vault; admin reads go through a SECURITY DEFINER view. auth_attempts.email is stored only as a salted SHA-256 HMAC. IP addresses in auth_attempts are stored only as salted hashes. user_sessions.ip_address is truncated to /24 (IPv4) or /48 (IPv6) on insert.
C5. Key management. Encryption keys split across:
feedback_pii_key) for column-level PII;KC_TOKEN_SECRET_KEY, EMAIL_HASH_SALT, IP_HASH_SALT), outside the repository, for application-layer secrets and hash peppers.C6. Key rotation policy.
Annual rotation by default; immediate rotation on any suspected leak or staff departure. Multi-key rotation window supported: KC_TOKEN_SECRET_KEY_PREVIOUS accepts a comma-separated list of retired keys so existing ciphertext stays readable during rollover.
D1. Role-based access control.
Three guard layers in the application: requireAuth (any signed-in user), requireAuditor (auditor role), requireSuperAdmin (operator staff, gated by SUPER_ADMIN_EMAILS env allow-list).
D2. Row-level security.
RLS enforced on all 40 tenant-facing tables in Postgres. 78% of all migrations carry an ALTER TABLE ... ENABLE ROW LEVEL SECURITY statement; the remaining 22% are seed/lookup tables that do not hold user-writable data. Service-role key bypass is used only from backend cron and admin routes that are themselves gated.
D3. Multi-factor authentication. Supabase Auth MFA (TOTP) is wired into the codebase in the application and is available as an opt-in for every signed-in user. It is not yet mandatory for any role; mandatory enforcement for operator staff (super-admin) and auditors is scheduled (planned). Customers with stricter requirements can enforce MFA on their own user accounts today.
D4. Audit logging.
audit_log table — append-only via RLS + DB trigger, 7-year retention per migration 037 and the weekly retention cron.events table — business audit log (logins, scans, incident reports, downloads).ai_event_log (migration 074) — every Claude API call (prompt hash, model, route, tenant).kc_events (migration 066) — token/key control events.D5. Operator (super-admin) access.
Restricted to a small allow-list of named operator accounts via the SUPER_ADMIN_EMAILS environment variable.
E1. Static dependency scanning.
npm audit re-run weekly and before every release. Findings are tracked internally (internal record, available to customers under NDA on request). As of 2026-05-11: 0 critical, 0 high; 5 moderate residual vulnerabilities are all transitive inside Next.js's own toolchain (postcss) and tracked for upstream patch.
E2. Code scanning / SAST.
TypeScript strict mode in CI; ESLint; npx tsc --noEmit and npm test block merge in GitHub Actions. Independent SAST tooling (e.g. CodeQL) is not yet wired into CI — planned.
E3. Dependency auto-update.
Not currently automated (no Renovate, no Dependabot). Manual npm audit review is performed weekly by the operator. Automation is planned.
E4. Penetration testing. An external security audit is planned; not yet performed.
E5. Error & exception monitoring.
Sentry (@sentry/nextjs) on both server and client; EU-hosted Sentry project; PII scrubbed at SDK level; on-call alerting to the operator's email/phone.
F1. Documented IR process? Yes. NIS2 Art. 23 incident-classification wizard (24h / 72h / 30-day reports) is also a product feature available to all customers.
F2. Customer notification SLA. For an incident that affects customer data or service availability:
F3. Personal-data breach notification (Art. 33 GDPR). NISMap as a processor will notify affected customer-controllers without undue delay and at the latest within 48 hours of confirming a personal-data breach, providing the information required to support the customer's own 72-hour controller-to-supervisory-authority notification.
F4. Has there been a notifiable incident? None to date.
G1. RTO / RPO targets. (internal record, available to customers under NDA on request):
G2. Backups. Database backups are managed by Supabase according to the project's plan. Details on DD request.
G3. Backup restore testing. Restore drill evidence is provided on DD request.
G4. Geographic resilience. Single AWS region (eu-central-1, Frankfurt) via Supabase, with multi-AZ within that region. No cross-region active-active. This is a known residual risk.
H1. Current sub-processor list. Published at https://nismap.com/sub-processors As of 2026-10-27 the list is: Hetzner Online (EU, Germany — application hosting), Supabase (EU), Anthropic (US, redacted prompts), Stripe (IE/US), Resend (US), PostHog (EU Cloud), Cloudflare (US — DNS, CDN/reverse proxy, Turnstile), Upstash (EU), Sentry (EU), entyrix.com (EU — public company identifiers only).
H2. Change notification policy. NISMap will publish any new sub-processor to https://nismap.com/sub-processors and notify the customer's billing email at least 30 days before the new sub-processor begins processing customer data, allowing the customer to object per Art. 28(2) GDPR. Emergency sub-processor changes (e.g. security-mandated provider swap) may be made with shorter notice and a written explanation.
H3. DPA in place with each sub-processor. Yes. The transfer mechanism is recorded for each sub-processor and re-verified quarterly (internal record, available to customers under NDA on request).
I1. Controller / processor role.
I2. DPA availability.
A signed Data Processing Agreement is available on request from [email protected]. Standard DPA template is published at /dashboard/gdpr/dpa (customer-generatable). Schedule 2 enumerates technical and organizational measures (TOMs) consistent with Art. 32.
I3. Records of Processing (ROPA, Art. 30 GDPR).
NISMap maintains a ROPA for its own controller-role processing (Inger's customer database, marketing, support). Internal ROPA module: gdpr_ropa (migration 029); customer-facing ROPA generator at /dashboard/gdpr/ropa.
I4. Privacy notice. Published at https://nismap.com/privacy; covers controller-role processing.
I5. Lawful basis.
profiles.marketing_consent, migration 073).I6. Cookies / tracking.
No tracking cookies. PostHog runs in cookieless persistence: 'memory' mode. Supabase Auth and Stripe set strictly-necessary cookies (exempt from consent under the ePrivacy Directive). No cookie banner is shown.
J1. DSAR handling.
A gdpr_dsar_requests table (migration 033) plus operator UI at /dashboard/gdpr/dsar handles intake. Statutory deadline: one month from receipt of the request (Art. 12(3)), extendable by two further months for complex or numerous requests; the data subject is informed of the extension and its reasons within the first month (Art. 12(3)).
J2. Data export (Art. 20).
Self-service export at /api/account/export — rate-limited to 1 request per hour, returns the requesting user's profile, scans, assessments, and document references as JSON.
J3. Erasure (Art. 17).
Self-service /api/account DELETE removes the user account and cascades the supplemental records subject to legal retention requirements (audit-log entries retained 7 years).
J4. Restriction, objection, rectification. Handled via the same DSAR intake; documented in the privacy notice.
K1. Mechanism per sub-processor. Summary:
K2. Transfer Impact Assessment (TIA). A Transfer Impact Assessment for Anthropic is available to customers under NDA on request.
K3. EU–US Data Privacy Framework. Where a sub-processor self-certifies under the DPF, NISMap will rely on the adequacy decision and update the transfer mechanism column. Anthropic's DPA (effective 24 February 2025, https://www.anthropic.com/legal/data-processing-addendum) incorporates SCC Modules 2 and 3 and does not rely on the DPF; SCCs remain the mechanism.
L1. NISMap own certifications. None at this time. NISMap is not ISO 27001 certified, not SOC 2 certified, not BSI C5 certified.
L2. Sub-processor certifications.
L3. Independent security audit. An external security audit is planned; not yet performed.
L4. Customer's right to audit. Customers on the Business tier and above may, with 30 days' written notice and no more than once per 12 months, request reasonable evidence of compliance with the DPA (security questionnaire updates, summary of automated scan results, sub-processor list) at no charge. On-site or live-system audit requires a mutually agreed scope and is chargeable at cost.
M1. Personnel with access to customer data. Only authorized personnel of Inger s.r.o. have access to customer data. Access is assigned individually.
M2. Background screening. Background screening is not described here.
M3. Confidentiality / NDA. Authorized personnel are bound by the customer DPA's confidentiality clauses. Any future personnel will sign confidentiality agreements before access provisioning.
M4. Termination of access. Access is individually assigned and immediately revoked when a person leaves, including SSH, Supabase, GitHub, and Sentry access.
N1. Source control & review. Git on GitHub. There is no separate code reviewer today. A second-reviewer policy is planned.
N2. CI gates.
CI runs ESLint, tsc --noEmit, vitest suite, and next build on every PR and main-branch push. Failed CI blocks merge.
N3. Deployment.
A push to main builds an image in GitHub Actions; a deployment workflow then deploys that image to the application server and runs a smoke test with automatic rollback. Migrations are applied via a migration workflow with explicit operator approval and schema drift detection.
N4. Secret management.
Environment variables on the application server and GitHub Actions secrets (no secrets in the repository). Required variable names are documented without values. Pre-commit hygiene plus periodic gitleaks sweep across full git history is planned (internal record, available to customers under NDA on request).
N5. Bot protection on public endpoints. Cloudflare Turnstile on every public form; Upstash Redis rate limiting per IP + per identifier; honeypot fields on auth and scan endpoints.
O1. Application errors.
Sentry (@sentry/nextjs) — EU-hosted project, PII scrubbed, alerts to the operator's pager email.
O2. Product analytics. PostHog EU Cloud, cookieless mode, no cross-site tracking. Used for funnel analysis; never shared with sub-processors.
O3. Audit / business event logs.
audit_log, events, ai_event_log, kc_events Postgres tables (described in §D4 above). Retention: 7 years for audit_log, 90 days for auth_attempts, 365 days for b2b_leads. Enforced by a weekly Sunday 04:00 retention task.
O4. Uptime monitoring.
Container healthcheck on /api/live plus the internal /api/health endpoint. Status page at /status (currently dev-internal; will be customer-facing pre-launch).
P1. Default retention.
b2b_leads): 365 days.audit_log: 7 years (NIS2 evidence floor).auth_attempts: 90 days.P2. Account deletion request.
Self-service /api/account DELETE purges the user record and cascades supplemental data within the constraints of legal retention. Operator-assisted deletion via DSAR intake (above). End-to-end SLA: 30 days.
P3. Source for these retention windows. Codified in the retention task and documented in the privacy notice.
Q1. Cyber liability insurance. In negotiation. Inger s.r.o. is in the process of evaluating cyber-liability and D&O policies (target €5–15k/year coverage). No policy is in force as of 2026-05-22. Customers requiring proof of coverage as a contracting precondition should request status before contract signature.
Q2. Contractual liability cap. As stated in the master Terms of Service / DPA, the standard cap is the greater of (a) twelve (12) months of fees paid by the customer in the twelve months preceding the event and (b) €5,000. Higher caps available on the Business tier by negotiation.
Q3. Excluded perils. Customer-side misuse, force majeure, and acts of third parties outside NISMap's reasonable control. See Terms § 6.
Q4. Financial soundness. Inger s.r.o. is a going concern with audited annual accounts filed with the Slovak Commercial Register. Most recent financial statement available under NDA for enterprise procurement review.
| Topic | Channel |
|---|---|
| Security inquiries, VSQ updates, custom questionnaires | [email protected] |
| Privacy, DSAR, DPA requests | [email protected] |
| Commercial / billing | [email protected] |
| Vulnerability disclosure | [email protected] (response within 5 business days) |
| Customer incident notification | The contact email on the customer's primary account |
| Version | Date | Change |
|---|---|---|
| 1.0 | 2026-05-22 | Initial publication (audit fix N6). |
This document supersedes any prior ad-hoc VSQ responses. Customers may rely on it for supply-chain due diligence under NIS2 Art. 21(2)(d), Art. 28-30 DORA, and Art. 28 and 32 GDPR supplier-assessment requirements.