backend

package
v1.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2018 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CryptoBackendName

func CryptoBackendName(cb CryptoBackend) string

CryptoBackendName returns the name of the given backend

func HasCryptoBackend

func HasCryptoBackend(ctx context.Context) bool

HasCryptoBackend returns true if a value for crypto backend has been set in the context

func HasRCSBackend

func HasRCSBackend(ctx context.Context) bool

HasRCSBackend returns true if a value for sync backend has been set in the context

func HasStorageBackend

func HasStorageBackend(ctx context.Context) bool

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 StorageBackendName

func StorageBackendName(sb StorageBackend) string

StorageBackendName returns the name of the given backend

func WithCryptoBackend

func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context

WithCryptoBackend returns a context with the given crypto backend set

func WithCryptoBackendString

func WithCryptoBackendString(ctx context.Context, be string) context.Context

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

func WithRCSBackendString(ctx context.Context, sb string) context.Context

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

func WithStorageBackendString

func WithStorageBackendString(ctx context.Context, sb string) context.Context

WithStorageBackendString 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
	// OpenPGP is a GPG1.x compatible pure-Go crypto backend
	OpenPGP
	// Vault is Hashicorp Vault backend
	Vault
)

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 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)
}

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
	// GoGit is an src-d/go-git.v4 based sync backend
	GoGit
)

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 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

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
	// Consul is a consul backend storage
	Consul
)

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 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

func FromPath(path string) *URL

FromPath returns a new backend URL with the given path and default backends (GitCLI, GPGCLI, FS)

func ParseURL

func ParseURL(us string) (*URL, error)

ParseURL attempts to parse an backend URL

func (*URL) MarshalYAML

func (u *URL) MarshalYAML() (interface{}, error)

MarshalYAML implements yaml.Marshaler

func (*URL) String

func (u *URL) String() string

String implements fmt.Stringer

func (*URL) UnmarshalYAML

func (u *URL) UnmarshalYAML(umf func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler

Directories

Path Synopsis
crypto
gpg
xc
xc/xcpb
Package xcpb is a generated protocol buffer package.
Package xcpb is a generated protocol buffer package.
rcs
storage
fs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL