Skip to main content

Dino runs locally

Your API data stays on your machine. The Dino CLI is a local process that connects to your API endpoint, runs tests, and writes results to your filesystem. No data is sent to Dino servers. The only external call is the optional AI reasoning feature, which calls the Anthropic API. Even then, all responses are stripped of secrets before they are sent.

No secrets in config

.dino.yml ever contain API keys or tokens. Only environment variable names are referenced.
This is enforced by design (INV-1), and the buildConfigYaml function is verified to reject any input containing key material.

LLM Redaction

When AI reasoning is enabled, all API responses are stripped of sensitive data before being sent to the LLM provider:
  • API keys and tokens
  • Bearer tokens and JWTs
  • Connection strings
  • Credentials in any format
The redaction layer runs automatically. You don’t configure it - it’s always on when AI features are used.

SSRF Protection

Dino validates every endpoint before connecting. The SSRF guard blocks: We found and fixed 7 SSRF vulnerabilities in our own security audit (issues #855-#859, #871, #874). The fixes include IP range blocking, DNS rebinding prevention, and runtime DNS validation on every outbound request.

Supply Chain Security

Executable Configs Blocked

Only YAML and JSON config files are loaded. .js, .ts, .cjs, .mjs Configs are rejected. This prevents code injection via supply-chain attacks on the config file.

Tenant Isolation

Multi-tenant architecture with strict boundaries:
  • Each tenant has its own config file (tenants/<id>.yml)
  • No cross-tenant data access
  • Tenant credentials never appear in shared config or output
  • Scan results are scoped to the requesting tenant

CI Security

13 automated checks run on every PR:
  • Enforcement integrity verification (HMAC-SHA256 checksums)
  • Protected file gate (CODEOWNERS-enforced)
  • Secrets scanning
  • SonarQube analysis with custom quality gate
  • Dependency audit
See Compliance for our SOC 2 and GDPR posture.