1323 Commits

Author SHA1 Message Date
Jo 44df078866 - fixed typo on parameter of url pattern for views.collection_item_tiles (#1601)
- updated django collection_item_tiles method to call the get_collection_tiles_data api method
2024-03-19 17:35:45 -04:00
Bernhard Mallinger e131cbf8da Implement subscriber support for dummy manager (#1598)
* Implement subscriber support for dummy manager

NOTE: In current main, the missing handling of this parameter always
leads to errors.
https://github.com/geopython/pygeoapi/issues/1597

* Update dummy.py

---------

Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
2024-03-18 22:20:52 -04:00
Mafaldarc 5c8f057db0 Revert pydantic method 'model_validate_json' to v1 version (#1596)
Fix bug when trying to process Elasticsearch CQL_JSON data on post_collection_items
Use method 'parse_raw' from v1 instead 'model_validate_json'
2024-03-15 11:42:59 +01:00
Angelos Tzotsos 6171597fb9 switch back to dev 2024-03-13 11:16:17 +02:00
Angelos Tzotsos 0ce2219fec update release version 2024-03-13 11:01:14 +02:00
Tom Kralidis ff4c4f6d46 Flask: sanitize OGC schema pathing (#1593) 2024-03-12 15:16:34 +02:00
Tom Kralidis d8a1b741ed OpenAPI: skip failing collections (#1577) (#1585) 2024-03-11 18:33:52 -04:00
Angelos Tzotsos d128d5273b switch back to dev 2024-03-11 13:46:23 +02:00
Bernhard Mallinger 94ae782b6c ogc api processes subscriber (#1313)
* Exclude None from `get_processor` return type annotation

An exception is raised in case of error, so it can't ever return None

* Add support for OGC API Processes Subscriber

The subscription URLs are passed to the manager, which
then has to call them appropriately.

By default, managers have the attribute `supports_subscribing`
set to `False` in order to not break the API for these. The
subscriptions are only passed to if this is set to `True`

* Add ogc api callback class to conformance

https://docs.ogc.org/is/18-062r2/18-062r2.html#toc67

* Make successUri mandatory in subscriber

It's mandatory in the standard.

Thx @ricardogsilva !

* Use snake case in python for fields which are camel case in the api

Thx @ricardogsilva !

* Add subscriber to method docstring

* Provide default value for subscriber for managers not supporting it

Thanks @ricardogsilva !

* Factor out notification call into methods

This increases reusability by other managers

Thanks @ricardogsilva !

* Add an example call for a process subscriber

* Change test urls to valid urls

* Third party imports in own block
2024-03-11 07:16:28 -04:00
Angelos Tzotsos ab4fe09192 update release version 2024-03-11 13:01:33 +02:00
Tom Kralidis 962eb6e73f restore stale-bot schedule 2024-03-10 17:47:21 -04:00
Tom Kralidis 625866c4e8 stale-bot initial live run 2024-03-10 17:20:08 -04:00
Angelos Tzotsos 329baff757 GDAL 3.8.4 (#1587)
* Preparing dependencies and workflows for upcoming UbuntuGIS upgrade to GDAL 3.8.4
* Update base Ubuntu image
2024-03-10 18:25:28 +02:00
Tom Kralidis c9406985c9 fix provider type handling (#1588) 2024-03-10 18:06:22 +02:00
Tom Kralidis 77a18e07c0 Stale bot hourly testing dry run (#1589)
* update stale-bot to run hourly while testing

* update operations per run
2024-03-10 10:38:39 -04:00
Francesco Bartoli e69a9744a2 Revert pydantic models to v1 version (#1584)
* Revert pydantic models to v1 version

Revert pydantic models to v1 version

Revert pydantic models to v1 version

Revert pydantic models to v1 version

* Add initial tests for models

Add initial tests for models

* Revert pydantic models to v1 version

Revert pydantic models to v1 version

Revert pydantic models to v1 version

Revert pydantic models to v1 version

* Add initial tests for models

Add initial tests for models

* Fix and replace methods from pydantic v2

* Add more tests for cql models
2024-03-10 08:58:21 -04:00
Tom Kralidis 54688969b0 update GitHub Actions/CI to Python 3.10 (#1543) (#1586) 2024-03-10 13:23:52 +02:00
Ricardo Garcia Silva 024844d244 Add stalebot config (#1582)
* Added initial stale bot CI workflow

* Added initial stale bot CI workflow

* Added permissions and exempt label to stale action

* Tweaked stale bot workflow file

---------

Co-authored-by: Ricardo Garcia Silva <ricardo@kartoza.com>
2024-03-08 06:11:39 -05:00
Tom Kralidis 1e424174f5 implement RFC4 in issue / PR templates (#1580) (#1581)
* implement RFC4 in issue / PR templates (#1580)

* fix
2024-03-07 13:12:36 -05:00
Bernhard Mallinger c81d3f81f5 Mock server in WFS provider tests (#1534)
* Mock server in WFS provider tests

This commit mocks the layer in WFS tests and prepares return values
required to satisfy the tests. This reduces the test fidelity, but it
makes them stable and increases execution speed (literally 100x on my
machine, 66 sec to 0.6 sec).

Since the return value is mocked, it doesn't make sense to send
different parameters to the server, so some tests became obsolete.

The original tests are still there in another file, but are not supposed
to be run in CI.

* Mention wfs live tests in github CI

* Comment test file where all tests are skipped

pytest considers this to be a failure, but we still want the test file
to be mentioned here
2024-03-06 10:55:31 -05:00
Tom Kralidis 5accd7f190 OGC API - Processes CITE compliance (#1311)
* update OGC API - Processes CITE compliance
2024-03-06 17:37:12 +02:00
Bernhard Mallinger 8d377072b9 Allow retrieving extra properties in oracle provider (#1544)
* Implement extra_properties in oracle Provider

These can be used to configure additional database-computed fields
in the config file which are returned on `get` and `query` calls

* Allow mandating properties which are not part of the output

Previously, properties which were not requested for the output
were not part of `fields`, which means that they were not passed
in to the provider as filter properties for e.g. `query()`.

This commit adds them there and introduces a new variable
`filtered_fields`, which is used for limiting the output of queries.

There is also some minor refactoring, but the existing and also the
newly written tests should avoid regressions.

* Restore previous behavior for default arguments
2024-03-06 10:24:51 -05:00
Francesco Bartoli 34d595accf Update openapi.py (#1574) 2024-03-03 16:49:02 -05:00
Jo b6bf0a72b2 - updated emoji to something more readable (#1571) 2024-03-02 13:31:21 -05:00
Tom Kralidis 80b7a0c48c clean up API docs, move plugins to wiki (#1572) 2024-03-02 17:44:10 +00:00
Francesco Bartoli 4f97c5ebac Uncomment gdal (#1567)
* Uncomment gdal
* Add step to use UbuntuGIS unstable ppa
* Fix sudo privileges
* Pin gdal below 3.8.4
Pin gdal below 3.8.4
* Fix OGR tests which are intermittently giving inconsistent results
2024-03-02 13:59:08 +02:00
Angelos Tzotsos 11824d28ee Enable back UbuntuGIS to get GDAL 3.8.x. (#1570)
* Enable back UbuntuGIS to get GDAL 3.8.x.
* Update to latest Jammy base image.
* Add software-properties-common to Build dependencies so it gets removed on cleanup.
2024-03-01 18:35:59 +02:00
Jo 74f4772a63 Make tiling scheme parameter optional (#1566)
* - Remove the need to define a tiling scheme in the configuration, for providers that support only one scheme
- Support only WebMercatorQuad for  mvt-elastic tiles

* - updated documentation for MVT-elastic provider

* - remove the need of a tiling scheme option in MVT-tippecanoe provider

* - updated tiles documentation with support to tiling-schemes

* - fixed regression bug with coordinate order on vector tile preview

* - add working url for wmts-facade code snippet

* - fixed flake8 example
2024-03-01 11:03:50 -05:00
Tom Kralidis 8ecb00a6b7 update HTML collection page (#1568) (#1569) 2024-03-01 11:03:26 -05:00
Simon Seyock 5764d3b926 WMTS Provider (#1473)
* feat: add WMTSFacadeProvider

* feat: add tileset metadata to tile page

* feat: add jpeg format

* fix: minor adjustments

* fix: remove tms_facade

* chore: fix flake8 errors

* docs: add docs for publishing with the WMTS provider

* docs: spelling

* fix: adjust metadata_format for WMTSFacade

* fix: address review

* fix: use mimetype as link type
2024-03-01 08:42:38 -05:00
Peter Garnæs f092cf548e Django server: EDR sanity test (#1530)
* EDR queries without instance id works

Django URL's without instance IDs called a method requiring instance
IDs, resulting in a crash.

Instance ID defaults to None, which is also standard for the provider
that ultimately will be called.

Regression test added

* Use fixtures in django server tests

---------

Co-authored-by: Peter Garnæs <pga@dmi.dk>
2024-02-29 13:48:57 -05:00
Peter Garnæs 462b4f3566 EDR /locations and /locations/{locId} endpoints (#1487)
* Expose EDR locations queries to the provider interface

The EDR specification allows for locations queries to be performed:
https://docs.ogc.org/is/19-086r6/19-086r6.html#_60c4d31c-62f2-4dc7-9a3e-6a1a9127d29e

Providers should be allowed to implement these query types.

* Generate correct OpenAPI spec for EDR locations collections

* Imlement EDR locations query routing for providers in django

---------

Co-authored-by: Peter Garnæs <pga@dmi.dk>
2024-02-29 13:48:07 -05:00
Tom Kralidis 3ce68acdb8 keep 4326 bbox and crs for coverages (#1564) 2024-02-28 18:04:18 +02:00
Tom Kralidis 78c6e953bc fix OACov based collection output (#1561) 2024-02-28 07:01:34 -05:00
Aleksandar Zec f4c2ff970f #1545 fix: resolved issues on Breadcrumb routes for TMS endpoints (#1555) 2024-02-28 05:48:27 -05:00
Resad Hajdarpasic f472a5f8a6 fix Django EDR implementation on non-instance endpoints (#1528) (#1549)
* fix Django EDR implementation on non-instance endpoints (#1528)

* clean up code to follow PEP8 and fix docstring (#1528)

* remove trailing comma from view definition args (#1528)

---------

Co-authored-by: Resad Hajdarpasic <resad.hajdarpasic@planetsoft.eu>
2024-02-28 03:34:46 -05:00
PascalLike a640f7c487 PostGIS MVT provider and docs (#1552)
* Adding mvt Postgis provider

* Fix test

* Update docs

* Rename mvt_postgis to mvt_proxy

* Update ogcapi-tiles.rst

* Update mvt_proxy.py

* Remove not implemented method

* Fix typo

---------

Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
2024-02-27 14:56:02 -05:00
Tom Kralidis 452e8c4254 align OACov to latest specification updates (#1548)
* align OACov to latest specification updates

* fix

* fix

* fix

* fix
2024-02-27 13:25:51 -05:00
Emmanuel Jolaiya 988d8aa7e2 fixed bug with breadcrumb routes (#1554)
* fixed bug with breadcrumb routes

* removed example files in commit

* Delete example-openapi.yml

* Delete example-config.yml
2024-02-27 16:37:56 +00:00
bojanKuzma 4b2b60c1de Added translations for Serbian and Bosnian language (#1553)
Co-authored-by: Bojan Kuzmanovic <bkuzmanovic@planetsoft.ba>
2024-02-27 10:37:27 -05:00
Bernhard Mallinger 6bd1bc1118 Clear up space before running CI (#1550)
* Clear up space before running CI

With all the databases and dependencies more than the 19G is
needed (this is the amount which is currenlty available on runners).

There is a github action which meddles with the disc layout, which is
probably too much for our use case, but it gave me the idea that you can
delete files which are needed to support certain platforms such as
dotnet and android.
https://github.com/easimon/maximize-build-space

With only manually removing those files, around 30G are available which
should be enough for the foreseeable future

* Update main.yml

---------

Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
2024-02-27 07:52:02 -05:00
David Huard b54bdd80a8 Use get to fetch units attribute to avoid error if missing. (#1539) 2024-02-22 23:13:24 -05:00
Jo c85d6003b4 Merge pull request #1535 from geopython/docs-oatiles-ri
add OGC API - Tiles as RI in docs
2024-02-09 15:07:33 +00:00
Tom Kralidis c3adc94269 add OGC API - Tiles as RI in docs 2024-02-09 07:59:00 -05:00
Ricardo Garcia Silva 88ae474627 run api in another thread when using starlette (#1533) 2024-02-02 20:34:09 +01:00
Jo ffd33fafc1 Merge pull request #1532 from doublebyte1/fix-rel-type
Fixed typo in the tiling scheme "rel" property
2024-02-02 16:46:37 +00:00
doublebyte cb3b2cd2dc - fixed typo in the tiling scheme rel type 2024-02-02 16:23:38 +00:00
Aontnio Cereicllo c6d506aa0b Get tiles metadata also from URL (#1526) 2024-02-01 10:15:02 +01:00
Ricardo Garcia Silva 2d0fc5df3e Convert coordinates to storage crs when filtering via cql (#1489)
* Allow either URL or URN CRS URIs

* Implemented transformation of geometries in CQL filter

* Fixed flake8 issue

* Removed commented out code

* Implemented support for the filter-crs query parameter

* Remove unneeded print() calls
2024-01-30 20:16:12 -05:00
Jo de787b0f22 Return a 400 status code for an "out-of-range" get tile request (#1503)
* - return a 400 error, when the MVT_elastic provider receives a request for a tile out of range

* -Catching errors on get_tile requests for mvt-elastic provider:
 - if the status code is bellow 500, it throws a ProviderInvalidQueryError (status code 404)
 - otherwise it throws a server error (status code 500)
- the api catching of errors is left as it was before, as the appropriated status code is being sent by the provider.

* - updated condition on tiles request (mvt-provider), to exclude responses with a status of 500 from throwing a client error
2024-01-30 20:11:13 -05:00