Documentation ¶
Index ¶
- Variables
- func CryptoBackendName(cb CryptoBackend) string
- func CryptoBackends() []string
- func HasCryptoBackend(ctx context.Context) bool
- func HasRCSBackend(ctx context.Context) bool
- func HasStorageBackend(ctx context.Context) bool
- func RCSBackendName(sb RCSBackend) string
- func RCSBackends() []string
- func RegisterCrypto(id CryptoBackend, name string, loader CryptoLoader)
- func RegisterRCS(id RCSBackend, name string, loader RCSLoader)
- func RegisterStorage(id StorageBackend, name string, loader StorageLoader)
- func StorageBackendName(sb StorageBackend) string
- func StorageBackends() []string
- func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
- func WithCryptoBackendString(ctx context.Context, be string) context.Context
- func WithRCSBackend(ctx context.Context, sb RCSBackend) context.Context
- func WithRCSBackendString(ctx context.Context, sb string) context.Context
- func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
- func WithStorageBackendString(ctx context.Context, sb string) context.Context
- type Crypto
- type CryptoBackend
- type CryptoLoader
- type Keyring
- type RCS
- type RCSBackend
- type RCSLoader
- type Revision
- type Storage
- type StorageBackend
- type StorageLoader
- type URL
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotFound is returned if the requested backend was not found. ErrNotFound = fmt.Errorf("backend not found") )
Functions ¶
func CryptoBackendName ¶
func CryptoBackendName(cb CryptoBackend) string
CryptoBackendName returns the name of the given backend
func CryptoBackends ¶ added in v1.8.4
func CryptoBackends() []string
CryptoBackends returns the list of registered crypto backends.
func HasCryptoBackend ¶
HasCryptoBackend returns true if a value for crypto backend has been set in the context
func HasRCSBackend ¶
HasRCSBackend returns true if a value for sync backend has been set in the context
func HasStorageBackend ¶
HasStorageBackend returns true if a value for store backend was set
func RCSBackendName ¶
func RCSBackendName(sb RCSBackend) string
RCSBackendName returns the name of the given backend
func RCSBackends ¶ added in v1.8.4
func RCSBackends() []string
RCSBackends returns the list of registered RCS backends.
func RegisterCrypto ¶ added in v1.8.4
func RegisterCrypto(id CryptoBackend, name string, loader CryptoLoader)
RegisterCrypto registers a new crypto backend with the backend registry.
func RegisterRCS ¶ added in v1.8.4
func RegisterRCS(id RCSBackend, name string, loader RCSLoader)
RegisterRCS registers a new RCS backend with the backend registry.
func RegisterStorage ¶ added in v1.8.4
func RegisterStorage(id StorageBackend, name string, loader StorageLoader)
RegisterStorage registers a new storage backend with the registry.
func StorageBackendName ¶
func StorageBackendName(sb StorageBackend) string
StorageBackendName returns the name of the given backend
func StorageBackends ¶ added in v1.8.4
func StorageBackends() []string
StorageBackends returns the list of registered storage backends.
func WithCryptoBackend ¶
func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
WithCryptoBackend returns a context with the given crypto backend set
func WithCryptoBackendString ¶
WithCryptoBackendString returns a context with the given crypto backend set
func WithRCSBackend ¶
func WithRCSBackend(ctx context.Context, sb RCSBackend) context.Context
WithRCSBackend returns a context with the given sync backend set
func WithRCSBackendString ¶
WithRCSBackendString returns a context with the given sync backend set
func WithStorageBackend ¶
func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
WithStorageBackend returns a context with the given store backend set
Types ¶
type Crypto ¶
type Crypto interface { Keyring Encrypt(ctx context.Context, plaintext []byte, recipients []string) ([]byte, error) Decrypt(ctx context.Context, ciphertext []byte) ([]byte, error) RecipientIDs(ctx context.Context, ciphertext []byte) ([]string, error) Name() string Version(context.Context) semver.Version Initialized(ctx context.Context) error Ext() string // filename extension IDFile() string // recipient IDs }
Crypto is a crypto backend
type CryptoBackend ¶
type CryptoBackend int
CryptoBackend is a cryptographic backend
const ( // Plain is a no-op crypto backend Plain CryptoBackend = iota // GPGCLI is a gpg-cli based crypto backend GPGCLI // XC is an experimental crypto backend XC // Age - age-encryption.org Age )
func GetCryptoBackend ¶
func GetCryptoBackend(ctx context.Context) CryptoBackend
GetCryptoBackend returns the selected crypto backend or the default (GPGCLI)
func (CryptoBackend) String ¶
func (c CryptoBackend) String() string
type CryptoLoader ¶ added in v1.8.4
CryptoLoader is the interface for creating a new crypto backend.
type Keyring ¶
type Keyring interface { ImportPublicKey(ctx context.Context, key []byte) error ExportPublicKey(ctx context.Context, id string) ([]byte, error) ListPublicKeyIDs(ctx context.Context) ([]string, error) ListPrivateKeyIDs(ctx context.Context) ([]string, error) FindPublicKeys(ctx context.Context, needles ...string) ([]string, error) FindPrivateKeys(ctx context.Context, needles ...string) ([]string, error) FormatKey(ctx context.Context, id string) string NameFromKey(ctx context.Context, id string) string EmailFromKey(ctx context.Context, id string) string Fingerprint(ctx context.Context, id string) string ReadNamesFromKey(ctx context.Context, buf []byte) ([]string, error) CreatePrivateKeyBatch(ctx context.Context, name, email, passphrase string) error CreatePrivateKey(ctx context.Context) error }
Keyring is a public/private key manager
type RCS ¶
type RCS interface { Add(ctx context.Context, args ...string) error Commit(ctx context.Context, msg string) error Push(ctx context.Context, remote, location string) error Pull(ctx context.Context, remote, location string) error Name() string Version(ctx context.Context) semver.Version InitConfig(ctx context.Context, name, email string) error AddRemote(ctx context.Context, remote, location string) error RemoveRemote(ctx context.Context, remote string) error Revisions(ctx context.Context, name string) ([]Revision, error) GetRevision(ctx context.Context, name, revision string) ([]byte, error) Status(ctx context.Context) ([]byte, error) }
RCS is a revision control backend
type RCSBackend ¶
type RCSBackend int
RCSBackend is a remote-sync backend
const ( // Noop is a no-op mock backend Noop RCSBackend = iota // GitCLI is a git-cli based sync backend GitCLI )
func GetRCSBackend ¶
func GetRCSBackend(ctx context.Context) RCSBackend
GetRCSBackend returns the sync backend or the default (Git Mock)
func (RCSBackend) String ¶
func (s RCSBackend) String() string
type RCSLoader ¶ added in v1.8.4
type RCSLoader interface { fmt.Stringer Open(context.Context, string) (RCS, error) Clone(context.Context, string, string) (RCS, error) Init(context.Context, string, string, string) (RCS, error) }
RCSLoader is the interface for creating a new RCS backend.
type Revision ¶
type Revision struct { Hash string AuthorName string AuthorEmail string Date time.Time Subject string Body string }
Revision is a SCM revision
type Storage ¶
type Storage interface { fmt.Stringer Get(ctx context.Context, name string) ([]byte, error) Set(ctx context.Context, name string, value []byte) error Delete(ctx context.Context, name string) error Exists(ctx context.Context, name string) bool List(ctx context.Context, prefix string) ([]string, error) IsDir(ctx context.Context, name string) bool Prune(ctx context.Context, prefix string) error Available(ctx context.Context) error Name() string Version(context.Context) semver.Version Fsck(context.Context) error }
Storage is an storage backend
func NewStorage ¶ added in v1.8.4
NewStorage initializes a new storage backend.
type StorageBackend ¶
type StorageBackend int
StorageBackend is a type of storage backend
const ( // FS is a filesystem-backend storage FS StorageBackend = iota // InMem is an in-memory mock store for tests InMem )
func GetStorageBackend ¶
func GetStorageBackend(ctx context.Context) StorageBackend
GetStorageBackend returns the store backend or the default (FS)
func (StorageBackend) String ¶
func (s StorageBackend) String() string
type StorageLoader ¶ added in v1.8.4
StorageLoader is the interface for creating a new storage backend.
type URL ¶
type URL struct { Crypto CryptoBackend RCS RCSBackend Storage StorageBackend Scheme string Host string Port string Path string Username string Password string Query url.Values // contains filtered or unexported fields }
URL is a parsed backend URL
func FromPath ¶
FromPath returns a new backend URL with the given path and default backends (GitCLI, GPGCLI, FS)
func (*URL) MarshalYAML ¶
MarshalYAML implements yaml.Marshaler
func (*URL) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler