High-level diagram of Gramps Web data flows

Hi,

I’m an engineering student but I’m enrolled in an elective computer science course. For a project related to this course, we have to conduct a privacy impact assessment on an open-source app preferably written in Python. Gramps seemed like a good choice, but I’m struggling with mapping out the high-level flow of (personal) data. More specifically, I’m interested in the storage location of data provided to Gramps. Is it stored locally on my computer, or is it stored in some database? If the latter option is true, which database do you use?

I tried to find the answer in the Gramps documentation but I could only find information about the database language that was used, not the database location or system type.

Kind regards,

Arnaud

Welcome, Arnaud!

Gramps is very unique in the possibilities used for many of the components, including the database. Gramps started out as a desktop-only project (and that is still where the core contributions are). But that includes translations, and addons. One can swap out almost everything in gramps without even writing any code.

Gramps-web is an extension of the core gramps project, and does things a little differently. And you asked specifically about gramps-web.

Given that, let’s look at your questions (to the best of my ability):

Is it stored locally on my computer, or is it stored in some database? If the latter option is true, which database do you use?

It depends :slight_smile: If you run the gramps-web app in its default setup, you’ll run a Docker image on your computer. Inside that docker image is a postgresql database where the main data will be stored. There are also pictures, which have the picture itself saved in a folder in the Docker image.

But, if you deploy on the cloud, then all of the above is true, but the Docker images are in the cloud.

So, to answer your questions, the data can be local on your computer, or in the cloud. By default, it uses postgresql, but that can actually be swapped out for a different database “backend” (such as MySQL, SQLite, etc).

Hope that helps!

2 Likes

It is important to distinguish between the original Gramps application (for desktops) and the recently-created Gramps Web (for servers) projects. The exposures are completely different.

For the desktop application, there is a Family Tree tab in the Preferences interface for specifying the database backend (engine) and database file location on the local machine.

Likewise for the hosted on servers application, there is a Configuration for setting the USER_DB_URI for the SQLite or PostgreSQL engines.

1 Like

@arnaud thank you for choosing to assess Gramps Web as your project.

After you complete the project, could you please privately share the (graded) project with the creator of Gramps Web, @DavidMStraub

Thanks for the fast replies!

1 Like

I have a couple of other questions. suppose that the gramps web app is run locally.You’re telling me that the data is stored centrally on the host’s computer right.
How does the app authenticate other users trying to log in.
Is data encrypted whilst being transferred from one user to the centralised database and backwards.
Further questions concerning the genetic information addon/AI addon how were these models trained and are they run locally or ?
Those are a lot of questions so thank you again for your time !

Yes, the data is stored where the app is run (locally or in the cloud).

It uses a standard login id and password. You can actually try the demo to see this in action.

Gramps-web uses modern web technologies for all operations. But it doesn’t have to implement these itself. For all communication between client and server, the connection occurs over HTTPS. (Technically you could force it to work over non-encrypted connection, but the authors have thoughtfully not made this the default).

I’m not sure what you are referring to here. Addons are Python scripts written by contributors.

Hope that helps!

2 Likes

In the How Does It Work? subsection of the Talk to your Tree posting introducing the AI chat feature, David states that “no model training is needed on Gramps data”.

That posting goes into some more detail of the AI approach that was taken.

1 Like

Concerning AI chat, see also these two blog posts.

Not sure what you mean by genetic information addon. The chromosome browser uses match data stored in notes.

2 Likes