Skip to content

Releases: gramps-project/gramps-web-api

v3.5.0

15 Nov 12:07
6de9daa

Choose a tag to compare

This release brings a mix of improvements to the development environment, API changes needed for more complete display of place hierarchy information, and updates as well as fixes to the OIDC authentication feature introduced in v3.4.0.

Improved Debugging 🛠

Courtesy of @Ziesie1 in #723:

  • New debug configs for the API and tests, so developers can use the VS Code debugger
  • DISABLE_CACHES env variable to avoid cache-related breakpoint issues

Better Historical Place Data 🌍

From @Ziesie1 in #707:

  • Place profiles now contain date ranges for place hierarchy relationships
  • This is the backend part of upcoming Gramps Web improvements to edit and display place hierarchies

Smoother OIDC Handling 🔐

Implemented by @DavidMStraub in #728 and #729:

  • Fix: OIDC accounts now delete automatically when removing a user (in v3.4.0, this was only the case for user databases with a PostgreSQL backend)
  • New callback format (/api/oidc/callback/provider_id) supported for providers like Microsoft, with full backward compatibility

New Contributors 💪

Full Changelog: v3.4.1...v3.5.0

v3.4.1

31 Oct 14:42
ad04ca3

Choose a tag to compare

This is a maintenance release fixing several minor issues.

Fixes for the new external authentication (OIDC) feature

Other fixes

Full Changelog: v3.4.0...v3.4.1

v3.4.0

19 Oct 11:40
6558eb3

Choose a tag to compare

Support for external authentication providers 🫆

This release implements one of the most wanted features on the roadmap: support for authenticating to Gramps Web API via external providers using the Open ID Connect (OIDC) protocol. As an optional alternative to username/password authentication, it allows interfacing Gramps Web with a self-hosted access management solution like Keycloak or Authentik, or using a Google, Microsoft, or Github account to sign in.

If you do not add any specific configuration for OIDC to your Gramps Web instance, external authentication is disabled by default. The configuration steps needed to enable it are described in the documentation.

Kudos to @AlexBocken for implementing all this!

Undo edits ↩️

This release adds the possibility to undo individual changes (transactions) to the database by introducing a new endpoint /api/transactions/history/<id>/undo. This is the backend part of an upcoming feature in Gramps Web that will add an "Undo" button to every revision in the revision history view!

User database migration ⚠️

Since the new OIDC feature requires a change to the schema of the Gramps Web user database, a schema migration must be run once (regardless of whether you plan to use OIDC or not). When using the default docker image and entrypoint, this is done automatically on startup. In custom environments, you will need to run

python3 -m gramps_webapi --config /app/config/config.cfg user migrate

in the Gramps Web API contrainer, or something equivalent for your custom setup.

The same command can also be used inside the Dev Container by developers using the recommended development environment, after pulling the latest Web API version.

Other changes 🆕

  • No ARMv7 images: The build times for the default docker images have been causing issues. To resolve them, we have decided to no longer provide pre-built images for the ARMv7 architecture, used on the very first Raspberry Pi models 1 and 2. We are still providing images for the ARM64 architecture (and will continue to do so), which is supported on the model 3 and newer, so we hope the impact on users is minimal.
  • Dropping Python 3.9 support: Python 3.9 has reached its end of life, so we are dropping support for it.

Bugs fixed 🪲

New Contributors💪

Full Changelog: v3.3.0...v3.4.0

v3.3.0

28 Aug 14:57
393e5d6

Choose a tag to compare

New endpoint for Y-DNA data 🧬

This release introduces a new endpoint /api/people/<handle>/ydna that uses raw Y-DNA SNP data (stored in a person attribute) to derive information about the most likely Y-chromosome haplogroup the person belongs to, as well as the ancestor haplogroups. This is powered by the yclade library which uses data from the YFull tree.

Implemented by @DavidMStraub in #678

Customizing name formats 🔧

This release adds a name_format parameter to several endpoints, which uses Gramps' powerful custom name formatting mechansim to format people's names in the person profile. This can be used in the future to customize name display in Gramps Web.

Implemented by @vktimofeev in #674 and #682

Other changes ✨

  • A deprecation warning resolved by updating pyproject.toml by @Aliervo in #667
  • Fixing a typing error in the image module by @DavidMStraub in #668
  • Use Gramps 6.0.4 in the Docker image, fixing an issue with the relationship graph by @DavidMStraub in #672
  • Add 'Date' header to email messages by @gschlager in #683
  • More informative error message on import failure by @DavidMStraub in #684

New Contributors 🥳

Full Changelog: v3.2.0...v3.3.0

v3.2.0

10 Jun 16:08
d6dbafc

Choose a tag to compare

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 the profile (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)

v3.1.0

22 May 04:43

Choose a tag to compare

Speedup: search index updates as background tasks

With this release, adding or updating objects from the web interface should feel much snappier, as the search index update is now done in a background task after the request has returned, rather than blocking the request. This should be particularly noticable when semantic search is enabled.

Improved alternative place names in place profile

@cajturner improved the place profile by adding alternate place names including their dates. This will be the basis of displaying and editing alternative place names in Gramps Web.

v3.0.2

14 May 09:26

Choose a tag to compare

This patch release fixes another issue with revision database migration.

v3.0.1

14 May 06:01

Choose a tag to compare

This release fixes an issue with the upgrade of the revision database: since it does not filter by tree ID when executing the conversion, it can lead to OOM errors for large shared instances.

v3.0.0

04 May 12:12

Choose a tag to compare

Gramps Web API 3.0 based on Gramps 6.0

This is a new major release of Gramps Web API based on Gramps 6.0.

Gramps 6.0 includes a new major release of the Gramps core library, introducing changes to the Gramps database schema. (For experts, one of the most important changes is that Gramps no longer stores family tree objects as binary "blobs", but as human-readable JSON, which makes it even more future-proof and even easier to use with Gramps Web API, which is based on exchanging data in JSON format).

As with every major release of Gramps Web API, upgrading requires additional steps to make sure the database schema upgrade runs smoothly.

Please back up your tree before you upgrade.

Detailed upgrade steps can be found on the Gramps Web documentation site.

v2.9.2

06 Apr 11:30

Choose a tag to compare

Another maintenance release, fixing three bugs:

  • Error on media arhive import #630
  • Server error for people with private families #523
  • E-mail notification about newly registered user not being sent #603