Determine usability of Arcus.Security #438
stijnmoreels
started this conversation in
General
Replies: 1 comment 3 replies
-
I agree with most of the points above. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Arcus.Security has been arround for some time, but the maintainence is not always easy to garantuee. To continue the simplification and usability of the library, some decisions should be made. This discussion item acts as a parent to discus/argument against certain proposal ideas noted here.
To make Arcus.Security more easier, modular to implement in new and existing projects, we should:
Arcus.Observability
in Arcus.Security.Core`: since custom observability is being in review, and to have less a hard-link between Arcus libraries, we should make sure that we don't depend directly on this library. Currently, it is only being used for auditing reasons, when getting secrets, this can be done differently in a number of ways.GetSecret...
calls inISecretProvider
: currently, there are number of ways to get secrets. These should be reviewed and simplified greatly.GetSecret(Async)
,GetRawSecret(Async)
, should becomeGetSecretAsync
/GetSecret
in theISecretProvider
interface. This removes the need for having aISyncSecretProvider
interface and lets implementations having built-in capabilities for sync/async choices, instead of being aware of two seperate interfaces.implicit operator
forSecret
, so that it is easier to transform tostring
, but remove all theGetRawSecret...
calls, as it is mostly duplicated logic.ISecretStore
methods and become main point of contact: instead of using theISecretProvider
directly for users to use, we should think about using theISecretStore
as the central point. It would allow easier understanding of the secret store, as well as providing functionality to users without having the secret providers to update each time.GetProvider(...)
andGetProvider<T>(...)
, and remove the cached-versions.GetSecret(Async)
IVersionedSecretProvider
interface, in favor of using the secret providers directly. Only the Key vault secret provider, is currently making sense of using versions.DelegateSecretProvider
instead of a mutated/cached variant, using a functional way instead.Beta Was this translation helpful? Give feedback.
All reactions