From 61ea522290473f92e980637044fd92a71bd8aff0 Mon Sep 17 00:00:00 2001 From: Conor Holden Date: Fri, 27 Sep 2024 11:34:50 +0200 Subject: [PATCH] :wrench:[maykinmedia/open-api-framework#68] fix CSP errors --- docs/installation/config.rst | 4 ++-- requirements/base.txt | 11 ++++++++--- requirements/ci.txt | 10 ++++++++-- requirements/dev.txt | 10 ++++++++-- src/objects/conf/api.py | 3 +++ 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/docs/installation/config.rst b/docs/installation/config.rst index 22f6fa0b..ade5c652 100644 --- a/docs/installation/config.rst +++ b/docs/installation/config.rst @@ -16,7 +16,7 @@ Available environment variables Required -------- -* ``SECRET_KEY``: Secret key that's used for certain cryptographic utilities. You should generate one via `miniwebtool `_. +* ``SECRET_KEY``: Secret key that's used for certain cryptographic utilities. . * ``ALLOWED_HOSTS``: a comma separated (without spaces!) list of domains that serve the installation. Used to protect against Host header attacks. Defaults to: ``(empty string)``. * ``CACHE_DEFAULT``: redis cache address for the default cache (this **MUST** be set when using Docker). Defaults to: ``localhost:6379/0``. * ``CACHE_AXES``: redis cache address for the brute force login protection cache (this **MUST** be set when using Docker). Defaults to: ``localhost:6379/0``. @@ -86,7 +86,7 @@ Optional * ``LOG_LEVEL``: control the verbosity of logging output. Available values are ``CRITICAL``, ``ERROR``, ``WARNING``, ``INFO`` and ``DEBUG``. Defaults to: ``WARNING``. * ``LOG_QUERIES``: enable (query) logging at the database backend level. Note that you must also set ``DEBUG=1``, which should be done very sparingly!. Defaults to: ``False``. * ``LOG_REQUESTS``: enable logging of the outgoing requests. Defaults to: ``False``. -* ``SESSION_COOKIE_SAMESITE``: The value of the SameSite flag on the session cookie. This flag prevents the cookie from being sent in cross-site requests thus preventing CSRF attacks and making some methods of stealing session cookie impossible. Defaults to: ``Strict``. +* ``SESSION_COOKIE_SAMESITE``: The value of the SameSite flag on the session cookie. This flag prevents the cookie from being sent in cross-site requests thus preventing CSRF attacks and making some methods of stealing session cookie impossible.Currently interferes with OIDC. Keep the value set at Lax if used. Defaults to: ``Lax``. * ``CSRF_COOKIE_SAMESITE``: The value of the SameSite flag on the CSRF cookie. This flag prevents the cookie from being sent in cross-site requests. Defaults to: ``Strict``. * ``ENVIRONMENT``: An identifier for the environment, displayed in the admin depending on the settings module used and included in the error monitoring (see ``SENTRY_DSN``). The default is set according to ``DJANGO_SETTINGS_MODULE``. * ``SUBPATH``: If hosted on a subpath, provide the value here. If you provide ``/gateway``, the component assumes its running at the base URL: ``https://somedomain/gateway/``. Defaults to an empty string. Defaults to: ``None``. diff --git a/requirements/base.txt b/requirements/base.txt index 1b36d072..fca3e8d3 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -97,6 +97,7 @@ django==4.2.15 # djangorestframework-inclusions # drf-nested-routers # drf-spectacular + # drf-spectacular-sidecar # drf-yasg # maykin-2fa # mozilla-django-oidc @@ -177,8 +178,12 @@ djangorestframework-inclusions==1.2.0 # via open-api-framework drf-nested-routers==0.93.3 # via commonground-api-common -drf-spectacular==0.27.2 - # via open-api-framework +drf-spectacular[sidecar]==0.27.2 + # via + # drf-spectacular + # open-api-framework +drf-spectacular-sidecar==2024.7.1 + # via drf-spectacular drf-yasg==1.21.7 # via commonground-api-common ecs-logging==2.1.0 @@ -238,7 +243,7 @@ notifications-api-common==0.2.2 # via # -r requirements/base.in # commonground-api-common -open-api-framework==0.8.0 +open-api-framework==0.8.1 # via -r requirements/base.in orderedmultidict==1.0.1 # via furl diff --git a/requirements/ci.txt b/requirements/ci.txt index 461167ee..60bcebb4 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -139,6 +139,7 @@ django==4.2.15 # djangorestframework-inclusions # drf-nested-routers # drf-spectacular + # drf-spectacular-sidecar # drf-yasg # maykin-2fa # mozilla-django-oidc @@ -271,10 +272,15 @@ drf-nested-routers==0.93.3 # via # -r requirements/base.txt # commonground-api-common -drf-spectacular==0.27.2 +drf-spectacular[sidecar]==0.27.2 # via # -r requirements/base.txt + # drf-spectacular # open-api-framework +drf-spectacular-sidecar==2024.7.1 + # via + # -r requirements/base.txt + # drf-spectacular drf-yasg==1.21.7 # via # -r requirements/base.txt @@ -381,7 +387,7 @@ notifications-api-common==0.2.2 # via # -r requirements/base.txt # commonground-api-common -open-api-framework==0.8.0 +open-api-framework==0.8.1 # via -r requirements/base.txt orderedmultidict==1.0.1 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 9e0a12f1..9e7bf619 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -161,6 +161,7 @@ django==4.2.15 # djangorestframework-inclusions # drf-nested-routers # drf-spectacular + # drf-spectacular-sidecar # drf-yasg # maykin-2fa # mozilla-django-oidc @@ -303,10 +304,15 @@ drf-nested-routers==0.93.3 # via # -r requirements/ci.txt # commonground-api-common -drf-spectacular==0.27.2 +drf-spectacular[sidecar]==0.27.2 # via # -r requirements/ci.txt + # drf-spectacular # open-api-framework +drf-spectacular-sidecar==2024.7.1 + # via + # -r requirements/ci.txt + # drf-spectacular drf-yasg==1.21.7 # via # -r requirements/ci.txt @@ -430,7 +436,7 @@ notifications-api-common==0.2.2 # via # -r requirements/ci.txt # commonground-api-common -open-api-framework==0.8.0 +open-api-framework==0.8.1 # via -r requirements/ci.txt orderedmultidict==1.0.1 # via diff --git a/src/objects/conf/api.py b/src/objects/conf/api.py index c8b72a93..d5e9db77 100644 --- a/src/objects/conf/api.py +++ b/src/objects/conf/api.py @@ -87,6 +87,9 @@ """ SPECTACULAR_SETTINGS = { + "SWAGGER_UI_DIST": "SIDECAR", + "SWAGGER_UI_FAVICON_HREF": "SIDECAR", + "REDOC_DIST": "SIDECAR", "SCHEMA_PATH_PREFIX": r"/api/v[1-9]+", "SCHEMA_PATH_PREFIX_TRIM": True, "TITLE": "Objects API",