pygeoapi
pygeoapi copied to clipboard
Module for resource management / dynamic resources
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:
- https://github.com/geopython/pygeoapi/discussions/1074
- https://github.com/geopython/pygeoapi/discussions/1347
A WIP branch is already in progress: https://github.com/geopython/pygeoapi/compare/master...52North:pygeoapi:feature/resource-registry
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.
@matthesrieke may be related: https://github.com/geopython/pygeoapi/issues/1636
Thanks, will join the conversation.