Experimental: Higher level VaultClient #228
Draft
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.
Every function on
Vault
accepts the same two parameters, an HTTP client and a base URI. Most require a token, which requires periodic refreshing. That token is sometimes aVaultToken
, sometimes aString
. Sometimes it's first in the second parameter list, sometimes it's last, sometimes it's in the first parameter list.This provides a
VaultClient[F]
algebra that hid the token entirely. The client is obtained as a resource by logging in, which spawns a fiber to keep the token current in a ref. The client transparently manages the token, and revokes it when the resource is disposed. TheVaultClient
does not break the existingVault
functions, and can be thought of as a higher-level access.