refactor secdist: get rid of DefaultSecdistProvider component by mnink275 · Pull Request #573 · userver-framework/userver · GitHub
More Web Proxy on the site http://driver.im/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This PR solves the issue #547
The main changes are made in the directory: core/{include/userver,src}/storages/secdist/
The components::DefaultSecdistProvider component has been removed.
Added components::SecdistComponentBase - base component for all secret distributors. The default implementation of this class is components::Secdist - ready-to-use component.
Implementations of the storages::secdist::SecdistProviderBase class are now used to store the secdist configuration.
Thus it is still possible to implement your own secret distributor by implementing the base classes components::SecdistComponentBase and storages::secdist::SecdistProviderBase.
mnink275
changed the title
refactor secdist: get rid of DefaultSecdistProvider component
[WIP] refactor secdist: get rid of DefaultSecdistProvider component
May 8, 2024
mnink275
changed the title
[WIP] refactor secdist: get rid of DefaultSecdistProvider component
refactor secdist: get rid of DefaultSecdistProvider component
May 8, 2024
The reason will be displayed to describe this comment to others. Learn more.
Wow! You've done much more than we were expecting!
Unfortunately, in our internal codebase we already have a lot of custom providers. It is almost impossible for us, to make a migration in one go - hundreds of services should be adjusted and changed simultaneously.
Could you please split this PR into multiple?
First PR should preserve the provider config parameter and the SecdistProvider hierarchy. The DefaultSecdistProvider component should remain in code but not used in userver static configs. provider option should become empty by default, and in that case the whole functionality is implemented by the Secdist itself. That way we could merge the PR without affecting the services, remove the default-secdist-provider usage in hundreds of services.
After that, the DefaultSecdistProvider could be removed by a separate PR. And after that, we can take a second look on new hierarchy of providers (however, I think that it is fine to leave the provider to customize the Secdist in complicated cases).
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR solves the issue #547
The main changes are made in the directory:
core/{include/userver,src}/storages/secdist/
components::DefaultSecdistProvider
component has been removed.components::SecdistComponentBase
- base component for all secret distributors. The default implementation of this class iscomponents::Secdist
- ready-to-use component.storages::secdist::SecdistProviderBase
class are now used to store the secdist configuration.Thus it is still possible to implement your own secret distributor by implementing the base classes
components::SecdistComponentBase
andstorages::secdist::SecdistProviderBase
.