platform-core/modules/shared/systemComponentRegistry.py
ValueOn AG 4f8473bd70
Some checks failed
Deploy Plattform-Core (Int) / test (push) Failing after 1m2s
Deploy Plattform-Core (Int) / deploy (push) Has been skipped
cleaned servicebag and removed servicehub
2026-06-08 23:35:31 +02:00

32 lines
1.2 KiB
Python

# Copyright (c) 2025 Patrick Motsch
"""
System-component lifecycle-hook registry (Layer L0 — shared).
Higher-layer system components (e.g. workflowAutomation) register their
lifecycle hooks here at boot time via ``app.py`` (Composition Root, L7).
Interface modules read the registry generically — no upward imports needed.
Supported events: ``onBootstrap``, ``onMandateDelete``, ``onInstanceCreate``.
This is the same inversion pattern used by
``serviceAgent/externalToolRegistry.py`` for agent tools.
"""
import logging
from typing import Any, Callable, Dict, List
logger = logging.getLogger(__name__)
_hooks: Dict[str, List[Callable[..., Any]]] = {}
def registerLifecycleHook(eventName: str, handler: Callable[..., Any]) -> None:
"""Register a lifecycle handler for *eventName*."""
_hooks.setdefault(eventName, []).append(handler)
logger.info("Registered system-component lifecycle hook: %s -> %s",
eventName, getattr(handler, "__qualname__", repr(handler)))
def getLifecycleHooks(eventName: str) -> List[Callable[..., Any]]:
"""Return all registered handlers for *eventName* (may be empty)."""
return list(_hooks.get(eventName, []))