Skip to main content

Config-First Workflow

Verdictan uses declarative config. For most teams, policy-config.yaml is the primary artifact. It defines routing, policy evaluation, secret references, and tests. It also defines the runtime behavior that you verify in the product.

The working rule

Use this default structure:

  • If a change changes runtime AI behavior, put it in policy-config.yaml.
  • If a change stores secret material, reference it from config with secret_key_ref.env or secret_key_ref.store.
  • If a change versions, reviews, or rolls out config, use the console or CLI.
  • If a change changes users, teams, SSO, tokens, budgets, or billing controls, use the related product surface. Do not put the change in runtime policy.

Minimal loop

verdictan init
verdictan policy lint --file policy-config.yaml
verdictan policy test --json
export VERDICTAN_API_URL="https://api.verdictan.com"
export VERDICTAN_API_TOKEN="vdt_your_gateway_runtime_token"
verdictan gateway run --listen 127.0.0.1:41002 --agent docs-demo --policy-config policy-config.yaml

This loop is the core product workflow. Write the config, validate it, and run it. Use the measured behavior to make it better.

What belongs where

TaskPrimary surfaceWhy
Runtime policy behavior, routing, fallbacks, rate limits, and audit settingspolicy-config.yamlThis is the source of truth for request-time behavior
Provider credentials for local developmentEnvironment variables referenced by secret_key_ref.envKeeps credentials out of YAML
Provider credentials for centrally managed runtimesStored secrets referenced by secret_key_ref.storeKeeps the same config portable across environments
Version history, review, rollout, and rollbackConfigurations in the console or the matching CLI flowThese workflows move the same YAML safely
Runtime verification and investigationSet since when you use verdictan events or GET /v1/events for request outcomes. Also use the applicable Gateways, Inbox, Trail, Usage, or capture-enabled History surface.Each command, API, or console surface proves a different part of live behavior. History contains session content only if capture is enabled.
Team access, SSO, tokens, budgets, and billingThe matching settings or billing surfacesThese are other product controls, not request-time policy

For a single environment:

ai-governance/
├── policy-config.yaml
├── tests/
│ ├── allows-normal-request.yaml
│ ├── blocks-prompt-injection.yaml
│ └── redacts-pii.yaml
└── README.md

For multiple environments:

configs/
├── staging/policy-config.yaml
├── production/policy-config.yaml
└── regulated/policy-config.yaml

tests/
├── staging/
├── production/
└── regulated/

Declare each deployed environment. Do not use hidden inheritance or manual runtime drift.

Start with these pages

  1. Quickstart
  2. Declarative Config Reference
  3. Policies Overview
  4. Configurations
  5. verdictan gateway run

Next steps