* 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
* 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
* 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>
* 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
* 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
* 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.
* - 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
* 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>
* 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>
* 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>
* 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
* - 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