Secrets in (MR) operations
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 219
- PR merge metrics
- No merged PRs in 30d
Description
Right now, secrets to YT operations can be provided either via the `secure_vault` [mechanism](https://ytsaurus.tech/docs/en/user-guide/data-processing/operations/operations-options#common_options) or manually through creating a file in Cypress, specifying it as an artefact for the operation, and reading it within the operation.
The first approach is useful with local secrets that you want to pass to the operation, but it isn't very convenient when you have some long-term constant options. It also doesn't work well with CLI: the secrets will end up being visible in the operation's starting command.
We can make the second approach simpler by introducing it natively as a new secrets field in the operation spec.
It will consist of a list of variables and corresponding document paths in Cypress, from which the values of these variables should be retrieved. Operation controllers will retrieve the contents of these documents from Cypress during operation start/revival and configure the operation env accordingly.
Things to consider:
* Do we want to provide an option to specify a single document with multiple variables? _Idk yet._
* There should be a limit on the number of variables, so that controllers do not overload masters.
* Is it possible to use this maliciously to perform some weird code injection?
* Make sure that `get` request is performed under the operation owning user.
Contributor guide
Assessment
This issue has not been assessed yet.