det101 opened a new pull request, #18585:
URL: https://github.com/apache/dolphinscheduler/pull/18585
## Summary
Implements **PR1** of DSIP-105 / #17937: add `Property.sensitive` and mask
sensitive values as `******` on API/UI read paths, with keep-original merge on
write/start.
**In scope (PR1)**
- `Property.sensitive` (default `false`)
- Deep-copy mask on workflow/task/instance query responses and
`view-variables`
- Write-path merge: only `******` means keep original; empty string is a
real empty value
- Reject creating/enabling sensitive with placeholder-only `******`
- UI: **敏感 / Sensitive** checkbox on global params and task `localParams`
- Start/command path merges `******` against definition
**Out of scope (follow-up PRs)**
- PR2: definition-time encrypt/decrypt via `PasswordUtils`
- PR3: Worker stdout dynamic redaction + cleanup
## Related
- Closes part of #17937 (PR1 only)
- Design discussion on the issue (3-PR delivery)
## Test plan
- [x] Unit: `PropertySensitiveUtilsTest`, `SensitivePropertyUtilsTest`
- [x] Local standalone: create workflow with sensitive global + local params
- [x] API query returns masked `******` (globalParamList / localParams /
view-variables)
- [x] UI save modal shows **敏感** checked and value `******` after reload
- [ ] CI
### Verification evidence
API mask proof (local standalone):
```text
globalParamList:
[{"prop":"db_pwd","direct":"IN","type":"VARCHAR","value":"******","sensitive":true}]
task localParams:
[{"prop":"token","direct":"IN","type":"VARCHAR","value":"******","sensitive":true}]
view-variables: global + shell_node_1.token both masked as ******
```
UI screenshots will be attached in a follow-up comment on this PR.
Made with [Cursor](https://cursor.com)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]