-
Notifications
You must be signed in to change notification settings - Fork 108
[WIP]process-state: filter out additional contents from state downloads #1126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
JFYI, Downloading process state is guarded by concord/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResource.java Line 966 in aebe1f5
Also, it should be possible to put expressions into defailtTaskVars that fetch the sensitive data (from secrets). This way you'll get explicit control over who can access it and the audit log. |
Yes. The current usage is like global public project is present, where end user process runs with end-user Ids. But the requirement is, need to filter certain content even from the process initiator.
defaultTaskVariables are injected through policies which is available only inside the task |
I don't see how filtering _main.json would help in this case -- the process initiator will have the ability to get the default vars anyway by just printing them out from within the flow? I didn't test it, but perhaps we can put something like |
Something like configuration:
runtime: "concord-v2"
flows:
default:
- script: js
body: |
let vars = context.processConfiguration().defaultTaskVariables()
print(vars) All I am saying is that defaultTaskVars is not a good mechanism to pass secrets. |
Yeah. Requirement is directly inject the secrets inside the task only and users should not be able to print it or use it outside the task for any other purpose. Here secrets are maintained by admins. Any good way to acheive this? |
A better way is to change tasks to accept secret references (orgName/secretName) instead of secret values. And then fetch the secret values directly in tasks at runtime. For example, that is how Ansible tasks fetches the keys, if I remember it correctly. And then secret references can be defaultTaskVars. |
But Secret is public and anyone can access it outside the task as well. For example slack token which has to be used inside the slack task provided by concord admin only |
defaultTaskVariables
which might contain sensitive data which will be open to access for all when download state of the process.