From 2fb3ab668edc411980a4c2f5bda6dbe04c295ec6 Mon Sep 17 00:00:00 2001 From: Matthias Budde Date: Fri, 13 Feb 2026 20:20:21 +0100 Subject: [PATCH 1/3] Docs: Updated commmand to increase request size and added info on gunicorn timeouts. --- docs/intro.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 6c44856..89d5b30 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -716,7 +716,6 @@ docker run -p 8000:8000 my-extension ## Advanced Configuration ### Running behind Reverse Proxy - When running behind a reverse proxy (like nginx), you may need to configure Flask to trust proxy headers. Use Werkzeug's `ProxyFix` middleware: ```python @@ -730,11 +729,17 @@ analytics_service.app.wsgi_app = ProxyFix( ### Adjusting Maximum Request Size As of Werkzeug 3.1, the setting for `max_form_memory_size` is 500,000 bytes. -Since Cadenza sends the payload as `multipart/form` data, this default setting may prove to be too low to accomodate the data sent from Cadenza. +Since Cadenza sends the payload as `multipart/form` data, this default setting may prove to be too low to accomodate the data sent from Cadenza, resulting in an _HTTP 413 Payload Too Large_ error. -The setting can be adjusted using +The setting can be adjusted via the Flask app properties: ```python -from flask.wrappers import Request # do NOT use the werkzeug.wrappers Request -Request.max_form_memory_size = 100 * 1024 * 1024 +# Example setting the max form data to 100 MB +analytics_service.app.config['MAX_FORM_MEMORY_SIZE'] = 100 * 1024 * 1024 ``` +### Adjusting gunicorn worker timeouts +In case of long running analyses that may cause a gunicorn worker to be silent for more than the standard of 30 seconds, increase the timeout by adding an appropriate parameter when starting gunicorn. +```console +gunicorn --bind 0.0.0.0:8000 --workers 4 --timeout 120 echo_extension:app +``` +Also see [Gunicorn documentation](https://gunicorn.org/reference/settings/#timeout). From 890d5fce9378e469e9b002831b7b19604b7c2a23 Mon Sep 17 00:00:00 2001 From: Matthias Budde Date: Tue, 12 May 2026 17:17:21 +0200 Subject: [PATCH 2/3] Docs: Added missing links and clarified metadata usage. --- docs/intro.md | 124 +++++++++++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 48 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 89d5b30..9c65f6b 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -10,14 +10,14 @@ A user can integrate an analysis extension into disy Cadenza via the Management As of disy Cadenza Autumn 2025 (10.4), the following types and capabilities of analysis extensions are officially supported: -- **Data**: Returns a structured data set from which a new Cadenza object type is created. -- **Enrichment**: Enriches an existing Cadenza object type by adding additional attributes (columns). -- **Visual**: Returns static content (PNG image, text, or URL) to be displayed in a Cadenza view or through a map operation. +- **Data**: Returns a structured data set from which a new disy Cadenza object type is created. +- **Enrichment**: Enriches an existing disy Cadenza object type by adding additional attributes (columns). +- **Visual**: Returns static content (PNG image, text, or URL) to be displayed in a disy Cadenza view or through a map operation. ## Communication -An Analytics Extension defines one endpoint that, depending on the HTTP method of the request, is used to supply the Extension's configuration to disy Cadenza, or exchange data and results with Cadenza respectively. +An Analytics Extension defines one endpoint that, depending on the HTTP method of the request, is used to supply the Extension's configuration to disy Cadenza, or exchange data and results with disy Cadenza respectively.