Skip to content

Releases: gramps-project/gramps-web-api

v2.5.0

24 Oct 15:52

Choose a tag to compare

Semantic search

This release adds semantic search powered by vector embeddings, in addition to the existing full-text search. This leads to the following API changes:

  • A new configuration option VECTOR_EMBEDDING_MODEL
  • The search CLI command gets an optional --semantic switch to manage the semantic search index (which is separate from the full-text search index, but stored in the same database)
  • The /api/search endpoint gets an optional boolean parameter ?semantic
  • The /api/metadata endpoint reports whether semantic search is enabled via the server.semantic_search key and the number of objects in the semantic search index via the search.sifts.count_semantic key

AI chat endpoint

Powered by the semantic search, this release adds an AI chat endpoint using the retrieval-augmented generation (RAG) technique (#539).

For setup and usage documentation, see

Note that semantic search and AI chat are not supported on the armv7 platform (e.g. Raspberry Pi 32-bit) since they depend on PyTorch. Without these features enabled, Gramps Web continues to support armv7 and we continue to provide images for this platform. The arm64 platform (e.g. Raspberry Pi 64-bit) is fully supported.

Object Query Language

A Python-like query language has been added as an alternative to the "Gramps Query Language" (GQL) by @dsblank #553. See https://github.com/dsblank/object-ql for detais.

Other changes

New Contributors

Thank you to all contributors and translators! 🎉

Full Changelog: v2.4.2...v2.5.0

v2.4.3

09 Oct 06:11

Choose a tag to compare

This is a patch release to resolve issues with database connections not being properly closed in some circumstances.

v2.4.2

07 Aug 17:39

Choose a tag to compare

This is another quick maintenance release to update the dependency on the new search backend, increasing stability.

v2.4.1

06 Aug 08:59
299746f

Choose a tag to compare

This maintenance release brings one major performance improvement: importing genealogical data should now be much faster, as the incremental search reindex it triggers has been accelerated (#530). The dependence on the new search backend sifts has also been updated to profit from bug fixes there.

v2.4.0

28 Jul 20:14

Choose a tag to compare

New Search Backend

This release replaces the search backend (based on the unmaintained whoosh library) with a new, taylored and SQL-based backend. This will allow further improvements to the search function in future releases. This is a breaking change, and details are given below.

Configuration changes

The old SEARCH_INDEX_DIR configuration parameter is replaced by SEARCH_INDEX_DB_URI, which can be a SQLite or PostgreSQL database URL. If the new parameter is not set but SEARCH_INDEX_DIR is present, Gramps Web API will default to storing the search index in an SQLite database inside this directory and issue a deprecation warning. This should ensure that all Gramps Web API instances will continue working without configuration changes for now.

API changes

The search endpoint has new parameters: type to filter the search results by the object type and change to filter it by the modification date.

Search syntax changes

The search still supports AND/OR operators, and they are now case insensitive (also and/or works). The wildcard * is supported at the end of a search term. Filtering in the search query e.g. by type: is no longer supported (but this was poorly document anyway and is now supported by the new API parameters).

Search improvements

Indepently from the new search backend, the search indexer has been improved to enhance the search experience:

  • Searching for a name now also returns families where a parent's name matches the search term.
  • Searching for a name now also returns events where a primary particpant's name, or a participant family's parent's name, matches the search term.

v2.3.1

04 May 20:30

Choose a tag to compare

This is a bugfix release to solve issues with open database connections in the background task worker.

v2.3.0

28 Apr 11:35

Choose a tag to compare

Gramps Query Language filter

This realease adds the option to filter the object endpoints by a GQL (Gramps Query Language) query string, e.g. /api/people?gql=myquery. GQL is a new alternative to conventional Gramps filters which uses a query syntax inspired by SQL.

v2.2.1

22 Apr 19:35

Choose a tag to compare

This patch release fixes an issue with v2.2.0 that caused the transaction history endpoint to not correctly filter by tree ID when using the sharedpostgresql backend.

v2.2.0

16 Apr 21:34

Choose a tag to compare

New endpoint for database change history

This release features a new endpoint /transactions/history/ that allows accessing past database transactions, i.e. edits, additions, and deletions. This is made possible by a new custom undo database implementation leveraging a new feature in Gramps 5.2.

The endpoint can be accessed by users with ViewPrivate permissions.

Note that the user names and full names of users that have edited the database will be visible to all users who can access this endpoint.

v2.1.0

16 Mar 14:36

Choose a tag to compare

New endpoint to delete all objects

This release introduces a new endpoint /objects/delete/ that allows to delete all objects in the tree; the optional argument namespaces can be used to restrict deletion to certain object types.

To add an additional layer of protection for this potentially dangerous feature, the concept of token freshness is introduced: only "fresh" tokens that were obtained by direct authentication, not from a refresh token, are accepted for this operation, so users may have to authenticate again.

Change to trees endpoint

The /trees/ endpoint, that is useful particularly in multi-tree deployments, now also gives access to the enabled flag to check if a given tree is disabled or not.