feat(platform): close AI expense value loop
Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
This commit is contained in:
@@ -15,8 +15,10 @@ from app.core.openapi import API_DESCRIPTION, OPENAPI_TAGS
|
||||
from app.db.session import get_session_factory
|
||||
from app.middleware.logging import AccessLogMiddleware
|
||||
from app.schemas.common import RootStatusRead
|
||||
from app.services.agent_asset_release_scheduler import agent_asset_release_scheduler
|
||||
from app.services.agent_foundation import prepare_agent_foundation
|
||||
from app.services.approval_task_scheduler import approval_task_scheduler
|
||||
from app.services.commercial_rollover_scheduler import commercial_rollover_scheduler
|
||||
from app.services.digital_employee_reminder_scheduler import digital_employee_reminder_scheduler
|
||||
from app.services.employee import EmployeeService, prepare_employee_directory
|
||||
from app.services.employee_profile_scheduler import employee_profile_scheduler
|
||||
@@ -28,6 +30,7 @@ from app.services.knowledge_index_tasks import knowledge_index_task_manager
|
||||
from app.services.knowledge_rag import shutdown_knowledge_rag_runtime
|
||||
from app.services.knowledge_scheduler import knowledge_index_scheduler
|
||||
from app.services.settings import SettingsService
|
||||
from app.services.tenant_registry import DEFAULT_TENANT_ID
|
||||
from app.services.user_session_metrics import UserSessionMetricService
|
||||
|
||||
|
||||
@@ -71,7 +74,10 @@ def _warm_startup_caches(logger: Logger) -> None:
|
||||
session_factory = get_session_factory()
|
||||
with session_factory() as db:
|
||||
SettingsService(db).ensure_settings_ready()
|
||||
EmployeeService(db).ensure_directory_ready()
|
||||
EmployeeService(
|
||||
db,
|
||||
tenant_id=DEFAULT_TENANT_ID,
|
||||
).ensure_directory_ready()
|
||||
UserSessionMetricService(db).ensure_storage_ready()
|
||||
logger.info("Startup cache warmup complete")
|
||||
except Exception:
|
||||
@@ -104,7 +110,9 @@ async def lifespan(_: FastAPI) -> AsyncIterator[None]:
|
||||
schedulers_started = _should_start_background_schedulers(settings)
|
||||
if schedulers_started:
|
||||
knowledge_index_scheduler.start()
|
||||
agent_asset_release_scheduler.start()
|
||||
approval_task_scheduler.start()
|
||||
commercial_rollover_scheduler.start()
|
||||
finance_dashboard_scheduler.start()
|
||||
employee_profile_scheduler.start()
|
||||
digital_employee_reminder_scheduler.start()
|
||||
@@ -123,7 +131,9 @@ async def lifespan(_: FastAPI) -> AsyncIterator[None]:
|
||||
)
|
||||
yield
|
||||
if schedulers_started:
|
||||
agent_asset_release_scheduler.shutdown()
|
||||
approval_task_scheduler.shutdown()
|
||||
commercial_rollover_scheduler.shutdown()
|
||||
finance_report_scheduler.shutdown()
|
||||
digital_employee_reminder_scheduler.shutdown()
|
||||
employee_profile_scheduler.shutdown()
|
||||
|
||||
Reference in New Issue
Block a user