2faf284a0e
- Introduced a new audit logging system that creates a tamper-evident chain of events in MongoDB. - Added functions for appending audit events, ensuring index integrity, and verifying the audit chain. - Implemented soft-delete functionality for inventory and borrowing records to comply with GoBD regulations. - Added UI components for displaying invoice corrections and audit dashboard, including mismatch reporting. - Created a CLI utility for verifying the integrity of the audit chain. - Enhanced invoice management by preventing overwrites and allowing correction entries with reasons and optional deltas.
32 lines
764 B
Python
32 lines
764 B
Python
#!/usr/bin/env python3
|
|
"""CLI utility to verify the tamper-evident audit chain."""
|
|
|
|
import json
|
|
import sys
|
|
|
|
from pymongo import MongoClient
|
|
|
|
import settings as cfg
|
|
import audit_log as al
|
|
|
|
|
|
def main():
|
|
client = None
|
|
try:
|
|
client = MongoClient(cfg.MONGODB_HOST, cfg.MONGODB_PORT)
|
|
db = client[cfg.MONGODB_DB]
|
|
al.ensure_audit_indexes(db)
|
|
result = al.verify_audit_chain(db)
|
|
print(json.dumps(result, ensure_ascii=False, indent=2, default=str))
|
|
return 0 if result.get("ok") else 2
|
|
except Exception as exc:
|
|
print(json.dumps({"ok": False, "error": str(exc)}, ensure_ascii=False))
|
|
return 1
|
|
finally:
|
|
if client:
|
|
client.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|