Software architecture, local or remote?

As I reach out to extended family members trying to fill in data such as middle names, birth hospitals, places of residence I have gotten a lot of help but also sensed an occasional concern as to what the heck I was doing with the stuff. I explained the project and promised there would be no social media postings etc… But I’d like to give them a stronger answer on privacy. Does my interaction with the GRAMPS software running on my desktop reach back to remote server or cloud for any processing or data storage, or am running completely on desktop resources?

1 Like

There are many parts of Gramps that poll the net: plug-in/add-on updates, help pages, map zoom scale tiles, Geo data, note URLs, download media files, extra reports&tools… and so on. Also, some gramplets are specifically designed to leverage net databases.

The parts that push any data upstream mostly seem to require the user to pull the trigger: the crash report requests explicit permission. And the web page generating output must be uploaded through other tools.

There is ONE item that pops to mind that seems to violate this deliberate isolation: the Interactive Family Tree addon. It isn’t clear whether if this addon pulls interface down or pushes genealogical data out. The fuzziness of data boundaries is disturbing.

Gramps and your database are running locally on your desktop. You don’t need an internet connection to work on your database or create reports. Just turn of your internet connection and try it. The only built-in exception I can think of at the moment is the geography view, which needs to load down the map data and the help pages, since the gramps manual is just online.

Gramps also allows you to install addons/plugins to add more functionalities. Some of them have web functionalities where privacy could be a concern, but I’m not using the web ones, so I don’t know much about them.

2 Likes

I found that I was able to run the Interactive Family Tree analysis and exploration tool with my wifi turned off. It opened a new tab in my browser and displayed the results successfully, and I confirmed I was still not connected to the internet (the other tabs could not refresh).

I agree with @emyoulation’s feeling that [quote=“emyoulation, post:2, topic:324”] The fuzziness of data boundaries is disturbing. [/quote] For me, that’s a general feeling, not particular to Gramps: the fact that something works without an internet connection doesn’t rule out the possibility that it might behave differently when there is a connection.

All of this code happens to be open source, which is nice, but I don’t have enough knowledge to inspect it myself and so I just have to trust what the developers say.

Maybe you’re piggybacking some cached data. (The Geography view definitely caches map Tiles.) Or more unlikely, perhaps you have a hotspot.

I get a “server not found” error after selecting the Interactive Family Tree. This Gramps laptop hasn’t been on the net for more than a month.

I’ve been through Gramps core code and it does NOT push any user data to the net. As noted above, it does fire off browsers for help, links in Notes and similar when the user requests it.

Gramps and some addons DOES download data from network databases, but again does not push any mass user data, although when making these requests the item of interest is requested. An example is the ‘Web connection’ menu items that shows up when you right click a Person in the Person view (if you have one or more of the ‘Web Connect packs’ addons installed). Another example is the GETGOV or PlaceCleanup Gramplets, that include the place of interest in the request.

As noted above the only addon I am aware of that does mass upload of data is the ‘Interactive Family Tree’ addon which uploads your whole tree to a server to create the necessary web pages.

3 Likes

Thanks Paul. I was unable to repeat my offline test, so I suspect that I must have had something cached the first time.

For what it’s worth, the Topola Viewer site has this message:

Privacy : When using the “load from file” option, this site does not send your data anywhere and files loaded from disk do not leave your computer. When using “load from URL”, data is passed through the cors-anywhere service to deal with an issue with cross-site file loading in the browser (CORS).

Hi,

I am the author of the Interactive Family Tree addon. I know this is fuzzy and may be confusing to judge whether the addon uploads any data or not. First of all, to state the fact:

The Interactive Family Tree addon does not send any data out of your computer.

This is something I’m quite sensitive about and I am reluctant to use external sites to store my genealogical data. Of course, you don’t have to believe me. You can go through the code at https://github.com/PeWu/topola-viewer and see for yourself or you can open the browser developer tools and inspect the requests made from the application. Also, since the app is hosted on GitHub pages, it is hosted as static files only. There is no server-side code to this app, all code runs in the browser.

There is also a discussion about this here: https://github.com/gramps-project/addons-source/pull/197

If you’re interested, I can explain how the addon works from the technical side.

