49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
|
|
"""
|
||
|
|
Feature flags for enterprise tier functionality
|
||
|
|
"""
|
||
|
|
|
||
|
|
import os
|
||
|
|
from typing import Dict, Any
|
||
|
|
|
||
|
|
|
||
|
|
class FeatureFlags:
|
||
|
|
"""Enterprise feature flags configuration"""
|
||
|
|
|
||
|
|
# Main enterprise tier feature flag
|
||
|
|
ENABLE_ENTERPRISE_TIER = os.getenv("ENABLE_ENTERPRISE_TIER", "true").lower() == "true"
|
||
|
|
|
||
|
|
# Internal transfer feature flag
|
||
|
|
ENABLE_INTERNAL_TRANSFERS = os.getenv("ENABLE_INTERNAL_TRANSFERS", "true").lower() == "true"
|
||
|
|
|
||
|
|
# Distribution service feature flag
|
||
|
|
ENABLE_DISTRIBUTION_SERVICE = os.getenv("ENABLE_DISTRIBUTION_SERVICE", "true").lower() == "true"
|
||
|
|
|
||
|
|
# Network dashboard feature flag
|
||
|
|
ENABLE_NETWORK_DASHBOARD = os.getenv("ENABLE_NETWORK_DASHBOARD", "true").lower() == "true"
|
||
|
|
|
||
|
|
# Child tenant management feature flag
|
||
|
|
ENABLE_CHILD_TENANT_MANAGEMENT = os.getenv("ENABLE_CHILD_TENANT_MANAGEMENT", "true").lower() == "true"
|
||
|
|
|
||
|
|
# Aggregated forecasting feature flag
|
||
|
|
ENABLE_AGGREGATED_FORECASTING = os.getenv("ENABLE_AGGREGATED_FORECASTING", "true").lower() == "true"
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def get_all_flags(cls) -> Dict[str, Any]:
|
||
|
|
"""Get all feature flags as a dictionary"""
|
||
|
|
return {
|
||
|
|
'ENABLE_ENTERPRISE_TIER': cls.ENABLE_ENTERPRISE_TIER,
|
||
|
|
'ENABLE_INTERNAL_TRANSFERS': cls.ENABLE_INTERNAL_TRANSFERS,
|
||
|
|
'ENABLE_DISTRIBUTION_SERVICE': cls.ENABLE_DISTRIBUTION_SERVICE,
|
||
|
|
'ENABLE_NETWORK_DASHBOARD': cls.ENABLE_NETWORK_DASHBOARD,
|
||
|
|
'ENABLE_CHILD_TENANT_MANAGEMENT': cls.ENABLE_CHILD_TENANT_MANAGEMENT,
|
||
|
|
'ENABLE_AGGREGATED_FORECASTING': cls.ENABLE_AGGREGATED_FORECASTING,
|
||
|
|
}
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def is_enabled(cls, flag_name: str) -> bool:
|
||
|
|
"""Check if a specific feature flag is enabled"""
|
||
|
|
return getattr(cls, flag_name, False)
|
||
|
|
|
||
|
|
|
||
|
|
# Export the feature flags
|
||
|
|
__all__ = ["FeatureFlags"]
|