Files
furyhawk 8351e73d39 feat: add Zustand stores for conversation, file preview, sidebar, theme, and knowledge base selection
- Implemented `conversation-store` for managing conversations and messages.
- Created `file-preview-store` to handle file preview state.
- Added `sidebar-store` for sidebar visibility management.
- Developed `theme-store` for theme persistence and management.
- Introduced `kb-selection-store` for managing active knowledge base selections with persistence.

chore: define API and chat types

- Added types for API responses, authentication, chat messages, conversations, and projects.
- Defined interfaces for various entities including users, sessions, and message ratings.

build: configure TypeScript and testing setup

- Set up `tsconfig.json` for TypeScript configuration.
- Created `vitest.config.ts` for testing configuration with Vitest.
- Added `vitest.setup.ts` for global test setup including mocks for Next.js router and media queries.
- Configured Vercel deployment settings in `vercel.json`.
2026-06-11 16:54:43 +08:00

2.9 KiB

Environment variables

Reference for ai_agent runtime configuration. The authoritative source is backend/.env.example — this doc explains what each group is for and which are required vs optional.

Quick start: copy backend/.env.example to backend/.env and fill in the blanks marked Required. Defaults are sensible for local development.

Project

Variable Required Default Description
PROJECT_NAME optional ai_agent Used in logs, OpenAPI title, email templates
DEBUG optional true When true, FastAPI returns full tracebacks
ENVIRONMENT optional local Free-form tag: local / staging / production
TIMEZONE optional UTC IANA TZ name (e.g. Europe/Warsaw)
BACKEND_URL optional http://localhost:8033 Used by frontend BFF + email link generation
FRONTEND_URL optional http://localhost:3033 Used by password-reset / magic-link emails

Auth & secrets

Variable Required Default Description
SECRET_KEY required in prod (generated) JWT signing key. Rotating invalidates all tokens
API_KEY required in prod (generated) Static admin/service-to-service key for X-API-Key header
ACCESS_TOKEN_EXPIRE_MINUTES optional 30 JWT access token lifetime
REFRESH_TOKEN_EXPIRE_MINUTES optional 10080 JWT refresh token lifetime (7 days)
GOOGLE_OAUTH_CLIENT_ID required From Google Cloud Console → OAuth credentials
GOOGLE_OAUTH_CLIENT_SECRET required jw

Database

Variable Required Default Description
DATABASE_URL required postgresql+asyncpg://... Full async connection string
DB_POOL_SIZE optional 5 Number of long-lived connections
DB_MAX_OVERFLOW optional 10 Burst capacity above pool size

LLM / AI

Variable Required Default Description
OPENAI_API_KEY required From platform.openai.com
AI_MODEL optional gpt-5.5 Default model used by agent (provider-specific)
LOGFIRE_TOKEN optional When set, ships traces to Logfire (logfire.pydantic.dev)

RAG (milvus)

Variable Required Default Description
MILVUS_URI required http://localhost:19530 Milvus gRPC endpoint
MILVUS_TOKEN optional Auth token (cloud Milvus)

Redis

Variable Required Default Description
REDIS_URL required redis://localhost:6379/0 Used by session store

Validation

# Confirm settings load without errors:
cd backend && uv run python -c "from app.core.config import settings; print(settings.model_dump_json(indent=2))"

If any Required var is missing, FastAPI raises pydantic_settings.SettingsError on startup — check the message for which field.