Source code for omf_io.utils.audit

import json
import os
from dataclasses import field, asdict, dataclass
from datetime import datetime
from typing import Literal


[docs] def get_username(): try: return os.getlogin() except OSError: return os.environ.get('USER') or os.environ.get('USERNAME') or 'unknown_user'
[docs] @dataclass class ChangeMessage: """Dataclass to mange auditability""" element: str action: Literal['create', 'update', 'delete'] description: str user: str = field(default_factory=get_username) timestamp: str = field(default_factory=datetime.now) def __str__(self): return json.dumps(asdict(self), default=str)