Source code for eclypse.builders.application.crud_api.mpi_services.audit

"""MPI workflow for auditing."""

from eclypse.remote.communication import mpi
from eclypse.remote.service import Service
from eclypse.utils import format_log_kv


[docs] class AuditService(Service): """Record a simple audit event."""
[docs] async def step(self): """Handle the next item event emitted by the CRUD pipeline.""" await self.item_request() # pylint: disable=no-value-for-parameter
@mpi.exchange(receive=True, send=True) def item_request(self, sender_id, body): """Record an audit message and respond to the calling service.""" self.logger.info("Received request | " + format_log_kv(request=body)) return sender_id, { "response_type": "audit_response", "status": "recorded", "message": f"{body['action']}:{body['item_id']}", }