diff --git a/docs/en_US/container_deployment.rst b/docs/en_US/container_deployment.rst index c8d04772a..0ecae604e 100644 --- a/docs/en_US/container_deployment.rst +++ b/docs/en_US/container_deployment.rst @@ -115,6 +115,15 @@ Override the default file path for the server definition list. See the Specify an output file in which to store the Gunicorn access logs, instead of sending them to stdout. +**GUNICORN_LIMIT_REQUEST_LINE** + +*Default: 8190* + +Set the maximum size of HTTP request line in bytes. By default the pgAdmin +container uses the maximum limited size offered by Gunicorn as some requests +can be quite large. In exceptional cases this value can be set to 0 (zero) to +specify "unlimited", however this poses a potential denial of service hazard. + **GUNICORN_THREADS** *Default: 25* diff --git a/docs/en_US/release_notes_6_15.rst b/docs/en_US/release_notes_6_15.rst index 0b6570314..84ef4d6cd 100644 --- a/docs/en_US/release_notes_6_15.rst +++ b/docs/en_US/release_notes_6_15.rst @@ -17,6 +17,7 @@ New features | `Issue #4994 `_ - Allow reordering table columns using drag and drop in ERD Tool. | `Issue #5304 `_ - Added high availability options to AWS deployment. + | `Issue #5390 `_ - Expose the Gunicorn limit_request_line parameter in the container, with the default set to the maximum 8190. Housekeeping ************ diff --git a/pkg/docker/entrypoint.sh b/pkg/docker/entrypoint.sh index 4d12c9ab1..c84b948a4 100755 --- a/pkg/docker/entrypoint.sh +++ b/pkg/docker/entrypoint.sh @@ -90,7 +90,7 @@ TIMEOUT=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.SESS # Using --threads to have multi-threaded single-process worker if [ -n "${PGADMIN_ENABLE_TLS}" ]; then - exec /venv/bin/gunicorn --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-443}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" --keyfile /certs/server.key --certfile /certs/server.cert -c gunicorn_config.py run_pgadmin:app + exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-443}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" --keyfile /certs/server.key --certfile /certs/server.cert -c gunicorn_config.py run_pgadmin:app else - exec /venv/bin/gunicorn --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-80}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" -c gunicorn_config.py run_pgadmin:app + exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-80}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" -c gunicorn_config.py run_pgadmin:app fi