Skip to main content
Check that your .dino.yml is well-formed and passes all schema rules. Prints field-level error messages when validation fails. Runs without tenant context. No network calls to external services.

Usage

dino validate [flags]

Flags

FlagTypeDefaultDescription
--quietbooleanfalseSuppress success message on valid config

What It Checks

Validation runs the same Zod schema used internally by loadCliConfig(). One source of truth for config shape.
FieldValidation
endpointMust be a valid URL
protocolMust be "graphql"
formatMust be "json" or "markdown"
auth.enabledMust be boolean
auth.roleNon-empty string if provided
rateLimit.burstInteger between 1 and 500
autonomy.levelMust be "observe" or "enforce"
The schema uses .passthrough() — extra fields are allowed and ignored. You won’t get errors for unknown keys.

Examples

Valid config

dino validate
Config valid.

No config file

dino validate
No .dino.yml found — using smart defaults. Config is valid.
When no config file exists, Dino falls back to built-in defaults. This is not an error.

Invalid endpoint

# .dino.yml
endpoint: not-a-url
protocol: graphql
dino validate
Invalid .dino.yml config: endpoint: Invalid url

Invalid enum value

# .dino.yml
endpoint: https://api.example.com/graphql
protocol: rest
dino validate
Invalid .dino.yml config: protocol: Invalid enum value. Expected 'graphql', received 'rest'

Multiple errors

# .dino.yml
endpoint: not-a-url
format: xml
rateLimit:
  burst: 9999
dino validate
Invalid .dino.yml config: endpoint: Invalid url, format: Invalid enum value.
Expected 'markdown' | 'json', received 'xml', rateLimit.burst: Number must be
less than or equal to 500
All field-level errors are reported in a single message. Fix them all at once — no need to re-run between each fix.

Config Search Locations

dino validate uses cosmiconfig to find your config:
FileFormat
.dino.yml / .dino.yamlYAML
.dinorcJSON or YAML
.dinorc.json / .dinorc.yaml / .dinorc.ymlJSON / YAML
package.json ("dino" key)JSON
JavaScript config files (.js, .ts, .cjs, .mjs) are blocked for security and will be ignored.

Exit Codes

CodeMeaning
0Config is valid, or no config file found (defaults apply)
1Validation error — one or more fields failed schema checks