steward_mirror/steward/config_schema.yaml
Daniel Wagner d5eac108f8 feat: implement OmegaConf-based configuration management with uv
Configuration changes:
- Replace pydantic-settings with OmegaConf for flexible config management
- Support YAML config files via CONFIG_FILE environment variable
- Support environment variables with STEWARD__SECTION__KEY format
- Add config_schema.yaml as default configuration schema
- Create pydantic models for each configuration section for type safety
- Maintain backward compatibility via properties on Settings class
- Add CONFIGURATION.md with comprehensive setup and usage guide
- Update pyproject.toml to include config_schema.yaml in package data

Build/deployment changes:
- Replace pip with uv in Dockerfile for faster dependency installation
- Create docker-compose.dev.yml for local development (build .)
- Keep docker-compose.yml for production (uses ghcr.io/djw4/steward:latest)
- Update .env.example with new STEWARD__* variable format

This setup is designed for Kubernetes deployment:
- Non-sensitive config goes in ConfigMap (config.yaml)
- Secrets go in Secret resources (environment variables)
- Single unified configuration system for all environments
2026-07-26 12:34:23 +10:00

52 lines
1.6 KiB
YAML

# Steward Configuration Schema
# This is the default configuration. Override values in your own config file or via environment variables.
# Environment variable format: STEWARD__<section>__<key>=value
# Example: STEWARD__TELEGRAM__BOT_TOKEN=your_token
telegram:
# Telegram bot token (REQUIRED - set via env or config)
bot_token: ""
# List of user IDs allowed to interact with the bot via DM
# Empty list means all users are allowed
allowed_user_ids: []
# List of group/channel IDs where the bot is allowed to operate
# Empty list means all groups are allowed
group_ids: []
openai:
# OpenAI API key (REQUIRED - set via env for security)
api_key: ""
# API base URL (can use any OpenAI-compatible provider)
base_url: "https://api.openai.com/v1"
# Model to use
model: "gpt-4o"
# System prompt for the bot
system_prompt: "You are Steward, a persistent, trustworthy AI-assisted personal operations platform. You reduce cognitive load by observing, remembering, planning, and proposing actions. You are conservative, transparent, and policy-aware. Always explain your reasoning."
analysis:
# Target URL for API analysis (optional - set to enable analysis feature)
target_url: ""
# API key for analysis target (optional)
target_api_key: ""
# Cron schedule for automatic analysis
cron_hour: 8
cron_minute: 0
memory:
# Path to thread memory storage file
thread_memory_path: "thread_memory.json"
tools:
# MCP/OpenAPI tool server URL (optional - set to enable tool calling)
mcp_server_url: ""
# API key for MCP server (optional)
mcp_server_api_key: ""