# Tokens and secret values belong in the environment or an OS keychain reference. listen = "127.0.0.1:8787" database = "./.data/bridge.db" artifacts = "./.data/artifacts" # Set FERRYMAN_NETWORK_ARTIFACTS to a mapped/network HDD when it is available. # The bridge falls back to the local artifacts path when that directory does not exist. workspace_root = "./.data/projects" memory_root = "./.data/bridge-memory" # Optional but recommended: give only a trusted operator the matching memory token. # Server: FERRYMAN_MEMORY_WRITE_TOKEN=... # CLI/operator: FERRYMAN_MEMORY_TOKEN=... # Optional Google Drive mirror: set both values as environment variables, never here. # FERRYMAN_DRIVE_ACCESS_TOKEN=... # FERRYMAN_DRIVE_FOLDER_ID=... # Optional Telegram approval gate for jobs marked requires_approval: fails closed (the # gate never spawns) unless both a bot token and an approver id are set as environment # values, never here. The approver id is not a secret -- Telegram authenticates # `from.id` server-side -- so it is safe to record as a config default, but the bot # token from BotFather is a secret and must stay in the environment or OS keyring. # TELEGRAM_BOT_TOKEN=... (dev) or TELEGRAM_BOT_TOKEN_KEYRING_REFERENCE=service:account # TELEGRAM_APPROVER_ID=... (your numeric Telegram user id; ask @userinfobot) # TELEGRAM_CHAT_ID=... (optional; defaults to the approver id for a DM) local_development = true [retention] # Project integrations should minimize prompt/result retention before submission. artifact_days = 30 event_days = 30