From f7a12a25fc7a5f1e772e759669e8aa1b395e5a09 Mon Sep 17 00:00:00 2001 From: David Gamez Diaz <1192523+davidgamez@users.noreply.github.com> Date: Thu, 29 May 2025 17:26:10 -0400 Subject: [PATCH 1/2] test headers --- api/src/middleware/request_context_middleware.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/api/src/middleware/request_context_middleware.py b/api/src/middleware/request_context_middleware.py index 1268c5d21..7cc291135 100644 --- a/api/src/middleware/request_context_middleware.py +++ b/api/src/middleware/request_context_middleware.py @@ -3,7 +3,7 @@ from starlette.types import ASGIApp, Receive, Scope, Send from middleware.request_context import RequestContext, _request_context -from utils.logger import HttpRequest, API_ACCESS_LOG +from utils.logger import HttpRequest, API_ACCESS_LOG, get_logger class RequestContextMiddleware: @@ -12,7 +12,7 @@ class RequestContextMiddleware: """ def __init__(self, app: ASGIApp) -> None: - self.logger = logging.getLogger(API_ACCESS_LOG) + self.logger = get_logger(API_ACCESS_LOG) self.app = app @staticmethod @@ -63,8 +63,13 @@ def log_api_access( """ latency = time.time() - start_time request = self.create_http_request(scope, request_context, status_code, content_length, latency) + headers = { + k.decode().lower(): v.decode() + for k, v in scope.get("headers", []) + } self.logger.info( - "API Access Log", + { "user_id": request_context.user_id if request_context.user_id else "NO_AUTH", + "headers": headers }, extra={ "context": { "http_request": request, From 49b15c4cd5815ccf687cb150c22ff23968510734 Mon Sep 17 00:00:00 2001 From: David Gamez Diaz <1192523+davidgamez@users.noreply.github.com> Date: Thu, 29 May 2025 18:10:14 -0400 Subject: [PATCH 2/2] add user information --- api/src/middleware/request_context_middleware.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/api/src/middleware/request_context_middleware.py b/api/src/middleware/request_context_middleware.py index 7cc291135..02532f6cb 100644 --- a/api/src/middleware/request_context_middleware.py +++ b/api/src/middleware/request_context_middleware.py @@ -1,4 +1,3 @@ -import logging import time from starlette.types import ASGIApp, Receive, Scope, Send @@ -63,13 +62,17 @@ def log_api_access( """ latency = time.time() - start_time request = self.create_http_request(scope, request_context, status_code, content_length, latency) - headers = { - k.decode().lower(): v.decode() - for k, v in scope.get("headers", []) + headers = {k.decode().lower(): v.decode() for k, v in scope.get("headers", [])} + headers_to_log = { + k: headers.get(k, "") + for k in [ + "origin", + "referer", + ] + if headers.get(k) } self.logger.info( - { "user_id": request_context.user_id if request_context.user_id else "NO_AUTH", - "headers": headers }, + {"user_id": request_context.user_id if request_context.user_id else "", "headers": headers_to_log}, extra={ "context": { "http_request": request,