On the Gramps side, the addon exports a GEDCOM file from your database and runs a HTTP server inside Gramps that can send out the GEDCOM file.
Then, the addon opens your browser pointing to a web application hosted on GitHub pages. The web application is loaded in your browser. It is a “single page application” that once it is loaded it does not require an Internet connection to work (this is why you can open it from the browser’s cache even with WiFi turned off). After the web application is loaded it loads the GEDCOM file from the HTTP server in Gramps. The data is only loaded into the browser’s memory and does not leave your computer. It is processed by JavaScript code to produce a visualization of the data.

I am aware that this is complicated and difficult to explain. I’d like to make it more clear how the application behaves. It is not the typical way a web application works.

I hope I helped,
Przemek

7 Likes

Thank you @PeWu !

Your explanation will make a nice addition the wiki page on the Add-on. But you’re also right in saying it is a bit fuzzy. I’ll try reading through the other materiels and see if can be made less so.

Your work makes a wonderfully interactive charts that makes extended families much more understandable. And does the task very attractively too.

Thanks for the suggestion. I updated the wiki page.
https://gramps-project.org/wiki/index.php/Interactive_Family_Tree

3 Likes

Appreciate the tweaks to the wiki.

Do you think that some of the phrasing might be misinterpreted by the readers?

“On the Gramps side, the addon exports a GEDCOM file from your database and runs a HTTP server inside Gramps that can send out the GEDCOM file.”

When the documentation says ‘exports a GEDCOM file’, this reads like ‘uploads your tree’ to some audiences. It has overtones that are obviously not what you intended. (I am making that assumption based on your posting above and some of the text in the wiki.)

But perhaps the add-on saves a temporary file in a stripped down GEDCOM format? (Stripped down because the charts won’t need notes or sources or many other chunks. Maybe ‘streamlined’ is a more positive word?) While Gramps is trimming out the GEDCOM, it also downloads a Typescript/JavaScript parser & viewer (which is apparently cached in the Browser’s Temporary location).

After some period of time, both the data & Typescript/JavaScript temporary files are probably cleaned up by the OS garbage collection.

Another possibility is that the GEDCOM is a transient object that is never even written to storage.

However, I wonder if the entire tree is written to that temporary GEDCOM? Or perhaps just a branch of the tree that trimmed small enough to not bog down the parser/viewer? And if it IS trimmed, how often Gramps needs to trim out a new branch to feed to the downloaded Topola Typescript/JavaScript module?

Finally, is there the possibility of a local archive version of the Topola viewer outside the cache? From what I gather, you are continually tweaking the Topola code and want people to always have the latest & greatest.

My Gramps computer is rarely online & I’d rather not not lose access to Topola because the cache was recently cleaned. In fact, I’d also hope that when the Interactive Family Tree Add-on was downloaded, that a fallback version will be archived for use should the net be inaccessible. And that the fallback version be freshened whenever a net connection is available & the add-on has been triggered.

(In one of the companies where I did contract IT work, they used Medical Billing software that validated across the net whenever the application was started… with zero re-tries. Because the local ISP was subject to net outtages & their DNS frequently blacklisted that server, Billers couldn’t exit the application when leaving their desks… they might not be able resume work when they came back. This was a covert part of the software’s site licensing system and the start failure dialogs lied & blamed a loss of connection with the in-house server. In one release, the software changed to timer based re-validation & we began losing work! It made the software seem incredibly unreliable until we sussed out the real problem. Bypassing the ISP’s DNS helped a lot. But then the software licensing server re-registered a new IP and caused a new emergency.

The lesson of the experience was to be wary of any local software that required net touches to stay alive.)

1 Like

Thanks Brian.

I tweaked the wording a bit.

To answer your questions:
I’m not sure if and how the GEDCOM is stripped down. I’m using the GedcomWriter class from Gramps with default options. The entire tree is written to the file, not just a subset. For large databases, It may be a bottleneck. However, my own database contains around 4000 individuals and it works reasonably well. It might be better to just pull the data needed to display the tree on demand from Gramps but it was easier to just get the whole tree.

If relying on the operating system to delete the temporary files is a problem, the addon could delete the temporary file right after reading it into memory. This is a fairly small change to the code.

In terms of the offline capabilities, I’m sure they could be improved. Right now, Topola Viewer is using the default capabilities that come with a standard React app built with create-react-app. I’m not planning to investigate these capabilities anytime soon.

I am developing the Topola Viewer in a very slow pace because I’m doing it in my free time and I don’t have a lot of it :slight_smile:
Recently, I dedicated more time to integrating with WikiTree.

Taking all this into account, I am open to contributions to the Topola Viewer. There is a lot of possibilities for improvements and new features.

— Przemek

1 Like