diff --git a/Pipfile b/Pipfile index 5d7a75df..9e05ac4c 100644 --- a/Pipfile +++ b/Pipfile @@ -23,10 +23,8 @@ black = "*" factory_boy = "*" rich = "*" sphinx = "*" -furo = "*" sphinx-autobuild = "*" -sphinxcontrib-mermaid = "*" -docutils = "==0.19" +sphinxcontrib-mermaid = "*"" myst-parser = "*" ansible-lint = "*" @@ -96,4 +94,4 @@ django-convenient-formsets = "~=1.2.1" django-basicauth = "*" django-file-resubmit = "*" django-guardian = "*" -docutils = "==0.19" +drf-api-logger = "*" diff --git a/apps/accounts/admin_site.py b/apps/accounts/admin_site.py index 2897212e..ddbe8576 100644 --- a/apps/accounts/admin_site.py +++ b/apps/accounts/admin_site.py @@ -285,3 +285,7 @@ def get_app_list(self, request): greenweb_admin = GreenWebAdmin(name="greenweb_admin") +from drf_api_logger.models import APILogsModel +from drf_api_logger.admin import APILogsAdmin + +greenweb_admin.register(APILogsModel, APILogsAdmin) diff --git a/apps/greencheck/tests/test_api_logger.py b/apps/greencheck/tests/test_api_logger.py new file mode 100644 index 00000000..e69de29b diff --git a/greenweb/settings/common.py b/greenweb/settings/common.py index 6a073f7e..111e26f2 100644 --- a/greenweb/settings/common.py +++ b/greenweb/settings/common.py @@ -103,6 +103,8 @@ "widget_tweaks", # analysis "explorer", + # tracking inbound API usage + 'drf_api_logger', # project specific "apps.theme", "apps.accounts", @@ -139,10 +141,17 @@ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + 'drf_api_logger.middleware.api_logger_middleware.APILoggerMiddleware', # see the section below on BASICAUTH "basicauth.middleware.BasicAuthMiddleware", ] +DRF_API_LOGGER_DATABASE = True # Default to False +legacy_api_views = ["legacy-greencheck-image", "legacy-greencheck-multi", "legacy-directory-detail"] +high_volume_views = ["green-domain-detail"] +debugger_api_views = ["djdt:history_sidebar"] +DRF_API_LOGGER_SKIP_URL_NAME = [ *legacy_api_views, *debugger_api_views, *high_volume_views] + # set up django-guardian as authentcation backend AUTHENTICATION_BACKENDS = [ "django.contrib.auth.backends.ModelBackend", # this is a default value