# openJiuwen Agent Studio Configuration
# This file contains the essential environment variables
# Copy this file to .env and modify the values according to your environment
# =============================================================================
# FRONTEND CONFIGURATION
# =============================================================================
# Node.js environment (development, production)
NODE_ENV=development
# Frontend service port
FRONTEND_PORT=3000
# API base URL for frontend to connect to backend
# Use /api/v1 for development (will be proxied by Vite)
# Use your domain/IP for production deployment
VITE_API_BASE_URL=/api/v1
# Proxy target for backend API in development
# This is where Vite will proxy API requests to
VITE_API_PROXY_TARGET=http://localhost:8000/
# Proxy configuration options
VITE_API_PROXY_CHANGE_ORIGIN=true
VITE_API_PROXY_SECURE=false
VITE_API_PROXY_REWRITE=/api
VITE_API_PROXY_TIMEOUT=300000
# Maximum prompt length for user and system prompts in workflow components
VITE_API_PROMPT_LENGTH=8000
# the environment variables are written by build_ssl_files.sh
SSL_PASSWORD=
# =============================================================================
# BACKEND CONFIGURATION
# =============================================================================
# Backend service port
BACKEND_PORT=8000
# Host binding (0.0.0.0 for all interfaces)
HOST=0.0.0.0
# Worker num
WORKER_NUM=1
# Debug mode (false for production)
DEBUG=false
# Secret key for JWT tokens and encryption (CHANGE IN PRODUCTION!)
# Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))"
SECRET_KEY=your-secret-key-change-in-production
# JWT algorithm
ALGORITHM=HS256
# JWT token expiration time in minutes
ACCESS_TOKEN_EXPIRE_MINUTES=2880
# JWT refresh token expiration time in days
REFRESH_TOKEN_EXPIRE_DAYS=2
# Frontend token refresh interval in seconds (default: 600)
VITE_TOKEN_REFRESH_INTERVAL_SECONDS=600
# Allowed origins for CORS (JSON array format)
ALLOWED_ORIGINS=["http://localhost:3000","http://127.0.0.1:3000"]
# Optional develop or product.
# In product mode, the environment variable SERVER_AES_MASTER_KEY_ENV must be set to ensure that sensitive information not persisted to disk
SERVICE_MODE=develop
CODE_SANDBOX_URL=""
# llm ssl verify
LLM_SSL_VERIFY=False
# api_key encrypt key, only takes effect when SERVICE_MODE is set to develop.
# require 32-byte (256-bit) AES key
SERVER_AES_MASTER_KEY=
FORCE_DEL_WORKFLOW_STATE=True
IS_SENSITIVE=False
SSRF_PROTECT_ENABLED=False
# =============================================================================
# DB/STORE CONFIGURATION
# =============================================================================
# Database type (mysql/sqlite)
DB_TYPE=sqlite
# MySQL database configuration
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=root
OPS_DB_NAME=openjiuwen_ops
AGENT_DB_NAME=openjiuwen_agent
# SQLite configuration (used when DB_TYPE=sqlite)
SQLITE_DB_PATH=data/databases
OPS_SQLITE_DB=ops.db
AGENT_SQLITE_DB=agent.db
# =============================================================================
# PLUGIN SERVICE CONFIGURATION
# =============================================================================
# Base URL for plugin services, default is NULL
VITE_PLUGIN_SERVICE_URL=""
# Plugin configuration file path, default config_path is ./frontend/public/config.json
VITE_PLUGIN_CONFIG_PATH=/config.json
# Restfulapi need check ssl verify
RESTFUL_SSL_VERIFY=False
RESTFUL_SSL_CERT=False
# Mivlus Configuration
MILVUS_HOST="jiuwen-milvus-standalone"
MILVUS_PORT="19530"
MILVUS_COLLECTION_NAME="memory_vector"
MILVUS_TOKEN=""
# Workflow Timeout
WORKFLOW_EXECUTE_TIMEOUT=300
# Embedding config
EMBEDDING_MODEL_DIMENTION=1024
EMBED_API_BASE=""
EMBED_MODEL_NAME=""
EMBED_API_KEY=""
EMBED_TIMEOUT=5
EMBED_MAX_RETRIES=1
EMBED_SSL_VERIFY=False
EMBED_SSL_CERT=False