geopython / pygeoapi

pygeoapi is a Python server implementation of the OGC API suite of standards. The project emerged as part of the next generation OGC API efforts in 2018 and provides the capability for organizations to deploy a RESTful OGC API endpoint using OpenAPI, GeoJSON, and HTML. pygeoapi is open source and released under an MIT license.
https://pygeoapi.io
MIT License
474 stars 255 forks source link

Module for resource management / dynamic resources #1351

Open matthesrieke opened 11 months ago

matthesrieke commented 11 months ago

Is your feature request related to a problem? Please describe. Currently, pygeoapi does not allow to add new resources to the running instance. Resource are defined via config and a restart is required to enable new resources. This feature request is a first step into the goal to allow dynamic additional/removal/update (basically CRUD) of resources at runtime.

Describe the solution you'd like The idea of this feature request is to refactor the API class to use a dedicated class for resource management. Currently, API uses a lot of self.config['resources'] style access. By introducing a dedicated ResourceRegistry (abstract class), the architecture will allow to replace the config-based implementation with a CRUD style registry, even controlled by an API to allow a transactions.

The implementing class for ResourceRegistry can be controlled via the configuration.

Describe alternatives you've considered Alternatives are to implement some workarounds in the API class, but they would make the class even more complex.

Additional context I have seen some related requests in the GitHub discussions here:

A WIP branch is already in progress: https://github.com/geopython/pygeoapi/compare/master...52North:pygeoapi:feature/resource-registry

github-actions[bot] commented 5 months ago

As per RFC4, this Issue has been inactive for 90 days. In order to manage maintenance burden, it will be automatically closed in 7 days.

ridoo commented 3 months ago

@matthesrieke may be related: https://github.com/geopython/pygeoapi/issues/1636

matthesrieke commented 3 months ago

Thanks, will join the conversation.

github-actions[bot] commented 2 weeks ago

This Issue has been inactive for 90 days. As per RFC4, in order to manage maintenance burden, it will be automatically closed in 7 days.

ridoo commented 2 weeks ago

Is there any statement from the maintainers (@tomkralidis @justb4 ) on this? I saw #1636 was scheduled for MS 0.17 & 0.18, but as far I can see there are open discussion threads.