Documentation ¶
Index ¶
- type Config
- type EnterpriseConfig
- type Logger
- type Notifier
- type Store
- func (t *Store) AgentRecoveryToken() string
- func (t *Store) AgentRecoveryTokenAndSource() (string, TokenSource)
- func (t *Store) AgentToken() string
- func (t *Store) AgentTokenAndSource() (string, TokenSource)
- func (t *Store) ConfigFileRegistrationToken() string
- func (t *Store) ConfigFileRegistrationTokenAndSource() (string, TokenSource)
- func (t *Store) IsAgentRecoveryToken(token string) bool
- func (t *Store) Load(cfg Config, logger Logger) error
- func (t *Store) Notify(kind TokenKind) Notifier
- func (t *Store) ReplicationToken() string
- func (t *Store) ReplicationTokenAndSource() (string, TokenSource)
- func (t *Store) StopNotify(n Notifier)
- func (t *Store) UpdateAgentRecoveryToken(token string, source TokenSource) bool
- func (t *Store) UpdateAgentToken(token string, source TokenSource) bool
- func (t *Store) UpdateConfigFileRegistrationToken(token string, source TokenSource) bool
- func (t *Store) UpdateReplicationToken(token string, source TokenSource) bool
- func (t *Store) UpdateUserToken(token string, source TokenSource) bool
- func (t *Store) UserToken() string
- func (t *Store) UserTokenAndSource() (string, TokenSource)
- func (t *Store) WithPersistenceLock(f func() error) error
- type TokenKind
- type TokenSource
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { EnablePersistence bool DataDir string ACLDefaultToken string ACLAgentToken string ACLAgentRecoveryToken string ACLReplicationToken string ACLConfigFileRegistrationToken string EnterpriseConfig }
Config used by Store.Load, which includes tokens and settings for persistence.
type EnterpriseConfig ¶
type EnterpriseConfig struct { }
type Logger ¶
type Logger interface {
Warn(msg string, args ...interface{})
}
Logger used by Store.Load to report warnings.
type Notifier ¶
type Notifier struct { Ch <-chan struct{} // contains filtered or unexported fields }
Notifier holds the channel used to notify a watcher of token updates as well as some internal tracking information to allow for deregistering the notifier.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is used to hold the special ACL tokens used by Consul agents. It is designed to update the tokens on the fly, so the token store itself should be plumbed around and used to get tokens at runtime, don't save the resulting tokens.
func (*Store) AgentRecoveryToken ¶
func (*Store) AgentRecoveryTokenAndSource ¶
func (t *Store) AgentRecoveryTokenAndSource() (string, TokenSource)
func (*Store) AgentToken ¶
AgentToken returns the best token to use for internal agent operations.
func (*Store) AgentTokenAndSource ¶
func (t *Store) AgentTokenAndSource() (string, TokenSource)
AgentToken returns the best token to use for internal agent operations.
func (*Store) ConfigFileRegistrationToken ¶
func (*Store) ConfigFileRegistrationTokenAndSource ¶
func (t *Store) ConfigFileRegistrationTokenAndSource() (string, TokenSource)
func (*Store) IsAgentRecoveryToken ¶
IsAgentRecoveryToken checks to see if a given token is the agent recovery token. This will never match an empty token for safety.
func (*Store) Load ¶
Load tokens from Config and optionally from a persisted file in the cfg.DataDir. If a token exists in both the persisted file and in the Config a warning will be logged and the persisted token will be used.
Failures to load the persisted file will result in loading tokens from the config before returning the error.
func (*Store) ReplicationToken ¶
ReplicationToken returns the replication token.
func (*Store) ReplicationTokenAndSource ¶
func (t *Store) ReplicationTokenAndSource() (string, TokenSource)
ReplicationTokenAndSource returns the replication token and its source.
func (*Store) StopNotify ¶
StopNotify stops the token store from sending notifications to the specified notifiers chan
func (*Store) UpdateAgentRecoveryToken ¶
func (t *Store) UpdateAgentRecoveryToken(token string, source TokenSource) bool
UpdateAgentRecoveryToken replaces the current agent recovery token in the store. Returns true if it was changed.
func (*Store) UpdateAgentToken ¶
func (t *Store) UpdateAgentToken(token string, source TokenSource) bool
UpdateAgentToken replaces the current agent token in the store. Returns true if it was changed.
func (*Store) UpdateConfigFileRegistrationToken ¶
func (t *Store) UpdateConfigFileRegistrationToken(token string, source TokenSource) bool
UpdateConfigFileRegistrationToken replaces the current config file registration token in the store. Returns true if it was changed.
func (*Store) UpdateReplicationToken ¶
func (t *Store) UpdateReplicationToken(token string, source TokenSource) bool
UpdateReplicationToken replaces the current replication token in the store. Returns true if it was changed.
func (*Store) UpdateUserToken ¶
func (t *Store) UpdateUserToken(token string, source TokenSource) bool
UpdateUserToken replaces the current user token in the store. Returns true if it was changed.
func (*Store) UserTokenAndSource ¶
func (t *Store) UserTokenAndSource() (string, TokenSource)
UserToken returns the best token to use for user operations.
func (*Store) WithPersistenceLock ¶
WithPersistenceLock executes f while hold a lock. If f returns a nil error, the tokens in Store will be persisted to the tokens file. Otherwise no tokens will be persisted, and the error from f will be returned.
The lock is held so that the writes are persisted before some other thread can change the value.
type TokenSource ¶
type TokenSource bool
const ( TokenSourceConfig TokenSource = false TokenSourceAPI TokenSource = true )