audit-go/main.py
2024-07-05 10:38:18 +02:00

37 lines
1.4 KiB
Python

# Install protovalidate:
# python3 -m venv path/to/venv
# source path/to/venv/bin/activate
# pip3 install -r requirements.txt
import protovalidate
from audit.v1.audit_event_pb2 import AuditEvent, EventTrigger, RequestDetails
from audit.v1.routable_event_pb2 import RoutableAuditEvent, UnencryptedData
audit_event = AuditEvent()
audit_event.event_name = "XXX"
audit_event.event_trigger = EventTrigger.EVENT_REQUEST
audit_event.request.endpoint = "XXX"
audit_event.request.source_ip_address = "127.0.0.1"
audit_event.request.user_agent = "aaa"
routable_audit_event = RoutableAuditEvent()
routable_audit_event.event_name = "AAA"
routable_audit_event.unencrypted_data.data = audit_event.SerializeToString()
routable_audit_event.unencrypted_data.protobuf_type = audit_event.DESCRIPTOR.full_name
try:
protovalidate.validate(audit_event)
except protovalidate.ValidationError as e:
print("AuditEvent validation errors:")
for error in e.errors():
print("field_path: " + error.field_path + ", constraint_id: " + error.constraint_id + ", message: " + error.message)
try:
protovalidate.validate(routable_audit_event)
except protovalidate.ValidationError as e:
print("\nRoutableAuditEvent validation errors:")
for error in e.errors():
print("field_path: " + error.field_path + ", constraint_id: " + error.constraint_id + ", message: " + error.message)
print(audit_event.SerializeToString())