Hi devs,

I would appreciate your feedback on a couple of issues regarding Bug 20028 that attempts to export all patron related personal data in one package. I'm having difficulties in choosing the best approach, so the help of fresh minds would be awesome.

These are my questions.

a) Code-wise, manually define what to include into the export, or automatically select all related objects with the help of DBIx relationships?
1. https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=79381&action=diff and https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20028#c11
2.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20028#c21
 
I have written some proof of concept patches for the second approach of fetching related data by DBIx relationships. The idea behind this was that, assuming foreign keys are appropriately defined at database level, it would always return related data without us having to worry when a new patron-related database modification gets introduced. However, then we have to be sure we are not accidentally returning some unwanted columns.

Explicitly defining what to include offers more straightforward control, but it's going to be a lot of objects (around 50, these are listed in the Bug), maintenance and the risk of data missing from the export after a database update. In terms of GDPR and good privacy practices in general it would not be nice if something was missing from the export.

b)
Terminology?
What to do with REST API terminology for the response object (i.e. borrower vs patron)? A patron has many, many related objects, so how do we describe those objects in a way that satisfies our terminology requirements. We could use Koha-objects to_api(), or create a new to_public_api() for the purpose of public routes, but for some objects it's currently not possible (such as messaging preferences) because they are in development. Is it even in the scope of this Bug to worry about that? If we chose the manual path of explicitly defining what to export, like what was done in the original patch (see a.1.), terminology issues could perhaps be more easily tackled.

If you have a moment, please check out the Bug, add some feedback and let me know which approach you'd prefer. Or perhaps you have even a better solution ;)

Bug 20028: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20028
-- 
Lari Taskula
CEO, Hypernova Oy
PL 16
80101 Joensuu, Finland