Security
Last updated: 2026-06-20
Seekmodo is built around per-tenant isolation, signed requests, and minimal data retention. Below is the live list of controls.
Network & transport
- TLS 1.3 enforced on all customer-facing endpoints (
seekmodo.com,mcp.seekmodo.com). - HSTS with
max-age=31536000; includeSubDomains; preload. - Origin firewall: search-index and database ports are bound to private interfaces only — never reachable from the public internet.
- Cloudflare in front of all customer-facing names; WAF managed rules on for OWASP Top 10.
Authentication
- Account passwords stored as bcrypt cost 12. We require ≥10 characters and one digit.
- Optional TOTP MFA with 10 single-use recovery codes.
- Session cookies are
HttpOnly,SameSite=Lax,Secure, signed with a rotatedAUTH_SECRET. - API requests carry an HMAC envelope (SHA-256 over
tenant\\nts\\nnonce\\nsha256(body)) with a 5-minute replay window. - Public key set served at
/.well-known/jwks.jsonfor plugin pairing.
Data handling
- Tenant data is logically scoped at every layer — your data and your shoppers' searches are never co-mingled with another tenant's at the application or database level.
- Backups encrypted with AES-256, retained 30 days.
- On account cancellation, all customer data is deleted within 30 days.
Operational
- Per-tenant rate limits (default: 30 req/min on Hobby, 600 on Starter, 1,500 on Growth, 6,000 on Scale).
- Audit log of every authenticated request (latency, status, tool, tenant) retained 30 days.
- Production deployments are pinned to a git SHA; the
/v1/healthendpoint reports deploy status.
Disclosure
Report a vulnerability to [email protected]. We acknowledge within 24 hours and aim to resolve high-severity issues within 7 days. See /.well-known/security.txt for the formal contact record.