apache / apache/dolphinscheduler

[DSIP-101][ApiServer] How should the password be handled more elegantly when editing a data source?

Open
#17,813 8 comments 0 reactions 0 assignees View on GitHub
discussion DSIP
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.