GnuCash
Contact   Instructions
Bug 797214 - enhancement: gnucash file anonymizer, great for providing sample errant data to dev/test
Summary: enhancement: gnucash file anonymizer, great for providing sample errant data ...
Status: REOPENED
Alias: None
Product: GnuCash
Classification: Unclassified
Component: General (show other bugs)
Version: 3.5
Hardware: PC Windows
: Normal normal
Target Milestone: ---
Assignee: general
QA Contact: general
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-24 11:39 EDT by Dale Phurrough
Modified: 2019-05-10 07:37 EDT (History)
3 users (show)

See Also:


Attachments

Description Dale Phurrough 2019-04-24 11:39:19 EDT
Feature enhancement: a program or function that will anonymize a gnucash data file (xml, sqlite, etc.). This allows users to provide sample files to the gnucash team with issues yet not compromise their privacy.

I needed this again today as I want to provide my gnucash data file that is experiencing errant behavior, yet I am not willing to provide my data unchanged so to protect my privacy.

This is amplified due to GnuCash being open-source. Its bug management system is open to everyone on the planet. Therefore, all uploaded data files too.

The items to scrub for private information can be extensive. For example:
- account names, descriptions, notes, etc.
- transaction fields; potentially also transaction amounts
- import maps and other "remembered" things

Anonymizing may make some errant behavior more difficult to isolate. For example:
- when transaction amounts are changed/anonymized, then errant math engine behavior may not be the same
- when account names are changed, identifying the account/transaction with the errant behavior may be difficult
Comment 1 Dale Phurrough 2019-05-09 06:58:08 EDT
Something related already exists at:
https://github.com/Gnucash/gnucash/blob/maint/util/obfuscate.pl

And mentioned at:
https://wiki.gnucash.org/wiki/Bugzilla
https://wiki.gnucash.org/wiki/ObfuscateScript

Closing for now.
Comment 2 John Ralls 2019-05-09 08:49:12 EDT
But not distributed, even in the tarballs.
Comment 3 Dale Phurrough 2019-05-09 13:49:23 EDT
What specifically do you wish to occur? Please describe your ask or problem you want to solve. My original asks are all satisfied for now, therefore I closed.

obfuscate.pl is available today and distributed via HTTPS to the full internet. It is an optional download. Are you asking for obfuscate.pl to be part of the standard distribution on all platforms and leverage Perl, Strawberry, etc.? Adding test cases? Or re-write in another language? Or what?

* I do see a need for better documentation for obfuscate.pl and how to
  use/setup. For example, not everyone has perl installed. Therefore, there is
  needed doc for Windows, mac, linux, etc. We can likely leverage the doc
  around Quotes setup as it also needs perl. Docs...is a separate issue in an
  separate bugzilla product.
* Integrating an anon function into core gnucash UI is a larger/separate 
  work item. Likely part of a "submit an issue/data/logs/telemetry" workflow.
* Bug/Incomplete anonymization is a separate issue.
* Having an anonymization program that could be installed by a package manager 
  is somewhat useful over better doc. The only improvement will be in the
  automated package mgr download and installation.
Comment 4 John Ralls 2019-05-09 19:18:11 EDT
I'm not asking you to do anything; rather the reverse: You opened an enhancement request that asks the GnuCash team to provide a feature. Obfuscate.pl might be sufficient to meet your requirements, but you're not the only person to ask for something like this.

Obfuscate.pl has a number of problems. It relies on perl, which must be separately installed on Windows. It relies on the existence of a dictionary file at either /usr/share/dict/american-english or /usr/share/dict/words, paths that are nonsensical on Windows. It works only on uncompressed XML files. Yes, it's available, but not very. It should be in the distribution tarballs and installed somewhere (prefix/usr/share/gnucash?) and the MacOS and Windows bundles instead of at an obscure URL in the repository mirror. That would be a trivial change but doesn't answer the other problems. Documentation in the Wiki is probably sufficient.

Most of those problems could be fixed by inserting similar behavior into the save routines in the backends and providing a File>Export>Obfuscated menu item. Obviously that would require at least a mention in the Online Help Manual.
Comment 5 Dale Phurrough 2019-05-10 07:37:09 EDT
That's clearer. Thank you. My intention is to have enough info written in a bug to be actionable by someone (not necessarily me or you).

Two thoughts for future reference:

I also thought about a file/save approach. Some of that workflow concerns me with respect to this feature as a singleton, or if this is one of many log/telemetry/feedback mechanisms. If the latter, then I would prefer them coordinated rather than spread across menus/dialogs.

And to me, user privacy becomes the most critical topic. Paramount. If the app starts to do the obfuscation/collect itself, international law like GDPR may come into play for the handling of that user data.

Note You need to log in before you can comment on or make changes to this bug.