Security
Effective date: 27 April 2026 · Last updated: 21 May 2026
How KnoMe is built and how it is operated.
KnoMe stores your personal knowledge in Supabase (PostgreSQL) with row-level security — each user’s data is isolated at the database level. The MCP server requires OAuth 2.0 Bearer tokens and validates Origin headers on every request. We do not hold SOC 2, ISO 27001, or comparable third-party certifications. The sections below describe what is in place today.
KnoMe is in beta. Do not store Social Security numbers, government-issued ID numbers, passwords, financial account credentials, medical records, or any data governed by HIPAA or equivalent laws.
1. Architecture
Two layers:
- Application layer. A FastAPI backend on Railway handles authentication, API requests, MCP connections, and OAuth flows. It holds account metadata, OAuth tokens (hashed), and audit records. It never stores the content of your entries in-process — all content lives in the database.
- Data layer. Supabase (PostgreSQL) stores all customer data with row-level security (RLS) policies enforced at the database level. Even an application-level bug cannot read another user's rows — the database rejects it.
2. Data isolation
All customer data is isolated by user_id using Supabase Row Level Security (RLS) policies enforced at the database level, independent of the application layer.
Rooms shared between users are governed by explicit permission records — sharing is always opt-in and can be revoked by the room owner at any time.
3. Encryption
- In transit. TLS 1.2+ enforced on all public endpoints. HTTPS required — HTTP connections are rejected at the CDN/edge layer.
- At rest. Supabase database is encrypted at rest by the platform.
- OAuth tokens. MCP access tokens are stored as SHA-256 hashes. The raw token is never persisted.
- Backups. Supabase automated backups are encrypted and retained per Supabase's published schedule.
We do not offer end-to-end encryption. KnoMe reads your content in cleartext so that AI assistants can access it. That is intrinsic to the product.
4. Authentication
- Sign-in: magic link (email) or OAuth via Google or GitHub. No passwords stored.
- Sessions: Supabase short-lived JWTs stored in browser local storage. Verified on every request server-side.
- MCP access: OAuth 2.0 with PKCE (S256). Users authorise AI clients via an interactive consent flow — credentials are never shared with the AI provider.
- Operator access: restricted to designated team members.
5. MCP server security
Three independent layers protect every MCP request:
6. Operational practices
- Releases. Every production release is deployed from the main branch via Railway and monitored after deploy.
- Secrets. All secrets (database credentials, JWT signing key, API keys) are environment variables managed by Railway — never committed to the repository.
- Dependency scanning. Automated vulnerability scanning on every dependency update.
- No persistent request logs. We do not log request or response bodies. Only metadata (path, status, duration, anonymised user ID) is retained.
No 24/7 on-call rotation today. This will be noted in any incident communication.
7. Logging and monitoring
- Application logs. HTTP metadata only — method, path, status, duration, anonymised user ID. No request or response bodies. Ephemeral.
- Analytics and session replay. PostHog events for product usage and session recordings, associated with user email. No content is included. See Privacy for retention details.
- Audit log. MCP tool calls (list, get, create, update) are recorded in the database per entry with the token that made the call.
8. Risks intrinsic to this product
- Prompt injection. KnoMe returns your stored content to AI assistants. If that content contains text designed to redirect the AI, the assistant may act on it. Scope your MCP permissions conservatively (read-only where possible).
- AI provider side. Content passed to an AI assistant travels to that provider under their data-handling policy. We don't control retention or access on that side. Default: Anthropic (Claude). You choose which AI client you connect.
9. Compliance status
10. Vulnerability handling
Email meet@m1factory.comwith a description and steps to reproduce. Expect acknowledgement within 48 hours and a fix or written plan within 30 days for confirmed high-severity issues. Please do not run automated scans against production or access other users’ data.
11. Incident response
On a confirmed incident affecting customer data:
- Contain
- Assess scope and affected accounts
- Notify affected users by email within 72 hours
- Remediate
- Post-mortem, shared with affected users and summarised publicly if appropriate
No incident affecting customer data has occurred to date.
12. Changes to this page
Material changes will be communicated by email. The date at the top reflects the most recent version.
13. Contact
Security questions or vulnerabilities: meet@m1factory.com