136 lines
4.5 KiB
Python
136 lines
4.5 KiB
Python
"""
|
|
MetaSet BI - Configuration
|
|
Apache Superset Override for Arcádia Suite
|
|
"""
|
|
import os
|
|
|
|
# =============================================================================
|
|
# BRANDING ARCÁDIA
|
|
# =============================================================================
|
|
APP_NAME = "MetaSet by Arcádia"
|
|
APP_ICON = "/static/assets/images/metaset-logo.svg"
|
|
APP_ICON_WIDTH = 126
|
|
LOGO_TARGET_PATH = "/"
|
|
FAVICONS = [{"href": "/static/assets/images/favicon.png"}]
|
|
|
|
# =============================================================================
|
|
# SEGURANÇA
|
|
# =============================================================================
|
|
SECRET_KEY = os.environ.get("METASET_SECRET_KEY", "change-in-production-use-openssl-rand-hex-32")
|
|
|
|
# JWT para integração com Arcádia Kernel
|
|
JWT_SECRET_KEY = os.environ.get("JWT_SECRET", SECRET_KEY)
|
|
JWT_ALGORITHM = "HS256"
|
|
JWT_ACCESS_TOKEN_EXPIRES = 3600 # 1 hora
|
|
|
|
# =============================================================================
|
|
# BANCO DE DADOS
|
|
# =============================================================================
|
|
SQLALCHEMY_DATABASE_URI = os.environ.get(
|
|
"DATABASE_URL",
|
|
"postgresql://arcadia:arcadia123@localhost:5432/metaset_db"
|
|
)
|
|
|
|
# Banco Arcádia para leitura (datasets)
|
|
ARCADIA_DATABASE_URL = os.environ.get(
|
|
"ARCADIA_DATABASE_URL",
|
|
"postgresql://arcadia:arcadia123@localhost:5432/arcadia"
|
|
)
|
|
|
|
# =============================================================================
|
|
# CORS - Permite Kernel Arcádia
|
|
# =============================================================================
|
|
ENABLE_CORS = True
|
|
CORS_OPTIONS = {
|
|
"supports_credentials": True,
|
|
"allow_headers": ["*"],
|
|
"resources": {
|
|
r"/api/*": {"origins": "*"},
|
|
r"/health": {"origins": "*"},
|
|
},
|
|
}
|
|
|
|
# =============================================================================
|
|
# FEATURE FLAGS
|
|
# =============================================================================
|
|
FEATURE_FLAGS = {
|
|
# Embedding
|
|
"EMBEDDED_SUPERSET": True,
|
|
"GUEST_EMBEDDING_ENABLED": True,
|
|
|
|
# Query & Data
|
|
"ENABLE_TEMPLATE_PROCESSING": True,
|
|
"ALLOW_ADHOC_SUBQUERY": True,
|
|
|
|
# UI/UX
|
|
"ALERT_REPORTS": True,
|
|
"DRILL_TO_DETAIL": True,
|
|
"DRILL_BY": True,
|
|
"DASHBOARD_NATIVE_FILTERS": True,
|
|
"DASHBOARD_CROSS_FILTERS": True,
|
|
"DASHBOARD_RBAC": True,
|
|
|
|
# Security
|
|
"DASHBOARD_CACHE": True,
|
|
"ENABLE_DATASET_HEALTH_CHECK": True,
|
|
|
|
# Desabilitado por segurança
|
|
"ENABLE_JAVASCRIPT_CONTROLS": False,
|
|
}
|
|
|
|
# =============================================================================
|
|
# CACHE
|
|
# =============================================================================
|
|
REDIS_URL = os.environ.get("REDIS_URL", "redis://localhost:6379/1")
|
|
|
|
CACHE_CONFIG = {
|
|
"CACHE_TYPE": "RedisCache",
|
|
"CACHE_DEFAULT_TIMEOUT": 300,
|
|
"CACHE_KEY_PREFIX": "metaset_",
|
|
"CACHE_REDIS_URL": REDIS_URL,
|
|
}
|
|
|
|
DATA_CACHE_CONFIG = {
|
|
"CACHE_TYPE": "RedisCache",
|
|
"CACHE_DEFAULT_TIMEOUT": 86400,
|
|
"CACHE_KEY_PREFIX": "metaset_data_",
|
|
"CACHE_REDIS_URL": REDIS_URL,
|
|
}
|
|
|
|
# =============================================================================
|
|
# TIMEOUTS
|
|
# =============================================================================
|
|
SUPERSET_WEBSERVER_TIMEOUT = 300
|
|
SQLLAB_TIMEOUT = 300
|
|
SQLLAB_ASYNC_TIME_LIMIT_SEC = 600
|
|
|
|
# =============================================================================
|
|
# GUEST TOKEN (EMBEDDING)
|
|
# =============================================================================
|
|
GUEST_TOKEN_JWT_EXP_SECONDS = 300 # 5 minutos
|
|
GUEST_ROLE_NAME = "Gamma"
|
|
GUEST_TOKEN_JWT_ALGO = "HS256"
|
|
GUEST_TOKEN_HEADER_NAME = "X-GuestToken"
|
|
|
|
# =============================================================================
|
|
# MULTI-TENANCY (RLS)
|
|
# =============================================================================
|
|
# Configurações para Row Level Security por tenant
|
|
ENABLE_ROW_LEVEL_SECURITY = True
|
|
RLS_BASE_ROLE = "Gamma"
|
|
|
|
# =============================================================================
|
|
# LOGGING
|
|
# =============================================================================
|
|
LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO")
|
|
|
|
# =============================================================================
|
|
# ARCÁDIA INTEGRATION
|
|
# =============================================================================
|
|
ARCADIA_KERNEL_URL = os.environ.get("KERNEL_URL", "http://localhost:5001")
|
|
ARCADIA_API_KEY = os.environ.get("ARCADIA_API_KEY", "")
|
|
|
|
# Auto-create users from Arcádia
|
|
AUTH_USER_REGISTRATION = True
|
|
AUTH_USER_REGISTRATION_ROLE = "Gamma"
|