SurfSense/surfsense_backend/app/automations/actions/store.py

23 lines
666 B
Python

"""In-memory action registry. Populated once at process startup."""
from __future__ import annotations
from .types import ActionDefinition
_REGISTRY: dict[str, ActionDefinition] = {}
def register_action(action: ActionDefinition) -> None:
"""Register an action. Raises on duplicate type."""
if action.type in _REGISTRY:
raise ValueError(f"Action already registered: {action.type!r}")
_REGISTRY[action.type] = action
def get_action(action_type: str) -> ActionDefinition | None:
return _REGISTRY.get(action_type)
def all_actions() -> dict[str, ActionDefinition]:
"""Defensive snapshot of the registry."""
return dict(_REGISTRY)