client

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2020 License: Apache-2.0 Imports: 29 Imported by: 64

Documentation

Index

Constants

View Source
const AdminTokenFileSuffix = "_admin"

AdminTokenFileSuffix is the suffix used for the token file name

Variables

View Source
var (
	ErrAlreadyConnected  = errors.New("already connected")
	ErrNotConnected      = errors.New("not connected")
	ErrHealthCheckFailed = errors.New("health check failed")
)

Errors related to Client connection and health check

View Source
var ErrNoServerUuid = fmt.Errorf(
	"!IMPORTANT WARNING: %s header is not published by the immudb server; "+
		"this client MUST NOT be used to connect to different immudb servers!",
	server.SERVER_UUID_HEADER)

ErrNoServerUuid ...

Functions

func DeleteFileFromUserHomeDir

func DeleteFileFromUserHomeDir(pathToFile string)

DeleteFileFromUserHomeDir deletes the file at the provided path or from user home dir if just a filename is provided

func FileExistsInUserHomeDir

func FileExistsInUserHomeDir(pathToFile string) (bool, error)

FileExistsInUserHomeDir checks if the file at the provided path exists or, in case just a filename is provided, it looks for it in the user home dir

func GetServerUuid

func GetServerUuid(
	ctx context.Context,
	immuClient schema.ImmuServiceClient,
) (string, error)

GetServerUuid issues a Health command to the server, then parses and returns the server UUID from the response metadata

func ReadFileFromUserHomeDir

func ReadFileFromUserHomeDir(pathToFile string) (string, error)

ReadFileFromUserHomeDir reads the contents at the specified filepath; if just a filename is specified, it looks for it in the user home dir

func WriteFileToUserHomeDir

func WriteFileToUserHomeDir(content []byte, pathToFile string) error

WriteFileToUserHomeDir writes the provided content to the specified file path or to user home dir if just a filename is provided

Types

type BatchRequest

type BatchRequest struct {
	Keys   []io.Reader
	Values []io.Reader
}

BatchRequest batch request payload

type ImmuClient

type ImmuClient interface {
	Disconnect() error
	IsConnected() bool
	WaitForHealthCheck(ctx context.Context) (err error)
	Connect(ctx context.Context) (clientConn *grpc.ClientConn, err error)
	Login(ctx context.Context, user []byte, pass []byte) (*schema.LoginResponse, error)
	Logout(ctx context.Context) error
	ListUsers(ctx context.Context) (*schema.UserList, error)
	GetUser(ctx context.Context, user []byte) (*schema.UserResponse, error)
	CreateUser(ctx context.Context, user []byte, pass []byte, permissions []byte) (*schema.UserResponse, error)
	DeactivateUser(ctx context.Context, user []byte) error
	ChangePassword(ctx context.Context, user []byte, oldPass []byte, newPass []byte) error
	SetPermission(ctx context.Context, user []byte, permissions []byte) error
	UpdateAuthConfig(ctx context.Context, kind auth.Kind) error
	UpdateMTLSConfig(ctx context.Context, enabled bool) error
	PrintTree(ctx context.Context) (*schema.Tree, error)
	CurrentRoot(ctx context.Context) (*schema.Root, error)
	Set(ctx context.Context, key []byte, value []byte) (*schema.Index, error)
	SafeSet(ctx context.Context, key []byte, value []byte) (*VerifiedIndex, error)
	RawSafeSet(ctx context.Context, key []byte, value []byte) (*VerifiedIndex, error)
	Get(ctx context.Context, key []byte) (*schema.StructuredItem, error)
	SafeGet(ctx context.Context, key []byte, opts ...grpc.CallOption) (*VerifiedItem, error)
	RawSafeGet(ctx context.Context, key []byte, opts ...grpc.CallOption) (*VerifiedItem, error)
	Scan(ctx context.Context, prefix []byte) (*schema.StructuredItemList, error)
	ZScan(ctx context.Context, set []byte) (*schema.StructuredItemList, error)
	ByIndex(ctx context.Context, index uint64) (*schema.StructuredItem, error)
	RawBySafeIndex(ctx context.Context, index uint64) (*VerifiedItem, error)
	IScan(ctx context.Context, pageNumber uint64, pageSize uint64) (*schema.SPage, error)
	Count(ctx context.Context, prefix []byte) (*schema.ItemsCount, error)
	SetBatch(ctx context.Context, request *BatchRequest) (*schema.Index, error)
	GetBatch(ctx context.Context, keys [][]byte) (*schema.StructuredItemList, error)
	Inclusion(ctx context.Context, index uint64) (*schema.InclusionProof, error)
	Consistency(ctx context.Context, index uint64) (*schema.ConsistencyProof, error)
	History(ctx context.Context, key []byte) (*schema.StructuredItemList, error)
	Reference(ctx context.Context, reference []byte, key []byte) (*schema.Index, error)
	SafeReference(ctx context.Context, reference []byte, key []byte) (*VerifiedIndex, error)
	ZAdd(ctx context.Context, set []byte, score float64, key []byte) (*schema.Index, error)
	SafeZAdd(ctx context.Context, set []byte, score float64, key []byte) (*VerifiedIndex, error)
	Dump(ctx context.Context, writer io.WriteSeeker) (int64, error)
	HealthCheck(ctx context.Context) error

	WithOptions(options *Options) *immuClient
	WithLogger(logger logger.Logger) *immuClient
	WithRootService(rs RootService) *immuClient
	WithTimestampService(ts TimestampService) *immuClient
	WithClientConn(clientConn *grpc.ClientConn) *immuClient
	WithServiceClient(serviceClient schema.ImmuServiceClient) *immuClient

	GetServiceClient() *schema.ImmuServiceClient
	GetOptions() *Options
	// contains filtered or unexported methods
}

