function get_system_configuration
Retrieves system configuration settings from environment variables for display in an admin panel, including database connections, authentication settings, and operational parameters.
/tf/active/vicechatdev/CDocs/controllers/admin_controller.py
607 - 627
simple
Purpose
This function serves as a centralized configuration retrieval mechanism for administrative interfaces. It reads various environment variables to provide a comprehensive view of system settings including Neo4j database configuration, FileCloud integration, authentication methods (Azure SSO and local), session management, maintenance mode status, and backup scheduling. The function includes error handling to return an empty dictionary if configuration retrieval fails.
Source Code
def get_system_configuration() -> Dict[str, Any]:
"""Get system configuration for admin panel."""
try:
# Get configuration from settings and environment
config = {
'neo4j_uri': os.getenv('NEO4J_URI', 'bolt://localhost:7687'),
'neo4j_database': os.getenv('NEO4J_DATABASE', 'neo4j'),
'filecloud_url': os.getenv('FILECLOUD_URL', ''),
'sync_enabled': os.getenv('FILECLOUD_SYNC_ENABLED', 'false').lower() == 'true',
'azure_sso_enabled': os.getenv('AZURE_SSO_ENABLED', 'false').lower() == 'true',
'local_auth_enabled': os.getenv('LOCAL_AUTH_ENABLED', 'true').lower() == 'true',
'session_timeout': int(os.getenv('SESSION_TIMEOUT', '60')),
'maintenance_mode': os.getenv('MAINTENANCE_MODE', 'false').lower() == 'true',
'backup_frequency': os.getenv('BACKUP_FREQUENCY', 'daily')
}
return config
except Exception as e:
logger.error(f"Error getting system configuration: {e}")
return {}
Return Value
Type: Dict[str, Any]
Returns a dictionary (Dict[str, Any]) containing system configuration key-value pairs. Keys include: 'neo4j_uri' (string, database connection URI), 'neo4j_database' (string, database name), 'filecloud_url' (string, FileCloud service URL), 'sync_enabled' (boolean, FileCloud sync status), 'azure_sso_enabled' (boolean, Azure SSO authentication status), 'local_auth_enabled' (boolean, local authentication status), 'session_timeout' (integer, session timeout in minutes), 'maintenance_mode' (boolean, maintenance mode status), and 'backup_frequency' (string, backup schedule). Returns an empty dictionary {} if an exception occurs during configuration retrieval.
Dependencies
osloggingtyping
Required Imports
import os
from typing import Dict, Any
Usage Example
import os
from typing import Dict, Any
import logging
# Setup logger (required by the function)
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
# Set environment variables (optional, function uses defaults)
os.environ['NEO4J_URI'] = 'bolt://production-db:7687'
os.environ['NEO4J_DATABASE'] = 'production'
os.environ['AZURE_SSO_ENABLED'] = 'true'
os.environ['SESSION_TIMEOUT'] = '120'
os.environ['MAINTENANCE_MODE'] = 'false'
# Call the function
config = get_system_configuration()
# Access configuration values
print(f"Database URI: {config['neo4j_uri']}")
print(f"Azure SSO Enabled: {config['azure_sso_enabled']}")
print(f"Session Timeout: {config['session_timeout']} minutes")
print(f"Maintenance Mode: {config['maintenance_mode']}")
# Check if configuration was retrieved successfully
if config:
print("Configuration loaded successfully")
else:
print("Failed to load configuration")
Best Practices
- Ensure a logger object is configured in the module scope before calling this function
- Always check if the returned dictionary is empty to detect configuration retrieval failures
- Set environment variables before application startup for consistent configuration
- Use boolean environment variables with 'true'/'false' string values (case-insensitive)
- Validate SESSION_TIMEOUT is a valid integer string to avoid conversion errors
- Consider implementing configuration validation after retrieval to ensure required settings are present
- In production, avoid exposing sensitive configuration values (like database URIs) in logs or admin panels without proper access controls
- The function returns default values for all settings, making it safe to call without any environment variables set
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function get_system_settings 74.0% similar
-
function api_get_system_config 62.2% similar
-
function get_system_stats 62.1% similar
-
function check_configuration_v1 59.2% similar
-
function check_configuration 56.7% similar