det101 opened a new issue, #18586:
URL: https://github.com/apache/dolphinscheduler/issues/18586

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and 
found no similar feature requirement.
   
   ### Description
   
   Subtask of #17937 (DSIP-105). Parent remains the DSIP design tracker; this 
issue is the first implementation slice.
   
   Add `Property.sensitive` and mask sensitive parameter values as `******` on 
API/UI read paths. Keep-original merge on write/start. **No encryption** in 
this subtask.
   
   #### In scope (aligned with PR #18585)
   
   - Add `Property.sensitive` (default `false`; missing JSON field is `false`)
   - Deep-copy mask on workflow / task / instance query responses and 
`view-variables` (never mutate shared entities in place)
   - Write-path merge: only `******` means keep the DB original value
   - Empty / null is a **real empty value**, not keep-original
   - Reject creating a new sensitive param, or flipping `false → true`, with 
placeholder-only `******`
   - UI: **Sensitive** checkbox on workflow global params and task 
`localParams`; echo `******` after reload
   - Start / command path: `******` in start params is replaced with the 
definition value
   
   #### Out of scope (follow-up subtasks)
   
   - Definition-time encrypt/decrypt via `PasswordUtils` (next API subtask)
   - Worker stdout dynamic redaction + cleanup (Worker subtask)
   - Project parameters, Export / Import (parent out of scope)
   
   #### Acceptance
   
   - [ ] Marked `sensitive=true` params never return real values in external 
API/UI (`******` only)
   - [ ] Unmarked params behave exactly as today
   - [ ] Saving with `******` does not overwrite the stored secret
   - [ ] Empty string persists as empty, not as keep-original
   - [ ] `false → true` with only `******` is rejected
   - [ ] Unit tests for mask / merge / placeholder validation
   - [ ] UI checkbox works on global params and task local params
   
   Implementation: https://github.com/apache/dolphinscheduler/pull/18585
   
   ### Use case
   
   Users store passwords / API keys as workflow global params or task local 
params. After this subtask, UI and API responses must not show those values in 
plaintext. Persistence may still be plaintext; at-rest encryption is a later 
subtask.
   
   ### Related issues
   
   - Parent DSIP: #17937
   - PR: #18585
   
   ### Are you willing to submit a PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)


-- 
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]

Reply via email to