[Feat]: Export data with column anonymization
Maintainers usually reply within 1 day
Nobody has claimed this yet.
- #606 by @iamthenuggetman — closed without merging
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
Research direction
The proposal places anonymization in the streaming export pipeline, between the row stream and the CSV/JSON sinks, with configuration in the export dialog. Start by locating those entry points and reviewing the existing export flow; the issue does not name specific files or tests. Done means users can choose per-column rules and exported values are transformed consistently, including stable hashes across tables.
Written by the indexing model from the issue text.
Description
Prerequisites
- I have written a descriptive issue title
- I have searched existing issues to ensure the feature has not already been requested
🚀 Feature Proposal
Add an optional anonymization step to the file export: in the export dialog, let the user assign a per-column rule before writing the file. Proposed rules for a v1:
- Null / fixed value — replace with
NULLor*** - Partial masking — e.g.
j***@***.com, keep first/last chars - Deterministic hash (pseudonymization) — HMAC with a per-export key: the same input always produces the same output, so joins on anonymized keys (e.g.
user_id) still work across exported tables
Possible follow-ups: synthetic data (seeded faker for names/emails/addresses), generalization (birth date → year, zip → region), name-based heuristics to pre-suggest rules for columns like email, phone, name, ip.
Technically this fits nicely in the existing streaming export pipeline: a transform layer between the row stream and the CSV/JSON sinks, so it would work for all drivers (including plugins) with no driver changes. The database dump could adopt it later as a second step.
Motivation
Very common need: sharing production data with staging environments, external developers, support tickets or analytics without leaking personal data (GDPR / privacy). Today users have to post-process exports manually.
Note on wording: this should be presented as column anonymization / pseudonymization, not "GDPR compliance" — true anonymization under GDPR is a legal assessment (quasi-identifiers etc.) that no tool can guarantee by itself.
Example
Export dialog → "Anonymize columns" (optional) → per-column rule selector → file is written with transformed values, e.g. email → a3f9…@masked, name → ***, user_id → HMAC hash (stable across tables).
Happy to work on a PR if there's interest — opening this first to discuss scope and UX.
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 227
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TabularisDB/tabularis
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
TabularisDB/tabularis#1281 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
TabularisDB/tabularis#1280 · 1 comment ·
Maintainers usually reply within 1 day
-
[Bug]: Column Length/Size Not Displayed in Table Schema ViewPossibly taken @itsmunzir claimed this 1 day ago. Openbug
TabularisDB/tabularis#1277 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
feature request
Difficulty 5/5 Over a week Newbie friendliness 25/100
TabularisDB/tabularis#1276 ·
Maintainers usually reply within 1 day
-
feature request
Difficulty 5/5 Over a week Newbie friendliness 42/100
TabularisDB/tabularis#1275 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
bug require-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
expressjs/expressjs.com#2549 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
umami-software/umami#4686 · 1 comment ·
Maintainers usually reply within 2 days
-
[Bug]: Device screenshot fails with 500 on iPhone Duo (Xcode 27.2): serve-sim calls simctl without --displayPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
pingdotgg/t3code#24900 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
inu-appcenter/UNIDorm-web#411 ·
Maintainers usually reply within 1 day
-
🐛 bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 2 days