SDODS
Reference

Tokens and keys

Every credential SDODS can use, what it unlocks, and whether it is mandatory.

What you'll learn

Which environment variables and CLI logins SDODS reads, what each one enables, and the exact requirement level. Run sdods doctor for the same table with live status.

Nothing is mandatory for the platform itself: running suites, screenshots, HAR replay, SQLite, the MCP server over stdio, sdods analyze, lint, reports and the dashboard all work with no credential at all. SDODS's own API tokens are self-issued and free.

Requirement levels

LevelMeaning
mandatoryrequired only when the feature next to it is used
one-ofagents need any one of the rows in the group
optionalturns on an integration

Agents (one-of)

CredentialAdapterHow to get itBilling
ANTHROPIC_API_KEYclaudeconsole.anthropic.comAnthropic, per token
Claude Code loginclaude-codenpm i -g @anthropic-ai/claude-code && claude loginyour Claude subscription (or a key the CLI holds)
Codex logincodexnpm i -g @openai/codex && codex loginyour ChatGPT plan (or OPENAI_API_KEY)
OPENAI_API_KEY (+ OPENAI_BASE_URL)openai-compatibleprovider console; OPENAI_BASE_URL for Azure, vLLM, LM Studiothe provider
nothingollamaollama serve && ollama pull qwen2.5-coder:7bnothing — the model runs on your machine

Auto-detection order when nothing is set: ANTHROPIC_API_KEY → claude CLI on PATH → codex CLI on PATH → OPENAI_API_KEY → a local Ollama → fake. --dry-run and --adapter fake never need a credential.

Platform

VariableRequirementUsed by
SESSION_SECRETmandatory for sdods servesession cookie signing (≥ 32 characters; openssl rand -hex 32)
DATABASE_URLmandatory when DB_DRIVER=postgresKysely Postgres dialect; SQLite needs nothing
SQLITE_PATHoptionalSQLite file (default .sdods/sdods.db)
SDODS_TOKEN (+ SDODS_SERVER_URL)optional, freeMCP over HTTP (/mcp), sdods report ingest --server; created with sdods tokens create --user <name> --scopes …
AUTH_DISABLED=1optional, development onlymakes every request a local admin

Integrations (optional)

VariableUsed by
GITHUB_TOKENcheck runs, PR comments, issue creation (integrations.github.tokenEnv)
JIRA_EMAIL + JIRA_API_TOKENJira issues, links, transitions (integrations.jira.emailEnv/tokenEnv)

Project YAML stores only the variable names; values stay in .env.<env> or the shell.

Uploading results from CI

To send results from a pipeline to a hosted SDODS server, set SDODS_SERVER_URL and SDODS_TOKEN as CI secrets (created with sdods tokens create). Without them the upload step is skipped.

Checking status

bun run sdods doctor            # rows cli:claude, cli:codex and a "Tokens and keys" section
bun run sdods doctor --json     # { checks: [...], tokens: [{ name, requirement, present, ... }] }

Next steps

Using an AI coding agent? Install SDODS:

Install the SDODS plugin in Claude Code: skills, subagents, commands and the MCP server.

  1. /plugin marketplace add YarlisAISolutions/sdods-skills
  2. /plugin install sdods@sdods
Learn more about using SDODS with AI tools

On this page