ImmuClient ...

func DefaultClient

func DefaultClient() ImmuClient

DefaultClient ...

func NewImmuClient

func NewImmuClient(options *Options) (c ImmuClient, err error)

NewImmuClient ...

type MTLsOptions

type MTLsOptions struct {
	Servername  string
	Pkey        string
	Certificate string
	ClientCAs   string
}

MTLsOptions mTLS options

func DefaultMTLsOptions

func DefaultMTLsOptions() MTLsOptions

DefaultMTLsOptions returns the default mTLS options

func (MTLsOptions) WithCertificate

func (o MTLsOptions) WithCertificate(certificate string) MTLsOptions

WithCertificate ...

func (MTLsOptions) WithClientCAs

func (o MTLsOptions) WithClientCAs(clientCAs string) MTLsOptions

WithClientCAs ...

func (MTLsOptions) WithPkey

func (o MTLsOptions) WithPkey(pkey string) MTLsOptions

WithPkey ...

func (MTLsOptions) WithServername

func (o MTLsOptions) WithServername(servername string) MTLsOptions

WithServername ...

type Options

type Options struct {
	Dir                string
	Address            string
	Port               int
	HealthCheckRetries int
	MTLs               bool
	MTLsOptions        MTLsOptions
	Auth               bool
	DialOptions        *[]grpc.DialOption
	Config             string
	TokenFileName      string
}

Options client options

func DefaultOptions

func DefaultOptions() *Options

DefaultOptions ...

func (*Options) Bind

func (o *Options) Bind() string

Bind concatenates address and port

func (*Options) String

func (o *Options) String() string

func (*Options) WithAddress

func (o *Options) WithAddress(address string) *Options

WithAddress sets address

func (*Options) WithAuth

func (o *Options) WithAuth(authEnabled bool) *Options

WithAuth activate/deactivate auth

func (*Options) WithConfig

func (o *Options) WithConfig(config string) *Options

WithConfig sets config file name

func (*Options) WithDialOptions

func (o *Options) WithDialOptions(dialOptions *[]grpc.DialOption) *Options

WithDialOptions sets dialOptions

func (*Options) WithDir

func (o *Options) WithDir(dir string) *Options

WithDir sets program file folder

func (*Options) WithHealthCheckRetries

func (o *Options) WithHealthCheckRetries(retries int) *Options

WithHealthCheckRetries sets healt check retries

func (*Options) WithMTLs

func (o *Options) WithMTLs(MTLs bool) *Options

WithMTLs activate/deactivate MTLs

func (*Options) WithMTLsOptions

func (o *Options) WithMTLsOptions(MTLsOptions MTLsOptions) *Options

WithMTLsOptions sets MTLsOptions

func (*Options) WithPort

func (o *Options) WithPort(port int) *Options

WithPort sets port

func (*Options) WithTokenFileName

func (o *Options) WithTokenFileName(tokenFileName string) *Options

WithTokenFileName sets token file name

type RootService

type RootService interface {
	GetRoot(ctx context.Context) (*schema.Root, error)
	SetRoot(root *schema.Root) error
}

RootService the root service interface

func NewRootService

func NewRootService(immuC schema.ImmuServiceClient, cache cache.Cache, logger logger.Logger) RootService

NewRootService ...

type TimestampService

type TimestampService interface {
	GetTime() time.Time
}

TimestampService the timestamp service interface

func NewTimestampService

func NewTimestampService(ts timestamp.TsGenerator) TimestampService

NewTimestampService ...

type VerifiedIndex

type VerifiedIndex struct {
	Index    uint64 `json:"index"`
	Verified bool   `json:"verified"`
}

VerifiedIndex ...

func (*VerifiedIndex) ProtoMessage

func (*VerifiedIndex) ProtoMessage()

ProtoMessage ...

func (*VerifiedIndex) Reset

func (vi *VerifiedIndex) Reset()

Reset ...

func (*VerifiedIndex) String

func (vi *VerifiedIndex) String() string

type VerifiedItem

type VerifiedItem struct {
	Key      []byte `json:"key"`
	Value    []byte `json:"value"`
	Index    uint64 `json:"index"`
	Time     uint64 `json:"time"`
	Verified bool   `json:"verified"`
}

VerifiedItem ...

func (*VerifiedItem) ProtoMessage

func (*VerifiedItem) ProtoMessage()

ProtoMessage ...

func (*VerifiedItem) Reset

func (vi *VerifiedItem) Reset()

Reset ...

func (*VerifiedItem) String

func (vi *VerifiedItem) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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