apache / apache/dolphinscheduler
[DSIP-101][ApiServer] How should the password be handled more elegantly when editing a data source?
- Dominant language
- Java
- Stars
- 14.5k
- Forks
- 5.1k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 29
Description
### Search before asking
- [x] I had searched in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) and found no similar DSIP.
### Motivation
When editing a data source, the password field returned by the backend is masked as "*****". If the user does not change the password, the backend treats this mask as the plaintext password entered by the user during testing and saving.
The current implementation is prone to accidentally overwriting the data source's password.
### Design Detail
Option 1: Add connectivity validation when saving the data source.
Option 2: If the user has not modified the password (i.e., the frontend sends the masked value "*****"), the backend should not treat this mask as the actual password provided by the user.
Option 3: When editing a data source, the password field should be left blank instead of displaying a mask (e.g., "*****").
Option 4: Separate the password modification action from the modification of other data source information.
### Compatibility, Deprecation, and Migration Plan
_No response_
### Test Plan
_No response_
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Research direction
No files, entry points, or tests are named. First trace the data-source edit and save flow across the frontend and backend, then resolve which of the four password-handling options is required. Define tests for unchanged masked passwords and intentionally changed passwords before considering the issue done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100