How we protect
your Datadog and your data
Sunshine stores your Datadog keys, reads your telemetry and runs AI models over it. This page says exactly how, so your security team can answer its questionnaire without opening a ticket.
Updated on October 7, 2026
Filling in a security questionnaire?
Each common security-questionnaire topic points to the section that answers it.
| Questionnaire topic | Where the answer is |
|---|---|
| Hosting and data residency | Security architecture |
| Encryption in transit and at rest | Security architecture |
| Storage of third-party credentials | Security architecture |
| Authentication, MFA and SSO | Security architecture |
| Customer data segregation | Security architecture |
| Vendor staff access | Security architecture |
| Audit logging | Security architecture |
| Secure development and vulnerability management | Security architecture |
| Division of responsibilities | Shared responsibility |
| Subprocessors and international transfer | Subprocessors |
| Use of AI and data sent to models | AI data controls |
| Data retention and deletion | Data classification and retention |
| Personal data in logs (LGPD, GDPR) | Data classification and retention |
| Certifications, pentest and DPA | Compliance artifacts |
Security architecture
What holds today, in production, for every organization.
- Hosted in Brazil. The application runs on Magalu Cloud, region br-se1 (Southeast Brazil), and the database on Supabase, region sa-east-1 (São Paulo). The third parties that receive data outside Brazil are in the subprocessor list.
- Every connection uses HTTPS, with HSTS. Sunshine's calls to the Datadog API are HTTPS too, and only to the Datadog site you picked from the list of official sites. At rest, the database is encrypted by its provider (Supabase), and credentials get a second layer in the vault.
- Your Datadog keys (API key and application key) are kept encrypted in the database vault (Supabase Vault), and only the backend reads them. Once saved, they never go back to a browser — not yours, not our staff's: screens show only the last few characters. Integration tokens (GitHub, Jira, Linear) follow the same rule.
- Each organization sees only its own data. On every request, the backend checks that the user has an active membership in the organization being asked for. The database has row-level security (RLS) on every table and denies direct access to the public roles.
- Sign-in with email and password always requires a second factor (authenticator app or emailed code); passwords are stored with bcrypt, and an account locks for 15 minutes after 5 wrong attempts. You can also sign in with Google, under the second factor of your Google account. The session lives in an HttpOnly, Secure cookie. SSO/SAML is not available yet.
- Three roles per organization: owner, admin and member. Only owners and admins register credentials, approve actions that write to your Datadog account and see the audit log.
- Sunshine writes to your Datadog account in only two cases: when an owner or admin approves an action (a proposal in the queue, a tag edit), or when an automation you explicitly turned on acts within the limit you set. Automations start in simulation mode, and real execution must be enabled separately. Write scopes on the application key are optional: without them, Sunshine only reads.
- Sunny's operations team is a restricted list of accounts. For support, it opens your organization's screens in observer mode, read-only: the system refuses any write in that mode. The team's administrative actions (plan, enabled features, archiving) are recorded in our audit log.
- Your organization's audit log, visible to owners and admins, records sign-ins, organization changes, members, roles and invitations, and every creation, change or removal of the Datadog credential.
- Scheduled jobs authenticate with short-lived OIDC tokens issued by GitHub Actions, bound to the repository, the workflow and the job.
- The image is built in CI and released by tag, and application secrets come from a secrets manager. Every PR and deploy runs static analysis (Semgrep), a secrets and misconfiguration scan (Trivy), an image scan (Trivy) and a passive application scan (OWASP ZAP). Findings are reviewed; today they do not block the deploy yet. Dependencies are updated weekly (Dependabot).
- The application's own telemetry (traces, metrics and error logs) goes to an observability instance run by Sunny, on the same cloud in Brazil. It may contain a user's email in authentication errors and the addresses of Datadog API calls.
Shared responsibility
Security here is split. What is ours, and what is yours:
| Topic | Sunny | You |
|---|---|---|
| Datadog credentials | Keep them in the vault, never send them back to a browser, use them only against the Datadog site you chose. | Create a dedicated application key with only the scopes of the features you use; revoke it in Datadog when you leave. |
| Writes to your Datadog account | Write only on owner/admin approval or through an automation you turned on; show what a log proposal affects before it is approved; record every write and allow reverting queue actions. | Decide who is owner and admin; review each proposal before approving it. |
| Access to Sunshine | Second factor on password sign-in, lockout on repeated failures, secure session cookie, isolation between organizations. | Invite and remove members; keep MFA on the Google accounts used to sign in; give each person the smallest role that works. |
| Personal data in your logs | Redact the stored example and send only structure to the model. | Keep personal data out of your logs; use Datadog's Sensitive Data Scanner where you have it. |
| AI features | Measure each model before using it, send only structure, allow turning each feature off per organization. | Ask us to turn a feature off if your policy does not allow sending log structure to a third-party model. |
| Leaving | Delete the organization's data when you ask. | Revoke the keys in Datadog and request deletion through the contact below. |
Subprocessors
Third parties that process data so Sunshine can work.
| Vendor | Purpose | Data | Location |
|---|---|---|---|
| Magalu Cloud | Servers for the application, its cache, message delivery and internal telemetry | All data the application processes | Brazil (br-se1, Southeast) |
| Supabase | Database and credential vault | Accounts, organizations, Datadog usage and cost, log structure, findings, encrypted credentials | Brazil (sa-east-1, São Paulo) |
| Anthropic | Language models (Claude) behind the AI features | Only the structure described under AI data controls | United States |
| Email (including Resend) and SMS delivery providers | Deliver transactional email (sign-in, invitations, alerts) and SMS alerts | The recipient's email or phone number and the message text | Full list and regions on request |
| Sign-in with Google (optional) and Google Analytics on the public website | Name and email of the Google profile, at sign-in; pages visited on the public website, never inside the app | United States | |
| Gravatar (Automattic) | Profile picture, when you have not uploaded one | A hash of your email, requested by your browser | United States |
| GitHub | Triggers the scheduled jobs | The summary of each run (counts and organization identifiers) | United States |
Not on the list, because you are the one who connects them: Datadog itself, and Slack, GitHub, Jira and Linear when you set up alerts or ticket creation. In those cases the data goes to your company's own account in that service.
AI data controls
The model is never the detector. Patterns, costs, findings and proposals are computed by deterministic code; the model only names, explains or triages what the code found, and no automatic decision reads what it says. Turning an AI feature off leaves the rest of the product working.
- Provider: Anthropic (Claude models), through its commercial API. There is no other AI provider.
- Never sent to the model: the real log message, attribute values, your organization's name or identifier, monitor names and messages, cost, credentials.
- What is sent is structure: the service, the status, the log template with emails, IPs, UUIDs, numbers and identifiers replaced by placeholders, and field names. Before it leaves, the value of any field with a sensitive name (password, token, tax ID, email…) and any known secret shape (cloud keys, JWT…) become placeholders.
- From the model, the database keeps only a value from a closed list (the label or the verdict), with the model and prompt version. Explanatory text lives only in the cache. Requests and responses are not logged.
- Each feature is measured before it reaches you: a synthetic example set, reviewed blind by a person, and a CI gate that fails on a quality drop. The product refuses to use a model that gate has not measured.
- Each feature can be turned off for your organization alone: ask through the contact at the end of this page. It applies from the next run.
| Feature | What goes to the model | What is stored | Default |
|---|---|---|---|
| Log pattern label Says what each of the most expensive log patterns is (health check, business event, debug…). Runs daily. claude-opus-5 | Service, status, masked log template and field names of the most expensive patterns. | The label (one of eight) and its confidence. | On; can be turned off per organization |
| Blast-radius verdict For each monitor or dashboard that reads a proposal's logs, says whether it is affected. On demand. claude-opus-5-5 | The resource type and its queries, masked; the rule of the change. | Nothing in the database; the verdict stays in the cache. | On wherever the Actions queue is on; can be turned off per organization |
| Blast-radius summary Explains in plain text what changes for the affected resources. On demand, after the verdict. claude-opus-5-5 | The same as the verdict, plus the verdict. | Nothing in the database; the text stays 24 hours in the cache. | On wherever the Actions queue is on; can be turned off per organization |
| Sensitive-data triage Says whether a tax ID, card number or credential found in the logs is real or a false positive. claude-opus-5-5 | The class, the field path, key names and the shape of the value (length, digits), never the value. | The verdict (real, false positive or unclear). | On; can be turned off per organization |
| Quote import Pre-fills the contract from the Datadog order-form PDF. Run by the Sunny team, with every line reviewed. claude-opus-4-8 | The order-form PDF. | Only the reviewed lines (product, quantity, unit). The PDF is not stored, and prices are typed in by hand. | Off |
| Summary judge Measures the quality of the summary. claude-sonnet-5-5 | Synthetic examples only, in CI. Never customer data. | The quality report, in the repository. | CI only |
What masking does not catch, and why each feature can be turned off: a person's name in free text ("order from Maria Silva") and a password with no known shape outside a field with a sensitive name. If your policy does not accept that risk, ask us to turn the feature off.
Data classification and retention
What we keep, where, and for how long.
| Class | What it is | Where | How long |
|---|---|---|---|
| Account | Name, email, password (bcrypt hash), second factor, roles | Database (Supabase) | While the account exists |
| Integration credentials | Datadog keys; GitHub, Jira and Linear tokens | Vault (Supabase Vault), encrypted | Until you remove them in the credentials screen |
| Usage and cost | Usage, billing and cost of your Datadog account, by day and by dimension | Database and cache | While the organization exists; in the cache, from 3 hours to 90 days |
| Log structure | Log patterns: masked template, field names, counts, and one example per pattern, redacted wherever there is sensitive data | Database | While the organization exists |
| Log samples | The events the scan reads to find the patterns | Cache | 24 hours |
| Findings and actions | Findings, proposals, approvals and what was written to your Datadog account | Database | While the organization exists |
| AI output | Labels and verdicts (values from a closed list); explanatory text | Database (labels and triage); cache (text and on-demand verdicts) | Labels and triage while the organization exists; in the cache, 24 hours (text) to 30 days (triage) |
| Audit | The organization's audit log | Database | While the organization exists |
Personal data in your logs. A deterministic detector checks the shape of every candidate before calling it sensitive (Luhn for cards, check digits for Brazilian CPF and CNPJ, mod-97 for IBAN, published credential formats) and redacts the log example before storing it: <CPF>, <CARD>, <EMAIL>, <SECRET>. Of what it finds, only the structure is stored: class, field and count, never the value. One exception, named: the query of an "accidental debug statement" finding keeps the literal snippet of the log line that defines it; it stays in your organization's database and never goes to the model.
Deletion. Today nothing is deleted on a schedule: data stays while the organization exists. An owner can delete the organization in the app, which removes its data from the database. To also remove credentials and cache, or to receive a copy of your data, write to the contact below.
Compliance artifacts
Sunshine does not have a formal certification (SOC 2, ISO 27001) or a third-party pentest report yet. What exists is on this page, and the rest is available on request:
- We answer your company's security questionnaire.
- We sign a data processing agreement (DPA) with you.
- We hold a technical architecture session with your security team.
To request any of these, or to request deletion, a copy of your data or turning an AI feature off: contato@sunnysystems.com.br
Found a vulnerability? Write to the same address with "security" in the subject. We will reply and agree on disclosure with you.
Your next Datadog bill doesn't have to be a surprise
Connect your Datadog account in 2 minutes. Start seeing costs today and let the co-pilot act on them.