GDPR & privacy¶
Built-in tooling to honour data-subject rights — export, erasure and consent — for both administrators and end users.
What it is¶
Helix IAM ships the operations you need to meet data-subject requests under GDPR and comparable privacy regimes:
- Right to access / portability — export everything Helix IAM holds about a user as a structured file.
- Right to erasure — delete a user and their associated data.
- Consent management — view and manage the consent records a user has granted.
These actions are available to administrators through the admin API and console, and to end users directly through the account console for self-service.
In the console¶
Open Users → select a user → Privacy (GDPR) to:
- Export the user's data for a portability or access request.
- Review consents the user has granted and revoke any that no longer apply.
- Delete the user to satisfy an erasure request.
Erasure is irreversible
Deleting a user removes their account and associated records. Confirm the request and your retention obligations first — and ensure the action is captured in your audit log for accountability.
Over the API¶
Data-subject operations are realm- and user-scoped under /admin/realms/{realm}/users/{userId}/gdpr. The examples below assume you have set $HELIX_URL / $REALM and logged in — see Authenticating to the API.
Export a user's data — GET …/gdpr/export¶
Satisfies a right-to-access / portability request. The response is a structured, versioned document (schema: helix.gdpr.export/v1) covering profile, attributes, roles, memberships, credentials, federated links, consents and login events:
USER_ID=684db0eb-4afe-44f9-ad16-37a64f3496ea
curl -s -b cookies.txt \
"$HELIX_URL/admin/realms/$REALM/users/$USER_ID/gdpr/export"
{
"generatedAt": 1783341227374,
"schema": "helix.gdpr.export/v1",
"realmId": "acme",
"userId": "684db0eb-4afe-44f9-ad16-37a64f3496ea",
"profile": { "username": "alice", "email": null, "enabled": true, "createdAt": 1783001276475 },
"attributes": {},
"roles": ["user"],
"realmMemberships": [ { "realmId": "acme", "joinedAt": null } ],
"organizations": [],
"credentials": [],
"federatedLinks": [],
"consents": [],
"loginEvents": []
}
Read consent records — GET …/gdpr/consents¶
Erase a user — DELETE …/gdpr¶
Satisfies a right-to-erasure request. This is a write, so refresh the CSRF token first:
curl -s -b cookies.txt -c cookies.txt "$HELIX_URL/admin/realms/$REALM/users" >/dev/null
CSRF=$(awk '$6=="XSRF-TOKEN"{t=$7} END{print t}' cookies.txt)
curl -s -b cookies.txt -X DELETE -H "X-XSRF-TOKEN: $CSRF" \
"$HELIX_URL/admin/realms/$REALM/users/$USER_ID/gdpr"
Method & path (under /admin/realms/{realm}) |
Purpose |
|---|---|
GET /users/{userId}/gdpr/export |
Export everything held about a user (access / portability) |
GET /users/{userId}/gdpr/consents |
Read the user's consent records |
DELETE /users/{userId}/gdpr |
Erase the user and associated data (right to erasure) |
End-user self-service¶
End users can exercise their own rights from the account console without contacting an administrator — authenticated by the user's own session, not an admin session:
| Method & path | Purpose |
|---|---|
GET /account/gdpr/export |
Download my own data |
GET /account/gdpr/consents |
List consents I've granted |
DELETE /account/gdpr/consents/{clientId} |
Revoke consent for one application |
This keeps routine privacy requests off your support desk while staying fully auditable.