QGIS Server Plugin: Pass WMS Request Parameter to Data Provider (SQL)

Job ID: 40362054

Budget: $750 – $1,500 USD

We are looking for an experienced QGIS developer to implement a custom solution for QGIS Server.

The goal is to make a custom WMS request parameter available inside the QGIS data provider layer (e.g. PostGIS) so that it can be directly used in SQL queries.

Background:
We are using QGIS Server to serve WMS layers backed by a PostGIS database. We need to dynamically filter or modify data at the database level based on parameters passed in the WMS request.

Example:
Incoming WMS request:

...&SERVICE=WMS&REQUEST=GetMap&MY_PARAM=123

Required functionality:
Extract custom parameter (e.g. MY_PARAM) from the WMS request in QGIS Server
Make this parameter available within the QGIS execution context
Ensure the parameter can be used inside the data provider (PostgreSQL/PostGIS)
Pass the parameter into SQL queries (e.g. WHERE clauses or functions)
The solution must work reliably in QGIS Server (not only in QGIS Desktop)

Technical expectations:
Preferably implemented as a QGIS Server plugin (Python)
If necessary, propose and implement a C++/core-level solution
Clean and maintainable code
Compatible with current QGIS Server versions

Nice to have:
Experience with QGIS Server internals
Experience with QgsExpressionContext / custom variables
Experience with PostGIS query optimization

Deliverables:
Working plugin or extension
Example project demonstrating usage
Documentation (setup + usage)
Short explanation of limitations (if any)

To apply, please include:
Relevant QGIS / QGIS Server experience
Links to previous work (plugins, GitHub, etc.)
Brief explanation of how you would approach this problem
Estimated timeline and cost

Important note:
This requirement goes beyond standard expression variables — the parameter must be usable at the data provider / SQL level.