"""Audit Logger Example.""" import os from auditlogger.logger import AuditLogger from auditlogger.record_event import RecordEvent if __name__ == "__main__": # Create the audit logger # Requires AWS credentials to be accessible to boto3 or send username+password. hosts = [ # hosts is an array of dicts defining endpoints. { "host": os.getenv("ELASTICSEARCH_HOST"), "port": 443, "username": os.getenv("ELASTICSEARCH_USERNAME"), "password": os.getenv("ELASTICSEARCH_PASSWORD") }, ] # you can create your user from terraform. os_host = { "host": os.getenv("OPENSEARCH_HOST"), "port": 443, "username": os.getenv("OPENSEARCH_USERNAME"), "password": os.getenv("OPENSEARCH_PASSWORD") } audit_logger = AuditLogger(hosts, os_host=os_host) # A new record being created by an OA user... new_record = {"id": 1, "value": "bar", "type": "name"} event_name = "create" user_type = "oa" user_id = "101" # Record the creation event as a RecordEvent record_event = RecordEvent( new_record["type"], # record type new_record["id"], # record id event_name, # event name { "original": None, "updated": new_record }, # changeset user_type, # user type user_id) # user id # for QA testing, write to the index that exists. record_event.ES_INDEX = "record-event-ows-collaborator" record_event.OS_INDEX = "record_event_ows_collaborator_write" audit_logger.log(record_event)