Settings

System configuration, database connections, theme customization, and agent registry — all managed from a single page.

Why Use Settings?

The Settings page is your control center for connecting AXIS to your infrastructure. Instead of editing YAML files manually for every change, the Settings page gives you a live view of the current configuration and lets you verify connections at a glance.

🔌 Backend Connection

Verify the API server is reachable, check the version, and see the configured endpoint URL.

🎨 Theme & Branding

View the active color palette and branding loaded from backend config. White-label ready.

🗄 Data Management

Export your settings or clear local storage to reset cached evaluation data and UI state.

Config File Reference

Understand the YAML config files that power database connections, agents, and themes.

Quick Start

Here is the recommended workflow when setting up AXIS for the first time:

1

Run make setup

Copies all .yaml.example templates to active config files in backend/config/. This gives you a working baseline.

2

Edit YAML config files

Fill in database credentials, theme colors, and agent definitions in the YAML files. Environment variables can override any value.

3

Start the backend & frontend

Launch with uvicorn app.main:app --port 8500 and npm run dev. The backend reads config on startup.

4

Open the Settings page

Navigate to /settings to confirm the backend is connected, the theme loaded, and everything looks right.

💡 Tip
Config files in backend/config/ are gitignored. Only .example templates are tracked, so your credentials never end up in version control.

Backend Connection

The first card on the Settings page shows the API endpoint URL and a live connection status indicator. AXIS checks the backend /health endpoint on page load.

localhost:3500/settings

Settings

System configuration and status

1
Backend Connection
API server status and endpoint
API Endpoint
http://localhost:8500
Connected v1.2.0
Retry
Set via NEXT_PUBLIC_API_URL environment variable. Defaults to http://localhost:8500.
2
Theme
Active color palette from backend configuration
Active Palette
Professional Blue
Colors
Primary
Light
Dark
Soft
Gold
Silver
3
Data Management
Local storage and cached data
Export Settings
Clear Local Storage
Clearing local storage removes all cached evaluation data, filter preferences, and UI state.
4
The Settings page showing Backend Connection status, Theme palette preview, and Data Management actions.
1
Page Header — Gear icon with title and subtitle. Consistent with the AXIS page header pattern across all pages.
2
Backend Connection — Shows the API endpoint URL, a live status indicator (green = connected, red = unreachable), the backend version, and a Retry button.
3
Theme Card — Displays the active palette name and color swatches (Primary, Light, Dark, Soft, Gold, Silver). Read-only — configured via backend YAML or env vars.
4
Data ManagementExport Settings downloads a JSON snapshot. Clear Local Storage removes all cached data, filter preferences, and UI state — with a confirmation dialog.

Database Configuration

AXIS supports four independent database connections, each configured through a dedicated YAML file. All databases are optional — the platform works offline with CSV uploads alone.

DatabaseConfig FilePurposeDefault Port
Eval DBeval_db.yamlEvaluation datasets and results5432
Monitoring DBmonitoring_db.yamlProduction observability metrics5432
Human Signals DBhuman_signals_db.yamlHuman-in-the-loop feedback data5432
KPI DBkpi_db.yamlAgent business KPI time-series5432

Connection Fields

Each database config shares the same base connection fields:

FieldTypeDefaultDescription
urlstringnoneFull PostgreSQL connection URL (overrides individual fields)
hoststringnoneDatabase hostname or IP address
portint5432Database port
databasestringnoneDatabase name
usernamestringnoneAuthentication username
passwordstringnoneAuthentication password
ssl_modestringpreferSSL mode: disable, prefer, require
auto_loadboolfalseAuto-load data from this database on startup
ℹ️ Info
If a url is provided, it takes precedence over the individual host/port/database fields. Format: postgresql://user:pass@host:5432/dbname.

Example YAML

Here is a minimal eval_db.yaml configuration:

eval_db:
  enabled: true
  auto_load: false
  host: db.example.com
  port: 5432
  database: evaluations
  username: axis_reader
  password: s3cret
  ssl_mode: require
  dataset_query: "SELECT * FROM evaluation_dataset"
  results_query: "SELECT * FROM evaluation_results"
  query_timeout: 60
  row_limit: 10000

Sync Engine (DuckDB)

AXIS uses an embedded DuckDB store as a local analytics cache. The sync engine pulls data from configured PostgreSQL databases and stores it locally for fast querying.

SettingDefaultDescription
enabledtrueEnable/disable the DuckDB store
sync_modestartupstartup = sync on boot; manual = sync only via API call
pathdata/local_store.duckdbFile path for the DuckDB database
sync_chunk_size10,000Rows per batch during sync
max_sync_rows2,000,000Safety limit — warns and stops if exceeded
query_concurrency8Max concurrent DuckDB read queries

To trigger a manual sync, call the API endpoint:

POST /api/store/sync
⚠️ Warning
The max_sync_rows safety limit prevents runaway syncs. If your dataset exceeds 2M rows, increase this value in duckdb.yaml and ensure you have sufficient disk space.

Thresholds

AXIS uses numeric thresholds to determine pass/fail status and color-code metrics across dashboards. These are defined in the backend config.py and the monitoring YAML config.

