[mapserver-commits] [MapServer/MapServer] 8494e8: OGCAPI Features: restore support for 'oga_complian...

Even Rouault noreply at github.com
Tue Feb 17 11:50:20 PST 2026


  Branch: refs/heads/main
  Home:   https://github.com/MapServer/MapServer
  Commit: 8494e8bec8e99af28bd4882850686e88fc2e0086
      https://github.com/MapServer/MapServer/commit/8494e8bec8e99af28bd4882850686e88fc2e0086
  Author: Even Rouault <even.rouault at spatialys.com>
  Date:   2026-02-12 (Thu, 12 Feb 2026)

  Changed paths:
    A msautotest/api/expected/ogcapi_api_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_collection_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_collections_items_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_collections_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_conformance_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_extraparams_collections_items_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_landing_page_unknown_parameter.json.txt
    M msautotest/api/ogcapi.map
    M msautotest/api/ogcapi_extraparams.map
    M src/mapogcapi.cpp

  Log Message:
  -----------
  OGCAPI Features: restore support for 'oga_compliance_mode' metadata item

and make it default to true.

That parameter was removed per PR #7360 which added support for a
extra_params configuration item.

This PR adds the param names from the extra_params as allowed parameters
to validate the query parameters. This is a pre-requisite for the
to-come support of "Queryables as Query Parameters" of
OGC API Features - Part 3 : https://docs.ogc.org/is/19-079r2/19-079r2.html#queryables-query-parameters


  Commit: d61a2654dcb45ab04bcbc6ed7d0c4dc8cf7d1356
      https://github.com/MapServer/MapServer/commit/d61a2654dcb45ab04bcbc6ed7d0c4dc8cf7d1356
  Author: Even Rouault <even.rouault at spatialys.com>
  Date:   2026-02-13 (Fri, 13 Feb 2026)

  Changed paths:
    M msautotest/api/expected/conformance.json
    M msautotest/api/expected/ogcapi_api.json
    M msautotest/api/expected/ogcapi_collections.json
    M msautotest/api/expected/ogcapi_collections_mn_counties.html
    M msautotest/api/expected/ogcapi_collections_mn_counties.json
    A msautotest/api/expected/ogcapi_collections_queryables_unknown_parameter.json.txt
    M msautotest/api/expected/ogcapi_extraparams_collections.json
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_major_rivers.html
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_major_rivers.json
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_population_centers.html
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_population_centers.json
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_match.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_match_with_bbox.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_no_match.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_no_match_with_bbox.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_not_queryable.json.txt
    A msautotest/api/expected/ogcapi_queryables.html
    A msautotest/api/expected/ogcapi_queryables.json.txt
    M msautotest/api/ogcapi.map
    A share/ogcapi/templates/html-plain/collection-queryables.html
    M src/mapogcapi.cpp
    M src/mapogcapi.h
    M src/mapogcfilter.h
    M src/mapogcfiltercommon.cpp
    M src/mapows.cpp
    M src/mapows.h
    M src/mapserver.h
    M src/maputil.c

  Log Message:
  -----------
  OGCAPI Features Part 3: add support for 'Queryables' and 'Queryables as query parameter'

Support 2 conformance classes of OGCAPI Features Part 3 Filtering (more to come)

- http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/queryables-query-parameters

Add a new layer metadata item "oga_queryables" to define the list of
items that can be queried. Defaults to none. Can be set to 'all', or a
comma separated list of items. Exactly like "gml_include_items"

```
LAYER
   METADATA
      "oga_queryable_items" "CTY_NAME,CTYONLY_,LASTMOD"
   END
END
```

```
$ mapserv -conf ../etc/mapserv.conf "PATH_INFO=/ogcapi.map/ogcapi/collections/mn_counties/queryables" "QUERY_STRING=f=json" -nh | jq .
```

```json
{
  "$id": "http://localhost/cgi-bin/mapserv/OGCAPI_TEST/ogcapi/collections/mn_counties/queryables",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "This is the standard Minnesota State County Boundary dataset.",
  "properties": {
    "CTYONLY_": {
      "description": "Queryable item 'CTYONLY_'",
      "type": "integer"
    },
    "Name": {
      "description": "Queryable item 'Name'",
      "type": "string"
    },
    "LASTMOD": {
      "description": "Queryable item 'LASTMOD'",
      "format": "date-time",
      "type": "string"
    }
  },
  "title": "State of Minnesota County Boundaries",
  "type": "object"
}
```

- http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/queryables-query-parameters

