idea131-fleetopt-verifiable.../core/ledger.py

26 lines
730 B
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import List, Dict, Any
import time
@dataclass
class AuditLogEntry:
entry_id: str
fleet_id: str
event: str
details: Dict[str, Any] = field(default_factory=dict)
timestamp: float = field(default_factory=time.time)
class AuditLog:
def __init__(self) -> None:
self._entries: List[AuditLogEntry] = []
def add(self, fleet_id: str, event: str, details: Dict[str, Any] | None = None) -> None:
self._entries.append(AuditLogEntry(entry_id=str(len(self._entries) + 1), fleet_id=fleet_id, event=event, details=details or {}))
def all(self) -> List[AuditLogEntry]:
return list(self._entries)