* Move tinydb configuration from base manager to tinydb
* Rename job_result to job
It's actually the job metadata
* Make get_job_result only return the result
The status is part of the metadata which is already returned by get_job
* Detect format from request headers, not response headers
* Default to json output, not html
This is a reasonable default because mostly browsers want html, and they
always request html, whereas dev tools used by api users might not
always request json.
* Don't provide outputs when executing async an job
In this case, we don't have any outputs yet.
* Make connection an optional attribute for managers
instead of only defining it for tinydb
* add process manager
* process manager updating
* control connectivity from inside manager
* missing method on execute_process function signature
* adds tinydb depenedency for requirements-provider
* adds some processes tests
* process manager under server config, not a process
* additional html rendering for jobs and processes
* fixes typo in docstring
* complete html templating for jobs and processes
* considers timezone when formatting processing start/end datetimes
* expanded locales; locale and tz environment variables
* makes environment TZ a global from pygeoapi/__init__.py
* don't redefine built-in format
* adds placeholder values in process form if given as examples
* placeholder in form handles null example
* changes to process progress update
* updates and changes to processing web UI
* adds python3-distutils dep, and env changes for TZs and locales
* adds tinydb dependency for processes
* Adds libpq-dev and related deps for processing - should eventually be reconciled
* minor margin change
* fix bug in postJob.js that prevented results from displaying
* move process elements around to economise on space
* adds second, complex process
* post data may be bytes
* make external process example
* adds redis process manager (may be moved to third-party plugin eventually)
* reintroduce default async processing; refactoring managers; improving sync/async processing ui
* throw pygeoapi ManagerExecuteError, not redis exception
* adds test for async-execute
* restores original test host
* separates async execute handler function
* adds support for file uploads as processing inputs
* adds endpoint for file download as process output
* naming consistency
* Fix job submission form in case server url is relative (#549)
`new URL()` fails if the first argument isn't a complete url
* Implement job deletion in UI, api and tinydb
* Also allow deletion from job list
The UI could be fancier by reloading the page or just removing the
deleted job right away, but I don't want to start building that now.
* Delete output file when deleting a job
* typo in test case
* move delete button in job view
* remove Dockerfile changes (cf #470)
* removes some docs/source*.rst absent in master
* fixes whitespace
* fixes pip installs
* removes more locale-specific content, cf 70
* fixes duplicate app following merge
* removes redis as default plugin
* removes ENV_TZ, cf #407
* fix typo
* fixes syntax error
* process execution test cleanup
* Fix format detection in execute_process (#589)
Before, html was always selected.
* remove db files in code directories, fix flake8, specific functionality
* remove interactive capabilities in lieu of Swagger
* Add basic openapi documentation for job detail endpoint (#590)
It's somewhat superficial still, e.g. jobId is missing as
proper parameter in the UI.
* Show elapsed time for currently running jobs (#591)
* flake8, jobs workflow
* update docs, DB path in test config
* more code cleanup
* manager workflow cleanup
* add default dummy manager
* update docs
* fix routes
* fixed per comments
* fix per comments
* fix per comments
* fix travis
* simply describe process logic
* simplify describe process logic
Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
Co-authored-by: Jorge de Jesus <jorge.jesus@gmail.com>
Co-authored-by: totycro <bernhard.mallinger@eox.at>
Co-authored-by: Richard Law <richard.law@cartoncloud.com.au>
* google expects plain schema-org url
https://yoast.com/json-ld/resolves#574
* Revert "google expects plain schema-org url"
This reverts commit 7f09d4ce3cdd82a538071dec0f50191c7fa01520.
* hack to replace full path for short path, because pyld requires full, search engine expects short
* reproject dataset bounds to 4326 while analyzing stac content
* fixes code formatting, indicated by tests
adds the shp.xml file as asset
* fix indent
* as suggested by @tomkralidis, only reproject if projection != 4326 or nill
* better param names
Before, any file change in the repo would cause a reinstall of all
dependencies.
This commit splits the dockerfile in 2 phases:
First the files relevant for installation are added and all dependencies
are installed. Then the actual source code is added.
This way, rebuilding after sources have been changes takes a few seconds
rather than minutes.
Currently gunicorn is started in the entrypoint as subprocess. This
means that the entrypoint stays as process with PID 1 and eats the
signals that e.g. kubernetes sends to it. Thus when trying to update
the container, kubernetes must terminate the process ungracefully.
See e.g. this resources for a more detailed explanation:
https://hynek.me/articles/docker-signals/
This change replaces the entrypoint-shellscript with gunicorn, such that
signals are directly forwarded to gunicorn, where they are then handled.
One drawback of this approach is that lines after `exec gunicorn` are
not executed anymore. This currently affects `echo "END /entrypoint.sh"`.
A different approach would be to use `tini` to handle the system (see
link above). To do this, we would need to install tini.
* fix version output
* sort directory names
* unify tile tests
* fix typo in docs
* set OpenAPI info.version to pygeoapi version, add tiles output format
* align request/response headers, update not found tiles to return 404
* Add ogc api tiles implementation
* Add json response to tiles endpoint
* Return correct json payload
* Fix url generation
* Add vector tile layer with clickable items
* Fix typo
* Fix oafeat collection tiles link
* Add format to metadata link
* Fix almost all flake8 errors
* Fix metadata link
* Add routes to serving tiles
* Refactor tile implementation with an own module
* Add http client for mvt
* Fix visibility of tiles template
* Fix tiles in collection item page
* Change source to data coherently with stac provider
* Fix flake8 errors
* Fix test for conformance classes
* Fix flake8 errors
Fix flake8 errors
* Refactor to align with new configuration structure
* Fix MVT plugin name
* Add openapi tiles path and schemas
* Add ogc api tiles implementation
* Add json response to tiles endpoint
* Return correct json payload
* Fix url generation
* Add vector tile layer with clickable items
* Fix typo
* Fix oafeat collection tiles link
* Add format to metadata link
* Fix almost all flake8 errors
* Fix metadata link
* Add routes to serving tiles
* Refactor tile implementation with an own module
* Add http client for mvt
* Fix visibility of tiles template
* Fix tiles in collection item page
* Change source to data coherently with stac provider
* Fix flake8 errors
* Fix test for conformance classes
* Fix flake8 errors
Fix flake8 errors
* Refactor to align with new configuration structure
* Fix MVT plugin name
* Add openapi tiles path and schemas
* Fix flake errors
* Fix merge and tests
* Add test configuration and data for tiles
* Change mapbox vector tile provider name
* Fix provider inspection and filter
* Fix tiles rendering in collection page
* Add mimetype to the mvt provider
* Fix mimetype
* Rename functions accordingly to singular and plural forms
* Fix tiling schemes in tiles template
* Serve mvt through the pygeoapi route
* Refactor and add test for collection tiles
* Fix test for not being tiles
* Remove httpx dependency
* Fix missing comma
* Fix tests
* Fix flake8
* Add initial metadata implementation
* Fix route with preprocess
* Fix tiles template
Fix tiles template
* Complete tileset api and template
* Fix flake8
* Complete metadata with tilejson response
* Add support for local vector tiles
* Fix flake8
* Fix plugin tile object and provider name
* Add a todo comment
* testing alternate plugin setup, fix some HTML, add OpenAPI endpoint
* remove URI template
* add docs
* Fix failing test
* Fix flake8 error
Co-authored-by: Francesco Bartoli <francesco.bartoli@wfp.org>
Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>