🔍 Code Extractor

function get_system_configuration

Maturity: 51

Retrieves system configuration settings from environment variables for display in an admin panel, including database connections, authentication settings, and operational parameters.

File:
/tf/active/vicechatdev/CDocs/controllers/admin_controller.py
Lines:
607 - 627
Complexity:
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

  • os
  • logging
  • typing

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

Similar Components

AI-powered semantic similarity - components with related functionality:

  • function get_system_settings 74.0% similar

    Retrieves system-wide configuration settings from a Neo4j database, returning default values if settings are not found or an error occurs.

    From: /tf/active/vicechatdev/CDocs/controllers/admin_controller.py
  • function api_get_system_config 62.2% similar

    Flask API endpoint that retrieves current system configuration settings for admin users only, returning configuration values like system role, expertise, domain context, and supported languages.

    From: /tf/active/vicechatdev/docchat/app.py
  • function get_system_stats 62.1% similar

    Retrieves comprehensive system statistics from a Neo4j graph database for display on an admin dashboard, including user counts, document counts, review cycles, and approval metrics.

    From: /tf/active/vicechatdev/CDocs/controllers/admin_controller.py
  • function check_configuration_v1 59.2% similar

    Validates the presence of a .env configuration file and checks that all required environment variables (TENANT_ID, CLIENT_ID, CLIENT_SECRET, FROM_EMAIL) are defined.

    From: /tf/active/vicechatdev/email-forwarder/run_service.py
  • function check_configuration 56.7% similar

    A comprehensive configuration verification function that checks and displays the status of all DocChat system settings, including API keys, models, ChromaDB connection, directories, and LLM initialization.

    From: /tf/active/vicechatdev/docchat/verify_setup.py
← Back to Browse