v3.2.0
Speedup: request caching 🚀
This release finally introduces server-side caching of requests! Needless to say, it does so in a way that does not compromise the safeguarding of your data, respecting the permissions level of the requesting user.
While you're not editing your tree but "only" browsing it, this should lead to a massively faster browsing experience, as any data that has been requested before will be served from cache rather than having to be recomputed. This will be particularly noticable for costly requests, like DNA matches with relationship information or tree graphs.
The caching is controlled by the new REQUEST_CACHE_CONFIG configuration option. Note that the default docker image caches requests in a directory under /app/cache/. If you have modified the volumes from the default docker compose file, please make sure that /app/cache/request_cache is inside a docker volume.
Telemetry (anonymzed & opt-out) 📡
Starting from this version of Gramps Web API, every 24 hours, a Gramps Web API server will send a small JSON object to an endpoint controlled by the maintainer of Gramps Web with the following information:
- a fully anonymized unique identifier of the server
- a fully anonymized unique identifier of the tree
- a timestamp
This information will be used by the Gramps Web developers to understand the current number of active Gramps Web installations, which is important e.g. to decide about which map tile service to use by default.
You can opt out from this telemetry by setting the config option DISABLE_TELEMETRY to something trueish, but please don't, as we would like to have more realistic statistics. Thank you!
You can read more about the details in the documentation and leave your feedback on the forum.
Note that the timestamp is stored in a cache controlled by the new PERSISTENT_CACHE_CONFIG configuration option. The default docker image uses a directory under /app/cache/ for this. If you have modified the volumes from the default docker compose file, please make sure that /app/cache/persistent_cache is inside a docker volume that is accessible to both the Gramps Web API container and the Celery container, otherwise the telemetry will be sent more often than needed (you can check the logs of your Celery container to check when the telemetry is sent).
New development setup 🔧
To simplify getting started with Gramps Web API development, we have created a new default development setup. It is based on Visual Studio Code and Dev Containers.
This uses containers to set up a standardized, fully featured development environment with all the necessary dependencies and the possibility to spin up a local Gramps Web API instance with an example family tree database with a single command in VS Code, without interfering with your local Gramps installation.
To find out more, check out the new development documentation.
Needless to say, if you already have a working development environment and you don't want to change it, there is no need to switch to dev containers.
Other changes 🩹
- The
/api/events/endpoint now additionally returns the raw place name in theprofile(previously, it only returned the formatted place name that depends on the configured place format) - Fixed an error preventing the replacement of missing files in media objects when using object storage (#651)
- Fixed an issue with the search reindex CLI command (#652)