1. Controller
The data controller for SolGuard is:
[ENTITY NAME — registration pending], Czech Republic
Contact: privacy@solguard.dev
2. Data we collect
We collect the following categories of personal and operational data:
| Category | Specific data | Source |
|---|---|---|
| Identity | GitHub user ID, GitHub username, email address | GitHub OAuth callback |
| Account | Subscription tier, billing contact email, Stripe customer ID | You / Stripe |
| Repositories | Repository URL, project name, selected branch | You |
| Source code (ephemeral) | Full repository clone — deleted after the scan completes | Git clone during scan |
| Scan findings | Vulnerability descriptions, severity scores, code excerpts (evidence), file paths, LLM reasoning steps | Generated during scan |
| Usage | Page views, feature interactions, scan counts | Analytics (see §9) |
| Support | Messages sent to hello@solguard.dev | You |
We do not store your source code. The cloned repository is held in an ephemeral per-scan container, analysed, and then permanently deleted. Only the findings and reasoning generated from the analysis are stored.
3. How data flows through the system
- GitHub OAuth — you authenticate via GitHub. We receive your GitHub user ID, username, and primary email. We do not receive your private repositories unless you explicitly grant that scope.
- Repository cloning — when you submit a scan, the worker clones your repository into an isolated, network-isolated container. The clone is deleted immediately after the scan pipeline finishes.
- Static analysis — cargo-clippy, cargo-audit, and Semgrep (11 custom rules) run deterministically on the cloned code inside the sandbox. No source code leaves the sandbox during this phase.
- LLM reasoning — code excerpts (not full files) are sent to Anthropic Claude to reason about potential vulnerabilities. Excerpts are transmitted over HTTPS and used solely to generate the findings for your report. Anthropic's API usage policies apply.
- Findings storage — vulnerability descriptions, severity scores, evidence excerpts, and LLM reasoning steps are stored in our PostgreSQL database. These are your security-sensitive findings, treated as confidential (see Terms of Service §3).
- PDF report — a PDF report is generated and stored in object storage (Cloudflare R2 or similar). Access is protected by a short-lived signed URL tied to your account.
- Notifications — completion and alert emails are sent via Resend. You may opt out at any time via the unsubscribe link in each email or via Settings → Notifications.
4. Legal bases (GDPR Art. 6)
| Processing purpose | Legal basis |
|---|---|
| Providing the scanning service (running scans, storing findings, generating reports) | Art. 6(1)(b) — performance of a contract |
| Authentication and account management | Art. 6(1)(b) — performance of a contract |
| Billing and subscription management | Art. 6(1)(b) — performance of a contract; Art. 6(1)(c) — legal obligation (invoicing) |
| Transactional emails (scan completion, alerts) | Art. 6(1)(b) — performance of a contract |
| Product analytics and performance monitoring | Art. 6(1)(f) — legitimate interests (product improvement), subject to opt-out |
| Fraud prevention and abuse detection | Art. 6(1)(f) — legitimate interests |
5. Subprocessors
We use the following third-party subprocessors. All are bound by data processing agreements (DPAs) or covered by adequacy decisions / SCCs where required.
| Processor | Purpose | Location |
|---|---|---|
| GitHub (Microsoft) | OAuth authentication, repository access | USA (SCCs) |
| Stripe | Payment processing, subscription billing | USA (SCCs) |
| Resend | Transactional email delivery | USA (SCCs) |
| PostHog | Product analytics (EU-hosted instance) | EU (eu.posthog.com) |
| Anthropic | LLM reasoning over code excerpts during scans | USA (SCCs) |
| Cloudflare | CDN, DDoS protection, R2 object storage (PDF reports) | Global (SCCs) |
| Railway / Fly.io | Application hosting and infrastructure (when live) | USA (SCCs) |
We will notify you of material changes to this subprocessor list by updating this policy and, where required, by email.
6. Retention
| Data | Retention period |
|---|---|
| Cloned source code | Deleted immediately after scan completion |
| Scan findings, code excerpts, reasoning steps | 12 months from scan date (default; configurable on Pro/Enterprise) |
| PDF reports (object storage) | 12 months from generation date |
| Account data (identity, billing) | Duration of account + 30 days after deletion |
| Anonymised aggregate analytics | Indefinitely (no personal data) |
You can request early deletion of your account and associated data at any time via Settings → Danger Zone or by emailing privacy@solguard.dev. See §8 for the full list of your rights.
7. International transfers
SolGuard is operated from the Czech Republic (EU). Several subprocessors (GitHub, Stripe, Resend, Anthropic, Railway/Fly.io) are based in the United States, which does not have an EU adequacy decision for general commercial data transfers.
We rely on Standard Contractual Clauses (SCCs — Commission Implementing Decision (EU) 2021/914) as the transfer mechanism for personal data sent to these processors. Copies of the applicable SCCs are available on request.
PostHog analytics traffic is routed to the EU-hosted instance (eu.posthog.com) and does not leave the EEA.
8. Your rights
Under the GDPR you have the following rights with respect to your personal data:
- Access (Art. 15) — request a copy of the data we hold about you.
- Rectification (Art. 16) — correct inaccurate data.
- Erasure / Right to be forgotten (Art. 17) — delete your account and all associated personal data. You can do this yourself via Settings → Danger Zone → Delete account in the dashboard, or by emailing us.
- Restriction (Art. 18) — restrict processing in certain circumstances.
- Portability (Art. 20) — receive your data in a structured, machine-readable format.
- Objection (Art. 21) — object to processing based on legitimate interests (e.g. analytics).
- Withdraw consent — where we rely on consent, you may withdraw it at any time without affecting prior processing.
To exercise any of these rights, email privacy@solguard.dev. We will respond within 30 days. You also have the right to lodge a complaint with your local supervisory authority (in the Czech Republic: Úřad pro ochranu osobních údajů (UOOU)).
9. Analytics & telemetry
We use PostHog (EU-hosted) for product analytics. PostHog receives your user ID, subscription tier, and anonymised usage events (page views, feature interactions). We do not send your email address to PostHog's identify API.
You can opt out of analytics at any time via Settings → Privacy or by emailing privacy@solguard.dev. Opting out does not affect the service.
We do not use tracking cookies for advertising. Session-management cookies are strictly necessary for authentication and are not subject to consent requirements.
10. Security measures
We apply the following technical and organisational measures:
- All data in transit encrypted via TLS 1.2+.
- Per-scan network-isolated containers — scanned code cannot make outbound network calls.
- Short-lived signed URLs for report downloads (15-minute expiry).
- JWT-based authentication with rotating refresh tokens.
- Findings stored as confidential security data, visible only to the account owner.
11. Children
SolGuard is directed at professional software developers and is not intended for children under 16. We do not knowingly collect personal data from anyone under 16.
12. Changes to this policy
We will update the “Last updated” date and, for material changes, notify registered users by email at least 14 days before the change takes effect. Continued use of the service after the effective date constitutes acceptance of the revised policy.
13. Contact
For privacy questions, data requests, or complaints:
Email: privacy@solguard.dev
[ENTITY NAME — registration pending], Czech Republic