Exodocs connects to your code repositories, documentation hub, and notification channels. Here is exactly what we access, how we protect it, and what we never do.
Last updated April 2026 — reflects current production implementation
Your integration credentials are encrypted in our database using AES-256 column-level encryption. A database dump reveals only ciphertext.
Exodocs never writes to your repositories or documentation pages (unless you explicitly enable inline annotations). We only read what we need to compute freshness scores.
We never store your source code. We store file paths and commit metadata only. Git diffs are fetched temporarily for AI analysis and never persisted to our database.
Exodocs connects to three categories of external service on your behalf: your code repository, your documentation hub, and your notification channel. Here is the precise scope of what we access in each — nothing more.
We apply encryption at multiple layers. All network traffic uses TLS. All integration credentials use column-level database encryption, which provides stronger guarantees than disk-level encryption alone.
401 Unauthorized response. This prevents spoofed webhook events from affecting your freshness scores.We store the minimum data needed to compute documentation freshness. We have made deliberate technical decisions to avoid storing sensitive information.
| Data | Stored? | Details |
|---|---|---|
| Documentation page title | ✅ Yes | Cached title used for alert messages and the dashboard. Refreshed on sync. |
| Documentation page last-edited timestamp | ✅ Yes | Used to detect when a human has updated the document and reset the freshness score. |
| Documentation page content (text) | ⏱ Cached 24h | Plain text extracted from page blocks is cached for AI analysis. It is never written to our persistent database and expires after 24 hours. |
| Commit SHA, message, author | ✅ Yes | Stored to power the staleness event log and alert messages. |
| GitHub changed file paths | ✅ Yes | Stored as a JSON array. Used to match commits against your page-code mappings. |
| Repository file tree | ⏱ Cached 24h | Repository file tree cached for AI mapping suggestions. Never stored in persistent database. |
| Git diff / source code | ❌ Never | Diffs are fetched temporarily for AI drift analysis and discarded immediately. They are never written to disk or database. |
| File contents | ❌ Never | We store file paths only, never file contents. Exodocs does not index or read your source code. |
| Your integration credentials | ✅ Encrypted | Stored in AES-256 encrypted columns. Never logged, never sent to third parties, never visible in plaintext to any Exodocs team member. |
| Notification channel messages | ❌ Never | We post alerts to your notification channel via an outbound webhook. We have no ability to read your channel messages. |
Exodocs uses role-based access control within every organisation. Your data is isolated at the database level — no organisation can access another's data by design, not just by policy.
Full control. Manages integrations, billing settings, invites members, can delete the organisation.
Manages pages, repos, and mappings. Can update integration settings. Cannot manage billing or delete the org.
Read access to the dashboard and staleness events. Cannot change settings or manage mappings.
Exodocs is hosted on managed infrastructure with automated backups, monitoring, and zero-downtime deployments. We do not manage physical servers.
These are the third-party services that may process your data as part of the Exodocs service. We select sub-processors carefully and require that they maintain appropriate security standards.
| Service | Purpose | Data processed | Location |
|---|---|---|---|
| Railway / Render | Application hosting & database | All application data including encrypted credentials | USA |
| Upstash Redis | Ephemeral caching | Documentation page content (24h TTL), repository file trees (24h TTL) | USA |
| Anthropic | AI drift analysis & mapping suggestions | Commit messages, file paths, documentation page text (where AI features are enabled) | USA |
| GitHub | Code repository webhooks & API | Commit events, file trees, diffs (read-only, where connected) | USA |
| Notion | Documentation hub reads | Page titles, timestamps, block content of connected pages (where connected) | USA |
| Slack | Outbound alert delivery | Alert message content posted to your designated channel (where connected) | USA |
We take security reports seriously and respond quickly. If you discover a vulnerability in Exodocs, please tell us privately before disclosing it publicly — we will work with you to fix it.
Email us with a description of the issue, steps to reproduce, and any relevant evidence. We respond within 48 hours.
We do not currently operate a paid bug bounty programme. We appreciate responsible disclosures and will acknowledge your contribution publicly if you would like that.
Please do not test against other customers' accounts or data. If you need a test environment, contact us and we will provide one.