Files
tfm_ainventory/config/backend.yaml.example

127 lines
3.8 KiB
Plaintext

# =============================================================================
# TFM aInventory - Backend Configuration Schema (v1.12.0)
# =============================================================================
# Purpose: Configuration for the FastAPI backend, database, AI, and logging.
# Load order: system environment variables > config/backend.yaml > code defaults.
# Required/Optional: Most are optional; defaults in code provide sensible behavior.
# =============================================================================
# --- Database & Storage ---
database:
# Path to SQLite database file (relative to backend/ folder)
# Default: data/inventory.db
# Environment: BACKEND_DATABASE_SQLITE_PATH
sqlite_path: "data/inventory.db"
# Keep database logs for performance auditing?
# Default: true
# Environment: BACKEND_DATABASE_WAL_MODE
wal_mode: true
# How many days of audit logs to keep?
# Default: 30
# Environment: BACKEND_DATABASE_LOG_RETENTION_DAYS
log_retention_days: 30
# --- AI & Vision Services ---
ai:
# Primary provider for image OCR and classification (gemini|claude)
# Default: gemini
# Environment: BACKEND_AI_PRIMARY_AI_PROVIDER
primary_ai_provider: "gemini"
# Fallback provider if primary fails
# Default: claude
# Environment: BACKEND_AI_FALLBACK_PROVIDER
fallback_provider: "claude"
# --- Authentication & LDAP ---
auth:
# Enable LDAP Authentication?
# Default: false
# Environment: BACKEND_AUTH_LDAP_ENABLED or LDAP_ENABLED
ldap_enabled: false
# LDAP Server address (optional)
# Example: "ldaps://192.168.1.100:636"
# Environment: BACKEND_AUTH_LDAP_SERVER or LDAP_SERVER
ldap_server: ""
# LDAP Base DN for user search
# Example: "dc=example,dc=com"
# Environment: BACKEND_AUTH_LDAP_BASE_DN or LDAP_BASE_DN
ldap_base_dn: ""
# LDAP User DN Template
# Example: "uid={username},ou=people,dc=example,dc=com"
# Environment: BACKEND_AUTH_LDAP_USER_TEMPLATE or LDAP_USER_TEMPLATE
ldap_user_template: "uid={username},ou=people,dc=ldap,dc=lan"
# LDAP Groups Base DN
# Example: "ou=groups,dc=example,dc=com"
# Environment: BACKEND_AUTH_LDAP_GROUPS_DN or LDAP_GROUPS_DN
ldap_groups_dn: "ou=groups"
# Use TLS for LDAP connection?
# Default: true
# Environment: BACKEND_AUTH_LDAP_USE_TLS or LDAP_USE_TLS
ldap_use_tls: true
# Ignore TLS certificate verification? (NOT FOR PRODUCTION)
# Default: false
# Environment: BACKEND_AUTH_LDAP_IGNORE_CERT or LDAP_IGNORE_CERT
ldap_ignore_cert: false
# LDAP Role Mappings (List of group-to-role mappings)
# assigned_role = None (if no match found)
ldap_role_mappings:
- group: "inventory_admins"
role: "admin"
- group: "inventory_users"
role: "user"
# Path to store hashed passwords for offline use
# Environment: BACKEND_AUTH_PASSWORD_CACHE_PATH
password_cache_path: "data/.passwords"
# --- Logging & Diagnostics ---
logging:
# Log level (DEBUG|INFO|WARNING|ERROR)
# Default: INFO
# Environment: BACKEND_LOGGING_LOG_LEVEL or LOG_LEVEL
log_level: "INFO"
# Log file rotation size in megabytes
# Default: 10
# Environment: BACKEND_LOGGING_LOG_ROTATION_SIZE_MB
log_rotation_size_mb: 10
# Number of rotated log files to keep
# Default: 5
# Environment: BACKEND_LOGGING_LOG_ROTATION_COUNT
log_rotation_count: 5
# --- Application ---
application:
# Directory for persistent data
# Environment: BACKEND_APPLICATION_DATA_DIR or DATA_DIR
data_dir: "./data"
# Directory for log files
# Environment: BACKEND_APPLICATION_LOGS_DIR or LOGS_DIR
logs_dir: "./logs"
# --- Feature Flags ---
features:
# Enable AI image extraction and OCR?
# Default: true
ai_extraction_enabled: true
# Enable offline synchronization features?
# Default: true
offline_sync_enabled: true
# Enable detailed audit logging for each API request?
# Default: true
audit_logging_enabled: true