store
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package store provides various implementation of ipn.StateStore.
Index¶
- Constants
- func HasKnownProviderPrefix(path string) bool
- func New(logf logger.Logf, path string) (ipn.StateStore, error)
- func NewFileStore(logf logger.Logf, path string) (ipn.StateStore, error)
- func Register(prefix string, fn Provider)
- func RegisterForTest(t testenv.TB, prefix string, fn Provider)
- func TryWindowsAppDataMigration(logf logger.Logf, path string) string
- type ExportableStore
- type FileStore
- type Provider
Constants¶
const TPMPrefix = "tpmseal:"TPMPrefix is the path prefix used for TPM-encrypted StateStore.
Variables¶
This section is empty.
Functions¶
funcHasKnownProviderPrefix¶added inv1.86.0
HasKnownProviderPrefix reports whether path uses one of the registeredProvider prefixes.
funcNew¶
New returns a StateStore based on the provided argand registered stores.The arg is of the form "prefix:rest", where prefix was previouslyregistered with Register.
By default the following stores are registered:
- if the string begins with "mem:", the suffixis ignored and an in-memory store is used.
- (Linux-only) if the string begins with "arn:",the suffix an AWS ARN for an SSM.
- (Linux-only) if the string begins with "kube:",the suffix is a Kubernetes secret name
- (Linux or Windows) if the string begins with "tpmseal:", the suffix isfilepath that is sealed with the local TPM device.
- In all other cases, the path is treated as a filepath.
funcNewFileStore¶
NewFileStore returns a new file store that persists to path.
funcRegister¶
Register registers a prefix to be used forNewStore. It panics if the prefix is empty, or if theprefix is already registered.The provided fn is called with the path passed to NewStore;the prefix is not stripped.
funcRegisterForTest¶added inv1.86.0
RegisterForTest registers a prefix to be used for NewStore in tests. Anexisting registered prefix will be replaced.
funcTryWindowsAppDataMigration¶
TryWindowsAppDataMigration attempts to copy the Windows state filefrom its old location to the new location. (Issue 2856)
Tailscale 1.14 and before stored state under %LocalAppData%(usually "C:\WINDOWS\system32\config\systemprofile\AppData\Local"when tailscaled.exe is running as a non-user system service).However it is frequently cleared for almost any reason: Windowsupdates, System Restore, even various System Cleaner utilities.
Returns a string of the path to use for the state file.This will be a fallback %LocalAppData% path if migration fails,a %ProgramData% path otherwise.
Types¶
typeExportableStore¶added inv1.86.0
type ExportableStore interface {ipn.StateStore// All returns an iterator over all store keys. Using ReadState or// WriteState is not safe while iterating and can lead to a deadlock. The// order of keys in the iterator is not specified and may change between// runs.All()iter.Seq2[ipn.StateKey, []byte]}ExportableStore is an ipn.StateStore that can export all of its contents.This interface is optional to implement, and used for migrating the statebetween different store implementations.
Directories¶
| Path | Synopsis |
|---|---|
Package awsstore contains an ipn.StateStore implementation using AWS SSM. | Package awsstore contains an ipn.StateStore implementation using AWS SSM. |
Package kubestore contains an ipn.StateStore implementation using Kubernetes Secrets. | Package kubestore contains an ipn.StateStore implementation using Kubernetes Secrets. |
Package mem provides an in-memory ipn.StateStore implementation. | Package mem provides an in-memory ipn.StateStore implementation. |