New enterprise feature
This commit is contained in:
@@ -42,6 +42,9 @@ INTERNAL_SERVICES: Set[str] = {
|
||||
"demo-session-service",
|
||||
"external-service",
|
||||
|
||||
# Enterprise services
|
||||
"distribution-service",
|
||||
|
||||
# Legacy/alternative naming (for backwards compatibility)
|
||||
"data-service", # May be used by older components
|
||||
}
|
||||
@@ -198,6 +201,7 @@ class BaseServiceSettings(BaseSettings):
|
||||
|
||||
# Service-to-Service Authentication
|
||||
SERVICE_API_KEY: str = os.getenv("SERVICE_API_KEY", "service-api-key-change-in-production")
|
||||
INTERNAL_API_KEY: str = os.getenv("INTERNAL_API_KEY", "dev-internal-key-change-in-production")
|
||||
ENABLE_SERVICE_AUTH: bool = os.getenv("ENABLE_SERVICE_AUTH", "false").lower() == "true"
|
||||
API_GATEWAY_URL: str = os.getenv("API_GATEWAY_URL", "http://gateway-service:8000")
|
||||
|
||||
@@ -238,6 +242,7 @@ class BaseServiceSettings(BaseSettings):
|
||||
PROCUREMENT_SERVICE_URL: str = os.getenv("PROCUREMENT_SERVICE_URL", "http://procurement-service:8000")
|
||||
ORCHESTRATOR_SERVICE_URL: str = os.getenv("ORCHESTRATOR_SERVICE_URL", "http://orchestrator-service:8000")
|
||||
AI_INSIGHTS_SERVICE_URL: str = os.getenv("AI_INSIGHTS_SERVICE_URL", "http://ai-insights-service:8000")
|
||||
DISTRIBUTION_SERVICE_URL: str = os.getenv("DISTRIBUTION_SERVICE_URL", "http://distribution-service:8000")
|
||||
|
||||
# HTTP Client Settings
|
||||
HTTP_TIMEOUT: int = int(os.getenv("HTTP_TIMEOUT", "30"))
|
||||
|
||||
49
shared/config/feature_flags.py
Normal file
49
shared/config/feature_flags.py
Normal file
@@ -0,0 +1,49 @@
|
||||
"""
|
||||
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"]
|
||||
Reference in New Issue
Block a user