techprotrade's picture
Full stack ATOM backend + AIMONEYFLOW clients (port 7860)
68b32d7 verified
Raw
History Blame Contribute Delete
1.95 kB
import logging
from analytics.instrumentation import activate_analytics
from analytics.routes import router as analytics_router
from fastapi import FastAPI
logger = logging.getLogger(__name__)
def enable_workflow_dna(app: FastAPI):
"""
Enables the Workflow DNA plugin:
1. Registers the Analytics API routes
2. Hooks into the Orchestrator to begin collecting data
"""
try:
# 1. Register API
# Proxy redirects /api/analytics -> /api/v1/analytics, so we need to match that
app.include_router(analytics_router, prefix="/api/v1")
logger.info("🔌 Workflow DNA Plugin: API Routes Registered (at /api/v1/analytics)")
# 1.5. Ensure Analytics Tables Exist
from analytics.models import WorkflowExecutionLog
from core.database import engine
WorkflowExecutionLog.metadata.create_all(bind=engine)
logger.info("🔌 Workflow DNA Plugin: Database Schema Verified")
# 2. Activate Instrumentation
# We need to find the active orchestrator instance.
# usually it's in a global or dependency injection container.
# For now, we will try to find it via the workflow modules if they are loaded.
# Strategy: We will import the orchestrator instance from where it's instantiated.
# Assuming it's in core/workflow_endpoints or similar.
# But wait, looking at main_api_app.py, we don't clear see where the orchestrator is held.
# It's usually instantiated in the `workflow_routes.py` or similar.
# Checking `core/workflow_endpoints.py` usually reveals `orchestrator = AdvancedWorkflowOrchestrator()`
from advanced_workflow_orchestrator import get_orchestrator
orchestrator = get_orchestrator()
activate_analytics(orchestrator)
except Exception as e:
logger.error(f"⚠️ Failed to enable Workflow DNA Plugin: {e}")