.env.example•3.34 kB
# ============================================
# DATABASE TYPE & CONNECTION SETTINGS
# ============================================
# Database type: mysql | postgresql | sqlite
DB_TYPE=mysql
# Generic database connection (works for all DB types)
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=your_password
DB_NAME=
DB_CONNECTION_LIMIT=10
# Leave DB_NAME empty for multi-DB mode (MySQL/PostgreSQL only)
# Set DB_NAME to a specific database name for single-DB mode
# ============================================
# MYSQL-SPECIFIC SETTINGS (backward compatibility)
# ============================================
MYSQL_HOST=127.0.0.1
MYSQL_SOCKET_PATH=/tmp/mysql.sock
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=your_password
MYSQL_DB=
# ============================================
# POSTGRESQL-SPECIFIC SETTINGS
# ============================================
# POSTGRESQL_HOST=127.0.0.1
# POSTGRESQL_PORT=5432
# POSTGRESQL_DB=
# ============================================
# SQLITE-SPECIFIC SETTINGS
# ============================================
# Use :memory: for in-memory database or provide a file path
# SQLITE_DB=:memory:
# SQLITE_DB=/path/to/database.db
# Global write operation permissions (default to false for safety)
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false
# Schema-specific permissions
# Format: "schema1:true,schema2:false"
SCHEMA_INSERT_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_UPDATE_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_DELETE_PERMISSIONS=test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=test_db:true,staging_db:false
# ============================================
# SECURITY & READ-ONLY MODE
# ============================================
# Global read-only mode (blocks all write operations at app level)
DB_READ_ONLY_MODE=false
# Multi-DB mode settings
# Set to true ONLY if you want to allow write operations in multi-DB mode without
# schema-specific permissions (not recommended)
MULTI_DB_WRITE_MODE=false
# ============================================
# SSL/TLS CONFIGURATION (for cloud databases)
# ============================================
# Enable SSL/TLS (recommended for AWS RDS, GCP Cloud SQL, Azure Database)
DB_SSL=false
DB_SSL_REJECT_UNAUTHORIZED=true
# DB_SSL_CA=/path/to/ca-certificate.pem
# DB_SSL_CERT=/path/to/client-cert.pem
# DB_SSL_KEY=/path/to/client-key.pem
# Legacy MySQL SSL configuration (backward compatibility)
MYSQL_SSL=false
MYSQL_SSL_REJECT_UNAUTHORIZED=true
# ============================================
# PERFORMANCE & TRANSACTION SETTINGS
# ============================================
# Disable SET TRANSACTION READ ONLY for read queries (not recommended)
MYSQL_DISABLE_READ_ONLY_TRANSACTIONS=false
# ============================================
# CLOUD PROVIDER EXAMPLES
# ============================================
# AWS RDS MySQL Example:
# DB_TYPE=mysql
# DB_HOST=myinstance.123456789012.us-east-1.rds.amazonaws.com
# DB_PORT=3306
# DB_SSL=true
# DB_SSL_REJECT_UNAUTHORIZED=true
# Google Cloud SQL PostgreSQL Example:
# DB_TYPE=postgresql
# DB_HOST=34.123.45.67
# DB_PORT=5432
# DB_SSL=true
# Azure Database for MySQL Example:
# DB_TYPE=mysql
# DB_HOST=myserver.mysql.database.azure.com
# DB_PORT=3306
# DB_SSL=true
# DB_SSL_REJECT_UNAUTHORIZED=true