```
$ mapserv -conf ../etc/mapserv.conf "PATH_INFO=/ogcapi.map/ogcapi/collections/mn_counties/items" "QUERY_STRING=f=json&Name=Rice"
```

```
Content-Type: application/geo+json
Content-Crs: <http://www.opengis.net/def/crs/OGC/1.3/CRS84>
Link: <http://localhost/cgi-bin/mapserv/OGCAPI_TEST/ogcapi/collections/mn_counties/items?f=json&limit=9&offset=0&Name=Rice>; rel="self"; title="Items for this collection as GeoJSON"; type="application/geo+json"
Link: <http://localhost/cgi-bin/mapserv/OGCAPI_TEST/ogcapi/collections/mn_counties/items?f=html&limit=9&offset=0&Name=Rice>; rel="alternate"; title="Items for this collection as HTML"; type="text/html"
OGC-NumberMatched: 1
OGC-NumberReturned: 1

{"features":[{"geometry":{"coordinates":[[[-93.5242,44.5436],[-93.5225,44.5436],[-93.504,44.5438],[-93.5018,44.5438],[-93.4835,44.5438],[-93.4817,44.5438],[-93.4734,44.5438],[-93.4632,44.5438],[-93.4609,44.5438],[-93.4429,44.5438],[-93.4408,44.5438],[-93.4326,44.5438],[-93.4226,44.5439],[-93.4206,44.5439],[-93.4024,44.5439],[-93.4003,44.5439],[-93.383,44.544],[-93.38,44.544],[-93.3627,44.5441],[-93.3596,44.5441],[-93.3556,44.5441],[-93.3424,44.5442],[-93.3395,44.5442],[-93.3221,44.544],[-93.3191,44.544],[-93.3128,44.544],[-93.3019,44.544],[-93.2988,44.544],[-93.2813,44.544],[-93.2814,44.5298],[-93.2815,44.5153],[-93.2815,44.501],[-93.2815,44.4865],[-93.2817,44.472],[-93.2618,44.4718],[-93.2415,44.4716],[-93.2213,44.4714],[-93.2008,44.4714],[-93.1808,44.4713],[-93.1605,44.4713],[-93.1408,44.4712],[-93.1206,44.4713],[-93.1002,44.4718],[-93.0799,44.4719],[-93.0597,44.4718],[-93.0393,44.4719],[-93.0394,44.4576],[-93.0396,44.4432],[-93.0397,44.4287],[-93.0399,44.4143],[-93.04,44.3999],[-93.0401,44.3855],[-93.0402,44.371],[-93.0403,44.3565],[-93.0403,44.3419],[-93.0405,44.3273],[-93.0405,44.3129],[-93.0405,44.2983],[-93.0406,44.2838],[-93.0407,44.2693],[-93.0409,44.2548],[-93.041,44.2402],[-93.0411,44.2257],[-93.0411,44.2113],[-93.0411,44.1968],[-93.0427,44.1968],[-93.0459,44.1968],[-93.0613,44.1967],[-93.0661,44.1967],[-93.0815,44.1967],[-93.0862,44.1967],[-93.1003,44.1967],[-93.1015,44.1967],[-93.1063,44.1967],[-93.1092,44.1967],[-93.1218,44.1967],[-93.1267,44.1967],[-93.1301,44.1967],[-93.1418,44.1967],[-93.1467,44.1967],[-93.1561,44.1966],[-93.1622,44.1966],[-93.1661,44.1966],[-93.1703,44.1966],[-93.1822,44.1966],[-93.1856,44.1966],[-93.1865,44.1966],[-93.2023,44.1966],[-93.2037,44.1966],[-93.2064,44.1966],[-93.2225,44.1966],[-93.2265,44.1966],[-93.2292,44.1966],[-93.2426,44.1966],[-93.2465,44.1966],[-93.255,44.1966],[-93.2629,44.1966],[-93.2664,44.1966],[-93.2767,44.1966],[-93.283,44.1966],[-93.2865,44.1965],[-93.2905,44.1965],[-93.3032,44.1965],[-93.3063,44.1965],[-93.3235,44.1965],[-93.3264,44.1965],[-93.3277,44.1965],[-93.3436,44.1965],[-93.3466,44.1965],[-93.3639,44.1965],[-93.3666,44.1965],[-93.3842,44.1965],[-93.3866,44.1965],[-93.4042,44.1965],[-93.4065,44.1965],[-93.4244,44.1964],[-93.4267,44.1964],[-93.4447,44.1964],[-93.4469,44.1964],[-93.4648,44.1963],[-93.467,44.1963],[-93.4852,44.1964],[-93.4872,44.1964],[-93.5053,44.1963],[-93.507,44.1963],[-93.5255,44.1962],[-93.5253,44.2107],[-93.5251,44.2251],[-93.5251,44.2388],[-93.5251,44.2533],[-93.5252,44.2685],[-93.5252,44.2829],[-93.5252,44.2975],[-93.5252,44.312],[-93.5249,44.3266],[-93.5249,44.3411],[-93.5245,44.3557],[-93.5245,44.3704],[-93.5246,44.3848],[-93.5245,44.3994],[-93.5245,44.4138],[-93.5245,44.4283],[-93.5245,44.4427],[-93.5245,44.4572],[-93.5244,44.4717],[-93.5245,44.4862],[-93.5244,44.5007],[-93.5243,44.5152],[-93.5244,44.5297],[-93.5242,44.5436]]],"type":"Polygon"},"id":"66","properties":{"Area":1335114621.00336,"CTYONLY_":66,"Code":"RICE","LASTMOD":"2010-10-17T00:00:00Z","Name":"Rice","Perimiter":154431.78788},"type":"Feature"}],"links":[{"href":"http://localhost/cgi-bin/mapserv/OGCAPI_TEST/ogcapi/collections/mn_counties/items?f=json&limit=9&offset=0&Name=Rice","rel":"self","title":"Items for this collection as GeoJSON","type":"application/geo+json"},{"href":"http://localhost/cgi-bin/mapserv/OGCAPI_TEST/ogcapi/collections/mn_counties/items?f=html&limit=9&offset=0&Name=Rice","rel":"alternate","title":"Items for this collection as HTML","type":"text/html"}],"numberMatched":1,"numberReturned":1,"type":"FeatureCollection"}
```


  Commit: 77820ffc6e98e203d32c2b9e370554a6df4b05f1
      https://github.com/MapServer/MapServer/commit/77820ffc6e98e203d32c2b9e370554a6df4b05f1
  Author: Even Rouault <even.rouault at spatialys.com>
  Date:   2026-02-17 (Tue, 17 Feb 2026)

  Changed paths:
    M msautotest/api/expected/conformance.json
    M msautotest/api/expected/ogcapi_api.json
    A msautotest/api/expected/ogcapi_api_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_collection_unknown_parameter.json.txt
    M msautotest/api/expected/ogcapi_collections.json
    A msautotest/api/expected/ogcapi_collections_items_unknown_parameter.json.txt
    M msautotest/api/expected/ogcapi_collections_mn_counties.html
    M msautotest/api/expected/ogcapi_collections_mn_counties.json
    A msautotest/api/expected/ogcapi_collections_queryables_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_collections_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_conformance_unknown_parameter.json.txt
    M msautotest/api/expected/ogcapi_extraparams_collections.json
    A msautotest/api/expected/ogcapi_extraparams_collections_items_unknown_parameter.json.txt
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_major_rivers.html
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_major_rivers.json
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_population_centers.html
    M msautotest/api/expected/ogcapi_extraparams_collections_mn_population_centers.json
    A msautotest/api/expected/ogcapi_landing_page_unknown_parameter.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_match.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_match_with_bbox.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_no_match.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_no_match_with_bbox.json.txt
    A msautotest/api/expected/ogcapi_queryable_in_query_parameters_not_queryable.json.txt
    A msautotest/api/expected/ogcapi_queryables.html
    A msautotest/api/expected/ogcapi_queryables.json.txt
    M msautotest/api/ogcapi.map
    M msautotest/api/ogcapi_extraparams.map
    A share/ogcapi/templates/html-plain/collection-queryables.html
    M src/mapogcapi.cpp
    M src/mapogcapi.h
    M src/mapogcfilter.h
    M src/mapogcfiltercommon.cpp
    M src/mapows.cpp
    M src/mapows.h
    M src/mapserver.h
    M src/maputil.c

  Log Message:
  -----------
  Merge pull request #7433 from rouault/ogcapi_part3_queryables

OGCAPI Features Part 3 Filtering: add support for 'Queryables' and 'Queryables as query parameter'


Compare: https://github.com/MapServer/MapServer/compare/26d2b3e03a3c...77820ffc6e98

To unsubscribe from these emails, change your notification settings at https://github.com/MapServer/MapServer/settings/notifications


More information about the MapServer-commits mailing list