From dfa7cec05bd2edca21e5ac3ffcae7179762b7e19 Mon Sep 17 00:00:00 2001 From: Chris Bartholomew Date: Tue, 23 Dec 2025 09:47:26 -0500 Subject: [PATCH] Load operation validator extension in main entry point (#72) Enable the operation validator extension to be loaded from environment configuration and passed to MemoryEngine, allowing pre/post operation hooks for usage metering, rate limiting, and audit logging. --- hindsight-api/hindsight_api/main.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hindsight-api/hindsight_api/main.py b/hindsight-api/hindsight_api/main.py index 4e083663..04a2296a 100644 --- a/hindsight-api/hindsight_api/main.py +++ b/hindsight-api/hindsight_api/main.py @@ -31,6 +31,7 @@ from .daemon import ( IdleTimeoutMiddleware, daemonize, ) +from .extensions import OperationValidatorExtension, load_extension # Filter deprecation warnings from third-party libraries warnings.filterwarnings("ignore", message="websockets.legacy is deprecated") @@ -191,8 +192,14 @@ def main(): signal.signal(signal.SIGINT, _signal_handler) signal.signal(signal.SIGTERM, _signal_handler) + # Load operation validator extension if configured + operation_validator = load_extension("OPERATION_VALIDATOR", OperationValidatorExtension) + if operation_validator: + import logging + logging.info(f"Loaded operation validator: {operation_validator.__class__.__name__}") + # Create MemoryEngine (reads configuration from environment) - _memory = MemoryEngine() + _memory = MemoryEngine(operation_validator=operation_validator) # Create FastAPI app app = create_app(