* 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
* - refactored mvt classes to support all implemented metadata formats, regardless of the provider
* - fixed formatting issues
* Implementing basic tile metadata methods
* Fixing yml models
* Adding additional format
* Fixing schema set on load
* Removing unused field from documentation
* - added support to TileMatrixSets endpoint
- added TileMatrixSet definitions for WorldCRS84Quad and WebMercatorQuad
* - added tiling-schemes link in the json representation of the landing page
* - added html pages for tilematrixset endpoints
* - advertise json and html representations of the tiling schemes in the landing page
* - Use api definition of Well-known TileMatrixSets in the tiling-schemes element of the tiles metadata page
* - added tiling-scheme url on tiles metadata page, for es and tippecanoe providers
* - fixed flak8 formatting errors
* - updated number of links on the landing page, on the api test
* - Manage tile matrix set id dinamically, on tilematrix set flask endpoint
* - renamed functions to lower case
* - renamed tilematrix set functions on flask
* - Use TtileMatrixSetId parameter in tilematrixset api function
* - added support to TileMatrixSet endpoints on starlette
* - added test for tileMatrixSets api endpoint
* - added test for the tilematrixset endpoint
* - added routes for django
---------
Co-authored-by: Antonio Cerciello <antonio.cerciello@gmail.com>
* Pass OPENAPI_DOCUMENT to API also in django mode
Fixes#1509
* Add basic test for django
This only verifies that one page loads, which however
covers most of the django setup.
* Install django requirements in CI
* Added .pre-commit-config.yaml file
* Initial pass of pre-commit with its default rules and flake8
* Revert "Initial pass of pre-commit with its default rules and flake8"
This reverts commit 86d39e964e8122580d675f4639ae2d15b85c02e2.
* Made pre-commit only act on code files
* Added sql to the pre-commit file pattern
* Initial pass of pre-commit
* - refactored mvt classes to support all implemented metadata formats, regardless of the provider
* - fixed formatting issues
* Implementing basic tile metadata methods
* Fixing yml models
* Adding additional format
* Fixing schema set on load
* Removing unused field from documentation
* Change method name to generic vendor
* Keeping extra metadata info for tippecanoe provider
* Fix flake validations error
---------
Co-authored-by: doublebyte <doublebyte@hushmail.com>
Swap LOGGER.error for LOGGER.exception so that details of an exception that occurs during process execution are logged including the traceback to make debugging easier.
This allows triggering errors from a processor with specific
http status code, ogc exception code and a custom message.
This is very useful the processor realizes that the input parameters
don't make sense or are not allowed, in which case it can supply a
descriptive error message and an http status code different from 500.
This api method did not have any tests until now.
This also contains a small fix: If no content type was requested,
then by default, the header specified the content type
`application/json`, whereas the content was actually html. Note that
this is rarely a problem because browsers do request html explicitly.
* render data viewing page for collections #1409
render data viewing page for STAC collections if there is no STAC item below.
* flake8
* flake8
* add additional check for collections
* render data viewing page for collections #1409
render data viewing page for STAC collections if there is no STAC item below.
* flake8
* flake8
* add additional check for collections
* Add step for checking docker image CVEs
* Add buildx command and path to Dockerfile
* Fix working directory
Fix working directory
Fix working directory
Fix working directory
* Use trivy action
Use trivy action
* Use github placeholder over custom variable
* Add a step in CI for CVEs scanning
* Move the check for vulnerabilities on its own workflow
* Clean the clone job and comment accepted risk
* Add a badge for vulnerabilities clearance in the readme
* #1389 added 1st draft
* fixed flake8 issues
* #1388 added formatable date and time
* 1st draf of docu
* #1389 added documentation for logfile rotation
* #1389 adjusted documentation for rotation
* Fix import order
* Add advanced logging config to schema
* Remove .vscode folder from .gitignore
* Move references to bottom of file in docs
* Use single quotes
* Restore original .gitignore
* Update configuration.rst
* Update log.py
* Update pygeoapi-config-0.x.yml
---------
Co-authored-by: L K <lucka.kadlecova@gmail.com>
Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
* Add Admin API
- Create `admin.py` to serve as Admin API Core
- Create `flask_admin.py` to create flask blueprint for admin API
- Consolidate configuration getter
- Add Pathlib serializing
- Add docker example
* Add integration tests
- Amend admin example to allow writing to configuration. If FS is read only admin API does not work. Returns a 500 and logs `OSError: [Errno 30] Read-only file system: '/pygeoapi/local.config.yml' `
* Preserve env variables in configuration
* Use common accessor functions
- Use common configuration accessor methods for Django and Starlette
* GET returns raw config file
Return configuration with environment variables preserved on GET requests
* Safeguard env variables for root cfg view
"bind": {
"host": "localhost",
"port": "6000"
}
->
"bind": {
"host": "${HOST}",
"port": "${PORT}"
}
* Simplify admin HTML imports
- Use jinja recursion to expand the configuration
- Remove vue from templates
* Create admin API documentation
* Use render_item_value in admin template
* Add Admin API
- Create `admin.py` to serve as Admin API Core
- Create `flask_admin.py` to create flask blueprint for admin API
- Consolidate configuration getter
- Add Pathlib serializing
- Add docker example
* Update GitHub Actions deployment
* Update admin entrypoint
Update admin entrypoint to align with upstream pygeoapi implementation
* Make requested changes
Co-Authored-By: Tom Kralidis <tomkralidis@gmail.com>
* Amend test url
Co-Authored-By: Tom Kralidis <tomkralidis@gmail.com>
* Fix Admin CI tests
* Add PUT and PATCH for root configuration
- Add put and patch for root configuration
- Add CI tests for PUT and PATCH of root
* Update OpenAPI document wording
* Update entrypoint.sh
Replace tabs with spaces
* Remove unused step
Error from rebasing. Admin API tests are moved to their own job.
* Use jsonpatch
- Use debian supported packaging
- Use custom merge function
* Move test data location
* Create Starlette and Django app
- Fold flask_admin.py into flask_app.py
Co-Authored-By: Tom Kralidis <tomkralidis@gmail.com>
* Make requirements-admin.txt
Move admin dependencies to requirements-admin.txt
* Delete guiblock.html
* Update test count for STAC
Update expected test count for addt'l admin test data
* Relegate config warning to config.py
* Move admin tests out of example
* Delete admin docker example
* Update admin-api.rst
* Update pygeoapi-config-0.x.yml
* Update configuration.rst
* Update config.py
* Update admin.py
* Update admin.py
---------
Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
* Use generic error handling in get_collection_item
* Use generic error handling in get_collection_items
* Allow specifying a user-facing message in ProviderGenericError
* ose generic error handling in more instances
* Use generic error handling in more instances
* Linting fixes
* - Refactor MVTProvider, to support subclassing
- Added provider for MVT Tippecanoe
* - fixed test configuration for the MVT tippecanoe provider
* - added MVT elastic provider
* - added documentation for mvt providers
- fixed formatting
* - removed tiles publishing from elastic provider example
- updated gitignore to ignore data folder from elastic example
* - added docker example for MVT-elastic backend provider
* - Added docker example for tippecanoe MVT provider
* - updated README of the docker examples section, to catch up with the provided examples.
* - renamed mvt-elastic and mvt-tippecanoe docker example folders.
* - renamed elastic and tippecanoe folders to lower case
* - fixed formatting issue
* - s/Mabox/Mapbox/
* - put plugin provider names in single line
* - renamed MVT provider base class to BaseMVTProvider.
* - added MVT base class
* - reviwed uppercase on .gitignore
- add folder to .gitignore
* - removed new line and brackets
* - removed redundant line with base class
---------
Co-authored-by: doublebyte1 <info@doublebyte.net>
* Added support for table synonyms
* Added new parameters to query and manipulator call
* Changed error types
* Mount volumes to oracle container
* workflow part 2
* workflow part 3
* workflow part 4
* Changed file permissions to 777
* Deleted folder
* Recreated folder
* Changed to official Oracle Docker-Image
* Added Chown user
* back to gvenzl/oracle-xe:latest
* Tried docker-entrypoint-startdb.d
* Added addnab/docker-run-action@v3
* Added port and deamon mode
* next try
* added job.container.network
* next try
* + docker ps
* next try
* using docker run
* next try
* next try
* Changed len of array to 11
* Use sdo_util.from_geojsonfor create and update
* Flake8 changes
* Fixed error with views
* Added crs_transform_spec support
* Without default_crs
* Updated documentation for Oracle Provider
* changes for flake8
* Added crs_transform_spec support to get function
* review changes
* Added configurable SDO operator
This now fixes the issue that the `Accept` header wasn't considered for
format selection.
This adds netcdf as a known mime type in order to be able to test this,
but also for actual clients to use.
Note that if we want to allow other mime types such as `application/x-grib2`,
we also have to add them to `FORMAT_TYPES`.
Fixes#1390
* Refactored get_collection_coverage tests
Using pytest's parametrize mark. This makes it easier to isolate test cases in order to fix the errors that are showing up when running under Python3.8
* Add Python 3.8 to the CI matrix
* Reverted tests back to non-parametrized form
* Dropped Python 3.7 from main github CI workflow
* replaced ubuntu 20.04 with ubuntu 22.04 in CI workflow files
---------
Co-authored-by: Ricardo Garcia Silva <ricardo@kartoza.com>