-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Vault abstraction for Galaxy #12940
Vault abstraction for Galaxy #12940
Conversation
@nuwang Fantastic! I had no idea you were working on this -- I see you used |
@dannon Custos currently requires single sign-on to access the vault api. It's being changed to add support for access through a service account. Isuru is working on this and it should be fairly straightforward to integrate afterwards. I'll take an initial crack at the UI bits just so I'm forced to work on the UI for a change, but may ask for help if I run into issues. I don't expect there to be a lot to do there, but famous last words. |
@nuwang Would you mind adding a unit test for the new table mapping as well? Here's an example (the top of the file has some documentation on what's what) - it's just for the columns, since there are no relationships. It verifies the mapping is setup correctly (and not accidentally broken down the road), and it keeps it consistent with the other model. (I'll add all this to the docs on how to edit the model as soon as we move to alembic) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool, that's going to be very useful. I guess there's a client part coming in a followup that adds the rendering of secrets ?
Not sure what happened there, the first time I tried a secret the entire extra preferences weren't rendering at all, but seems to work now. That's why I thought we still need some client work. |
Co-authored-by: Marius van den Beek <[email protected]>
Should we also stop shipping the password to the client at all ? This seems like a security and transparency issue, since the admins decide how the value is stored a user has no clue that maybe their password is safe on one server but not the other ? |
Thanks for the detailed review and test @mvdbeek, it's very helpful. I'll work on moving the api test into integration tests, and merging the test you added. Regarding the password vs secret distinction for the client, I don't have a strong opinion on it. I suppose if we make all password fields "write only", the client would never be able to store and retrieve a secure secret, even if there was some future use case in which it needed to. On the other hand, it would make the defaults more secure yes. I suppose we could also add a visual distinction in the client, maybe some text distinguishing between write only secrets and read-write secrets? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works really nice. I am having trouble configuring the Custos backend because it keeps complaining about custos-sdk
not being installed (even though it is) so perhaps once added into conditional deps that will be resolved...
Co-authored-by: Marius van den Beek <[email protected]>
…onditional requirements
Co-authored-by: Enis Afgan <[email protected]>
@mvdbeek Have made the suggested changes. Look ok to merge? |
This PR adds a vault abstraction for Galaxy with 3 backends - hashicorp, database and custos. It supercedes the work done in: #9876
Storing extra user preferences in the vault
Configuring file sources to use the vault
Programmatic Usage
Basic vault usage
User Level Vault
UserVaultWrapper creates a namespaced portion of the vault. Values are stored in the vault at: /{prefix}/users/{user_id}/{key}.
Slides:
https://bit.ly/galaxy_vault
Tasks:
Add dedicated vault secret page to user preferences?No need anymoreAdd support for listing secrets?Custos does not support this atm.Use plugin system for vault backends?Not necessaryHow to test the changes?
(Select all options that apply)
License