GDPR Api (opinion)

I have an idea and would like your feedback. I'm thinking of developing an API to simplify GDPR (General Data Protection Regulation) compliance, excluding the cookie component. The API would have several endpoints to handle the most common obligations, such as: Downloading personal data in readable formats for Tenants and data about the Tenant's users. Managing user preferences. Recording and displaying logs for GDPR audits. My goal is to offer a solution that helps developers implement the GDPR more easily and correctly, as I've noticed that many applications either don't do it well or skip it entirely. I'd like to know if you, as a community, would use such a tool. Thanks in advance.
28 Replies
qqdev
qqdev3mo ago
How would you implement this? Because it heavily depends on how and where the backend stores this kind of data
Baldur, Creator of GoConnect.dev
I was thinking of it as an orchestration layer between the user and the application's backend. Similar to Stripe, which doesn't store its physical products or Auth0 user profiles directly in its database, my API would provide a standardized set of endpoints (e.g., /data-request, /data-delete, /data-download, etc.) that adhere to AES-256 standards and all the security aspects. Developers would integrate these endpoints and, essentially, configure them with custom webhooks or adapters pointing to their own backend services. When a user requests their data, my API would trigger the developer's webhook, which would execute the specific queries needed to retrieve the data from their unique database structure. A detailed audit log would then be generated and provide a standardized way to return the data to the user (the tenant). This approach separates the common legal workflow from each application's unique data storage implementation. That's something I was thinking. Ideally, apply all the most secure methods when it comes to AES encryption, pseudonym mapping, and so on.
qqdev
qqdev3mo ago
I see. This is not an easy undertaking. I believe that the customization/integration part will be the hardest to nail Did you already start thinking about possible request/response models?
Baldur, Creator of GoConnect.dev
Of course, I started with the most basic. In fact, I faced several challenges with tenant access security. Just to get a tenant to access their own information, it took me almost a week just to do a simple Read, regarding Client ID, JWT authentication, and such things. You see, this is actually something I thought not many devs did.
Baldur, Creator of GoConnect.dev
Gist
gist:831bc769cf2436aba70ec3e1ca49ffa7
GitHub Gist: instantly share code, notes, and snippets.
Baldur, Creator of GoConnect.dev
I don't really have that much, because I am still thinking about this idea
Angius
Angius3mo ago
Seems like something that would be better off as a library tbh
Baldur, Creator of GoConnect.dev
So in postman to access the tenant data I implement the JWT plus the Cliend ID, that in theory is private, right. But the info is encrypted ni the DB.
No description
Baldur, Creator of GoConnect.dev
I though on that, but it'd exclusively only for .NET devs, I though on other stacks, so don't know 🙁
Angius
Angius3mo ago
I guess that makes sense, sure Personally, I'd rather handle it myself, so that the user data never gets transferred to any 3rd parties Sending user data somewhere to get back an anonymized version of it seems... weird
Angius
Angius3mo ago
Like the isEven API: https://isevenapi.xyz/
isEven API
isEven API
qqdev
qqdev3mo ago
Oh, true, I missed that part Yeah, I would definitely not want my clients data somewhere else
Baldur, Creator of GoConnect.dev
Yes, of course, definitely, this is one of the things I've been thinking about too.
qqdev
qqdev3mo ago
Is there a business model behind this?
Baldur, Creator of GoConnect.dev
Not at the moment, I just thought of it as a side project, but I think it could have potential, well people have said that
qqdev
qqdev3mo ago
kk. I like that you don't want to turn this into a .NET library What about doing it like, for example, Keycloak? You spin it up (self-hosted) and it solves the problem by providing the APIs you mentioned The self-hosted aspect is why I was asking about the business model In quickly comes into play
Baldur, Creator of GoConnect.dev
Are you saying this as a microservice type?
qqdev
qqdev3mo ago
If you want to call it this way, yes I bet you are already kinda going that route
Baldur, Creator of GoConnect.dev
Ah ok ok got it, I understand now
qqdev
qqdev3mo ago
It's just a matter of where you deploy the service
Baldur, Creator of GoConnect.dev
yup yup. I gotcha now, hmm it could be nice to try that actually
qqdev
qqdev3mo ago
That's something I would use if it is easy to use (and meets the requirements)
Angius
Angius3mo ago
I'd definitely feel better about spinning it up from a Docker image on my own server, than transfering all the user data who knows where
Baldur, Creator of GoConnect.dev
I like that approach, sounds like a smart and secure solution yeah I can definitely think about this approach you know, since I am in early stage Hey! I've been thinking about this idea, but also I've thinking about making like a community version open source or even the whole project open source like start generating trust, like redit did or other projects otherwise difficulty will generate trust among devs @qqdev @Angius
Baldur, Creator of GoConnect.dev
@ZZZZZZZZZZZZZZZZZZZZZZZZZ @qqdev hey guys! Here it is, could you please take a look! Still basic because it is community. https://github.com/HeyBaldur/GdprApi-Open
GitHub
GitHub - HeyBaldur/GdprApi-Open: A developer-friendly, open-source ...
A developer-friendly, open-source GDPR compliance API built with .NET 8 and MongoDB. Handle DSRs, consent, and audit logs with ease. Secure, extensible, and ready for production. - HeyBaldur/GdprAp...
Angius
Angius3mo ago
Far as I can tell, it looks good Haven't spotted any issues that would immediately jump out at me I'd maybe question the use of Mongo, but you do you You can also post in #code-review if looking for more input
Baldur, Creator of GoConnect.dev
Ah yeah cool! Ah yeah, Mongo I choose it because of the flexibility to create nested objects, SQL for me is stiff and not so flexible Because there is an endpoint called Audience. in that you can practically add any JSON object so, I managed to save data way easier than SQL
Angius
Angius3mo ago
Postgres (and other databases) come with JSONB column types nowadays But yeah, I can see the rationale

Did you find this page helpful?