Objectif
Exposer les événements d'exécution via API REST pour permettre le replay au reconnect frontend.
Implémentation
Fichier: backend/app/api/executions.py
@router.get("/{execution_id}/events")
async def get_execution_events(
execution_id: uuid.UUID,
after_seq: int = 0,
limit: int = 200,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
):
"""Récupérer les événements d'exécution depuis le ledger."""
ledger = DeliveryLedger(db)
events = await ledger.get_events(execution_id, limit=limit, offset=after_seq)
return {
"events": [serialize_event(e) for e in events],
"total": len(events),
"execution_id": str(execution_id),
}
Tests
curl -H "Authorization: Bearer $TOKEN" \
"https://staging.agents.moiria.com/api/executions/{id}/events?after_seq=0"
# ✅ 200 OK avec liste d'événements
Critères de Succès
- ✅ Endpoint retourne les événements du DeliveryLedger
- âś… Pagination avec
after_seq et limit
- âś… Auth et permissions fonctionnent
- ✅ Sérialisation correcte des événements
Priorité
P0 — Critique pour V10.13
Phase
Phase 1: Backend Endpoints
Objectif
Exposer les événements d'exécution via API REST pour permettre le replay au reconnect frontend.
Implémentation
Fichier:
backend/app/api/executions.pyTests
Critères de Succès
after_seqetlimitPriorité
P0 — Critique pour V10.13
Phase
Phase 1: Backend Endpoints