API Endpoint for Updating `persistentUserId`
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 564
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 29
Description
Overview of the Feature Request
We propose the addition of an API endpoint that allows for the updating of the persistentUserId for existing users to reflect a new authentication provider ID. This change aims to facilitate seamless transitions to new authentication systems, such as Shibboleth servers, by preventing user duplication errors and avoiding the need for existing users to create new accounts.
What kind of user is the feature intended for?
roles: API User
What inspired the request?
The transition to a new Shibboleth server at our institution has led to significant issues with user account management. Existing users are prompted to create new accounts when they log in via the new server, leading to errors since these accounts already exist. This problem is rooted in the persistentUserId containing the old Shibboleth URL and the user's email address, which no longer matches the new authentication system's identifiers.
What existing behavior do you want changed?
Currently, there is no straightforward way to update the persistentUserId for existing users en masse, which leads to administrative difficulties and a poor user experience. We seek to change this by introducing a method to update the persistentUserId directly via an API call, thereby aligning user accounts with the new authentication provider IDs without manual intervention.
Any brand new behavior do you want to add to Dataverse?
Yes, the introduction of an API endpoint specifically designed for the purpose of updating persistentUserId values. This endpoint would:
- Allow for the bulk updating of
persistentUserIdvalues based on input parameters (current and new IDs). - Provide a mechanism to seamlessly transition user accounts between different authentication systems.
- Ensure that user account continuity is maintained without requiring users to re-register or manually resolve by a direct find-and-replace method within the database.
Any open or closed issues related to this feature request?
At the time of writing, there are no open or closed issues directly related to this specific feature request.
Contributor 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.
Research direction
No files, tests, or existing API entry points are named. Start by reviewing how Dataverse exposes user APIs and handles persistentUserId, then clarify the bulk-update inputs and safeguards with maintainers. Done means an agreed endpoint updates old authentication-provider IDs to new ones without duplicating existing accounts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, authentication
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100