package store import ( "github.com/gorilla/sessions" "edge-infra.dev/pkg/edge/audit" "edge-infra.dev/pkg/edge/auth-proxy/types" ) const ( // Success Success = "Success" // Failure Failure = "Failure" // Unknown Unknown = "UNKNOWN" // SaveSessionOp SaveSessionOp = "session:save" // DestroySessionOp DestroySessionOp = "session:destroy" // CleanupExpiredSessionOp CleanupExpiredSessionOp = "session:cleanupExpired" ) func (db *PGStore) audit(operationName, status string, session *sessions.Session) { opts := []audit.Option{ audit.WithOperationName(operationName), audit.WithStatus(status), audit.WithRequestURL(Unknown), audit.WithMethod(Unknown), audit.WithActor(Unknown), audit.WithUserAgent(Unknown), audit.WithUserIP(Unknown), audit.WithParameters(map[string]interface{}{ "session_id": session.ID, "session_name": session.Name(), "session_username": session.Values[types.SessionUsernameField], "session_email": session.Values[types.SessionEmailField], "session_auth_type": session.Values[types.SessionAuthTypeField], "session_organization": session.Values[types.SessionOrganizationField], "session_created_at": session.Values[types.SessionCreationField], "session_expired_at": session.Values[types.SessionExpirationField], }), } db.auditLog.Log(opts...) } func enrichLogWithSession(opName string, session *sessions.Session) []any { return []any{ "correlation_id", session.Values[types.SessionCorrelationID], "operation_name", opName, "session_id", session.ID, "session_username", session.Values[types.SessionUsernameField], "session_email", session.Values[types.SessionEmailField], "session_auth_type", session.Values[types.SessionAuthTypeField], "session_organization", session.Values[types.SessionOrganizationField], "session_created_at", session.Values[types.SessionCreationField], "session_expired_at", session.Values[types.SessionExpirationField], } }