agnes-the-ai-analyst/docs/CONFIGURATION.md
ZdenekSrotyr c8e232e43e docs: update stale v1 docs to v2 Docker/FastAPI/DuckDB architecture
- CONFIGURATION.md: remove Flask/SendGrid/WEBAPP_SECRET_KEY references,
  update env vars to JWT_SECRET_KEY and SESSION_SECRET, point to
  config/.env.template and config/instance.yaml.example
- disaster-recovery.md: rewrite for Docker volumes; cover GCP disk
  snapshot backup/restore and full VM rebuild; drop systemd/nginx/SSH
- server.md: strip rsync, systemd, nginx, Linux group, and sudo
  sections; keep Docker Compose operations, log viewing, health checks,
  sync/admin CLI, and Jira webhook procedures
2026-04-09 18:44:25 +02:00

3.9 KiB

Configuration Reference

instance.yaml

The main configuration file for your AI Data Analyst instance. Located at config/instance.yaml. See config/instance.yaml.example for the full annotated template.

Instance Branding

instance:
  name: "AI Data Analyst"        # UI title, email subjects
  subtitle: "Acme Corp"          # Header subtitle
  copyright: "Acme Corp"         # Footer copyright

Authentication

auth:
  allowed_domain: "acme.com"     # Email domain restriction for login

Only emails from this domain can log in via Google OAuth or email magic link. Google OAuth is optional — if not configured, only email magic link auth is available.

Email

email:
  from_address: "noreply@acme.com"
  from_name: "Acme Data Analyst"
  smtp_host: "${SMTP_HOST}"
  smtp_port: 587
  smtp_user: "${SMTP_USER}"
  smtp_password: "${SMTP_PASSWORD}"

Used for magic link authentication. Without SMTP configured, magic links are shown directly in the browser (development mode). Compatible with any SMTP relay (Gmail, Mailgun, SendGrid SMTP, etc.).

Server

server:
  host: "10.0.0.1"              # Server IP
  hostname: "data.acme.com"     # Server DNS name

Desktop App

desktop:
  jwt_issuer: "acme-analyst"
  jwt_secret: "${DESKTOP_JWT_SECRET}"
  url_scheme: "acme-analyst"

Data Source

data_source:
  type: "keboola"               # keboola, bigquery, local

Users

users:
  admin@acme.com:
    display_name: "John Doe"
    km_admin: true              # Corporate Memory admin (optional)

username_mapping: {}            # Map webapp email -> server username if different

Datasets

datasets:
  jira:
    label: "Jira Tickets"
    description: "Support tickets"
    size_hint: "~50 MB"
    requires: null
  jira_attachments:
    label: "Jira Attachments"
    description: "File attachments"
    size_hint: "~500 MB+"
    requires: "jira"

Catalog

catalog:
  categories:
    sales:
      label: "Sales"
      icon: "sales"
    hr:
      label: "HR"
      icon: "hr"
  order: ["sales", "hr"]

Environment Variables (.env)

Copy config/.env.template to .env and fill in values. The template contains the full variable list with comments. Never commit .env.

Required

Variable Description
JWT_SECRET_KEY FastAPI JWT token secret (generate with secrets.token_hex(32))
SESSION_SECRET Session cookie secret (generate with secrets.token_hex(32))
GOOGLE_CLIENT_ID Google OAuth client ID
GOOGLE_CLIENT_SECRET Google OAuth client secret

Data Source (Keboola)

Variable Description
KEBOOLA_STORAGE_TOKEN Keboola Storage API token
KEBOOLA_STACK_URL Keboola stack URL
DATA_DIR Data directory path (default: /data in Docker, ./data locally)

Data Source (BigQuery)

Variable Description
BIGQUERY_PROJECT GCP project for job execution/billing
BIGQUERY_LOCATION BigQuery location (e.g., US, us-central1)

Optional

Variable Description
SMTP_HOST SMTP relay host for magic link emails
SMTP_PORT SMTP port (587 for STARTTLS, 465 for SSL)
SMTP_USER SMTP username
SMTP_PASSWORD SMTP password
TELEGRAM_BOT_TOKEN For Telegram notifications
ANTHROPIC_API_KEY For Corporate Memory AI (direct Anthropic)
LLM_API_KEY API key for LLM proxy (LiteLLM, OpenRouter, etc.)
JIRA_WEBHOOK_SECRET For Jira webhook integration
JIRA_API_TOKEN For Jira REST API access
DESKTOP_JWT_SECRET Separate secret for desktop app tokens
CONFIG_DIR Override config directory path
LOG_LEVEL Logging level: debug, info, warning, error
DOMAIN Public hostname for Caddy TLS (production profile)