diff --git a/drf_api_sample/db.sqlite3 b/drf_api_sample/db.sqlite3 index 1a5f998..1b4af35 100644 Binary files a/drf_api_sample/db.sqlite3 and b/drf_api_sample/db.sqlite3 differ diff --git a/rest_framework_tracking/admin.py b/rest_framework_tracking/admin.py index d0691d3..593a80f 100644 --- a/rest_framework_tracking/admin.py +++ b/rest_framework_tracking/admin.py @@ -50,6 +50,7 @@ class APIRequestLogAdmin(admin.ModelAdmin): "errors", "status_code", "user_agent", + "headers", ) def changelist_view(self, request, extra_context=None): @@ -95,3 +96,4 @@ def chart_data(self, start_date, end_date): admin.site.register(APIRequestLog, APIRequestLogAdmin) + diff --git a/rest_framework_tracking/base_mixins.py b/rest_framework_tracking/base_mixins.py index a4725a5..6c64484 100644 --- a/rest_framework_tracking/base_mixins.py +++ b/rest_framework_tracking/base_mixins.py @@ -85,6 +85,7 @@ def finalize_response(self, request, response, *args, **kwargs): "response_ms": self._get_response_ms(), "response": self._clean_data(rendered_content), "status_code": response.status_code, + "headers": self._clean_data(dict(request.headers)), } ) if self._clean_data(request.query_params.dict()) == {}: @@ -214,3 +215,4 @@ def _clean_data(self, data): if key.lower() in SENSITIVE_FIELDS: data[key] = self.CLEANED_SUBSTITUTE return data + diff --git a/rest_framework_tracking/base_models.py b/rest_framework_tracking/base_models.py index a05ddf2..706b407 100644 --- a/rest_framework_tracking/base_models.py +++ b/rest_framework_tracking/base_models.py @@ -48,6 +48,7 @@ class BaseAPIRequestLog(models.Model): response = models.TextField(null=True, blank=True) errors = models.TextField(null=True, blank=True) status_code = models.PositiveIntegerField(null=True, blank=True, db_index=True) + headers = models.JSONField(null=True, blank=True) objects = PrefetchUserManager() class Meta: diff --git a/rest_framework_tracking/migrations/0014_apirequestlog_headers.py b/rest_framework_tracking/migrations/0014_apirequestlog_headers.py new file mode 100644 index 0000000..607f1d8 --- /dev/null +++ b/rest_framework_tracking/migrations/0014_apirequestlog_headers.py @@ -0,0 +1,17 @@ +# Generated by Django 5.0.6 on 2024-05-26 04:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("rest_framework_tracking", "0013_apirequestlog_user_agent"), + ] + + operations = [ + migrations.AddField( + model_name="apirequestlog", + name="headers", + field=models.JSONField(blank=True, null=True), + ), + ]