-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
secretstore.go
25 lines (19 loc) · 797 Bytes
/
secretstore.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package telegraf
// SecretStore is an interface defining functions that a secret-store plugin must satisfy.
type SecretStore interface {
Initializer
PluginDescriber
// Get searches for the given key and return the secret
Get(key string) ([]byte, error)
// Set sets the given secret for the given key
Set(key, value string) error
// List lists all known secret keys
List() ([]string, error)
// GetResolver returns a function to resolve the given key.
GetResolver(key string) (ResolveFunc, error)
}
// ResolveFunc is a function to resolve the secret.
// The returned flag indicates if the resolver is static (false), i.e.
// the secret will not change over time, or dynamic (true) to handle
// secrets that change over time (e.g. TOTP).
type ResolveFunc func() ([]byte, bool, error)