Global Thresholds

ThresholdDefaultColorMeaning
GREEN ≥ 0.7 Green Good — metric is performing well
PASSING ≥ 0.5 Yellow Acceptable — metric passes but needs attention
RED < 0.3 Red Failing — metric requires immediate action

Monitoring Thresholds

The monitoring database config supports per-source threshold overrides:

monitoring_db:
  thresholds:
    default:
      good: 0.7
      pass: 0.5
    per_source:
      alpha_bot:
        good: 0.8
        pass: 0.6
      beta_bot:
        good: 0.75
        pass: 0.55

Per-source thresholds let you set stricter standards for critical agents while keeping defaults for the rest.

Feature Flags

Feature flags control which capabilities are available in the frontend. They are served by the /api/config/features endpoint and configured in the backend YAML files.

FlagConfig LocationDefaultEffect
eval_runner_enabled eval_db.yaml true Shows the Runner step in the evaluation pipeline UI
auto_load (eval) eval_db.yaml false Auto-loads evaluation data from database on startup
auto_load (monitoring) monitoring_db.yaml false Auto-loads monitoring data from database on startup
auto_load (kpi) kpi_db.yaml false Auto-loads KPI data from database on startup
sync_mode duckdb.yaml startup Controls DuckDB sync: startup or manual
💡 Tip
Set auto_load: true for databases you always want connected. Keep it false during development to avoid slow startup times when the database is unavailable.

Theme & Branding

AXIS is white-label ready. All branding strings and colors are configured through theme.yaml or environment variables — never hardcoded in the frontend.

Color Palettes

Two built-in palettes are available, and you can define custom palettes in the YAML:

Sage Green (default)
Key: sage_green
Professional Blue
Key: professional_blue

Branding Fields

These text fields appear throughout the application — in the sidebar, hero section, reports, and page headers:

FieldDefault ValueUsed In
app_nameAXISSidebar logo, page titles, exports
taglineAI Evaluation PlatformSidebar subtitle, hero section
subtitleThe AI Evaluation StudioHero section secondary text
descriptionAgent X-ray Interface & StatisticsMeta descriptions, about sections
report_footerReport generated by AXIS AI Evaluation PlatformPDF/export report footers
# theme.yaml
theme:
  active: professional_blue
  branding:
    app_name: "MyCompany AI"
    tagline: "Internal Evaluation Platform"
    subtitle: "Quality Assurance Suite"
    description: "AI evaluation and monitoring for MyCompany"
    report_footer: "Generated by MyCompany AI Platform"
ℹ️ Info
The frontend reads branding from /api/config/theme via the useBranding() hook. Environment variables (e.g., AXIS_THEME_PRIMARY=#3D5A80) can override any YAML value at runtime.

Agent Configuration

The agent registry tells AXIS about the AI agents in your system. Agents appear in the SourceSelector dropdown and production dashboards. Configured in agents.yaml.

FieldRequiredTypeDescription
nameYesstringInternal identifier (must match source_name in data)
labelNostringDisplay name in the UI (defaults to name)
roleNostringAgent role description (e.g., "Customer Support")
avatarNostringPath to avatar image in /public/agents/
descriptionNostringShort description shown in tooltips
biographyNostringLonger narrative shown in detail views
activeNoboolWhether the agent appears in selectors (default: true)
# agents.yaml
agents:
  - name: alpha_bot
    label: Alpha Bot
    role: Customer Support
    avatar: /agents/alpha_bot.png
    description: Handles inbound customer requests
    active: true
  - name: beta_bot
    label: Beta Bot
    role: Order Processing
    avatar: /agents/beta_bot.png
    description: Manages order workflows end to end
    active: true
⚠️ Warning
The name field must exactly match the source_name values in your monitoring and KPI data. If they don't match, the agent won't appear in filtered views.

Config Files Reference

All configuration files live in backend/config/. Only .example templates are version-controlled. Run make setup to create your local copies.

FileRoot KeyPurposeLoad Order
theme.yaml theme: Color palettes, branding text, hero image settings YAML → env vars → defaults
agents.yaml agents: Agent registry (name, label, role, avatar) YAML → empty list
eval_db.yaml eval_db: Evaluation database connection and queries YAML → env vars → defaults
monitoring_db.yaml monitoring_db: Monitoring database, thresholds, anomaly detection YAML → env vars → defaults
human_signals_db.yaml human_signals_db: Human signals database connection YAML → env vars → defaults
kpi_db.yaml kpi_db: Agent KPI database, display config, per-source overrides YAML → env vars → defaults
duckdb.yaml duckdb: Local analytics cache: sync mode, limits, concurrency YAML → defaults
signals_metrics.yaml signals_metrics: Human Signals display overrides (KPIs, charts, colors) YAML → defaults

Configuration Load Order

For most config files, AXIS follows this precedence (highest wins):

  1. YAML config file — if present in backend/config/
  2. Environment variables — override specific YAML values
  3. Hardcoded defaults — in config.py dataclasses
💡 Tip
Use YAML files for development and environment variables for production deployments (Docker, Kubernetes). This way, secrets never touch disk in production.

Next Steps

AXIS Documentation · Built with MkDocs Material