GeoServer OGC API Features Conformance

Not quite sure if this is an issue with GeoServer or QGIS or just my own incompetence but thought I would report it: Our users noticed that when using an OGC API Features interface provided by GeoServer (2.27.4) in QGIS, they were unable to filter the features in the requests. QGIS requested all the features without a filter and then performed filtering afterwards (apparently, haven’t tested myself). With large datasets this obviously isn’t good. Similar usage on other OGC API Features interfaces (not provided by GeoServer) resulted in requests that did contain the correct CQL-filter.

After some research it seems that the problem has to do with the conformance response GeoServer gives (../ogc/features/v1/conformance). This has a line

http://www.opengis.net/spec/cql2/1.0/req/cql2-text

when QGIS is expecting

http://www.opengis.net/spec/cql2/1.0/conf/cql2-text

i.e. instead of “req” there should be “conf”. When I experimented by forcing the conformance reply to use “conf”, QGIS was able to use the interface correctly.

Kind regards,

Samuli Neuvonen, Finnish Environment Institute

There is a PR open for this at: [GEOS-12056] OGC API CQL conformance URIs are wrong by RaineEkman · Pull Request #9125 · geoserver/geoserver · GitHub (ticket Jira)

My guess is these implementations are based on the proposed standards and thus predate the “approved standard“ and have yet to be updated, I may be wrong on that though. Part of the specs are tested in the CITE suites: Run CITE Tests · Workflow runs · geoserver/geoserver · GitHub

For the specific case of CQL2 the specification requires.

8.2. Requirements Class “CQL2 Text”

Requirements Class
http://www.opengis.net/spec/cql2/1.0/req/cql2-text

Or an inconsistency in the specification:

A.1. Conformance Class “CQL2 Text”

Conformance Class
http://www.opengis.net/spec/cql2/1.0/conf/cql2-text

It is unclear to me what is expected here, I expect /conf/ is correct.

Reporting the inconsistence to OGC: