client

package
v0.9.0-RC1 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2020 License: Apache-2.0 Imports: 29 Imported by: 61

Documentation

Index

Constants

View Source
const AdminTokenFileSuffix = "_admin"

AdminTokenFileSuffix is the suffix used for the token file name

Variables

View Source
var (
	ErrIllegalArguments = errors.New("illegal arguments")

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

Errors related to Client connection and health check

Functions

func BuildToken added in v0.7.0

func BuildToken(database string, token string) []byte

func NewHomedirService added in v0.7.0

func NewHomedirService() *homedirService

Types

type HomedirService added in v0.7.0

type HomedirService interface {
	WriteFileToUserHomeDir(content []byte, pathToFile string) error
	FileExistsInUserHomeDir(pathToFile string) (bool, error)
	ReadFileFromUserHomeDir(pathToFile string) (string, error)
	DeleteFileFromUserHomeDir(pathToFile string) error
}

type ImmuClient

type ImmuClient interface {
	Disconnect() error
	IsConnected() bool
	WaitForHealthCheck(ctx context.Context) (err error)
	HealthCheck(ctx context.Context) 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

	CreateUser(ctx context.Context, user []byte, pass []byte, permission uint32, databasename string) error
	ListUsers(ctx context.Context) (*schema.UserList, error)
	ChangePassword(ctx context.Context, user []byte, oldPass []byte, newPass []byte) error
	ChangePermission(ctx context.Context, action schema.PermissionAction, username string, database string, permissions uint32) error
	UpdateAuthConfig(ctx context.Context, kind auth.Kind) error
	UpdateMTLSConfig(ctx context.Context, enabled bool) error
	PrintTree(ctx context.Context) (*schema.Tree, error)

	WithOptions(options *Options) *immuClient
	WithLogger(logger logger.Logger) *immuClient
	WithStateService(rs state.StateService) *immuClient
	WithTimestampService(ts TimestampService) *immuClient
	WithClientConn(clientConn *grpc.ClientConn) *immuClient
	WithServiceClient(serviceClient schema.ImmuServiceClient) *immuClient
	WithTokenService(tokenService TokenService) *immuClient

	GetServiceClient() *schema.ImmuServiceClient
	GetOptions() *Options
	SetupDialOptions(options *Options) *[]grpc.DialOption

	DatabaseList(ctx context.Context) (*schema.DatabaseListResponse, error)
	CreateDatabase(ctx context.Context, d *schema.Database) error
	UseDatabase(ctx context.Context, d *schema.Database) (*schema.UseDatabaseReply, error)
	SetActiveUser(ctx context.Context, u *schema.SetActiveUserRequest) error

	CurrentState(ctx context.Context) (*schema.ImmutableState, error)

	Set(ctx context.Context, key []byte, value []byte) (*schema.TxMetadata, error)
	VerifiedSet(ctx context.Context, key []byte, value []byte) (*schema.TxMetadata, error)

	Get(ctx context.Context, key []byte) (*schema.Entry, error)
	VerifiedGet(ctx context.Context, key []byte, opts ...grpc.CallOption) (*schema.Entry, error)

	GetSince(ctx context.Context, key []byte, tx uint64) (*schema.Entry, error)

	History(ctx context.Context, req *schema.HistoryRequest) (*schema.Entries, error)

	ZAdd(ctx context.Context, set []byte, score float64, key []byte) (*schema.TxMetadata, error)
	VerifiedZAdd(ctx context.Context, set []byte, score float64, key []byte) (*schema.TxMetadata, error)

	ZAddAt(ctx context.Context, set []byte, score float64, key []byte, atTx uint64) (*schema.TxMetadata, error)
	VerifiedZAddAt(ctx context.Context, set []byte, score float64, key []byte, atTx uint64) (*schema.TxMetadata, error)

	Scan(ctx context.Context, req *schema.ScanRequest) (*schema.Entries, error)
	ZScan(ctx context.Context, req *schema.ZScanRequest) (*schema.ZEntries, error)

	TxByID(ctx context.Context, tx uint64) (*schema.Tx, error)
	VerifiedTxByID(ctx context.Context, tx uint64) (*schema.Tx, error)

	Count(ctx context.Context, prefix []byte) (*schema.EntryCount, error)
	CountAll(ctx context.Context) (*schema.EntryCount, error)

	SetAll(ctx context.Context, kvList *schema.SetRequest) (*schema.TxMetadata, error)
	GetAll(ctx context.Context, keys [][]byte) (*schema.Entries, error)

	ExecAll(ctx context.Context, in *schema.ExecAllRequest) (*schema.TxMetadata, error)

	SetReference(ctx context.Context, key []byte, referencedKey []byte) (*schema.TxMetadata, error)
	VerifiedSetReference(ctx context.Context, key []byte, referencedKey []byte) (*schema.TxMetadata, error)

	SetReferenceAt(ctx context.Context, key []byte, referencedKey []byte, atTx uint64) (*schema.TxMetadata, error)
	VerifiedSetReferenceAt(ctx context.Context, key []byte, referencedKey []byte, atTx uint64) (*schema.TxMetadata, error)

	Dump(ctx context.Context, writer io.WriteSeeker) (int64, error)

	// DEPRECATED: Please use CurrentState
	CurrentRoot(ctx context.Context) (*schema.ImmutableState, error)
	// DEPRECATED: Please use VerifiedSet
	SafeSet(ctx context.Context, key []byte, value []byte) (*schema.TxMetadata, error)
	// DEPRECATED: Please use VerifiedGet
	SafeGet(ctx context.Context, key []byte, opts ...grpc.CallOption) (*schema.Entry, error)
	// DEPRECATED: Please use VerifiedZAdd
	SafeZAdd(ctx context.Context, set []byte, score float64, key []byte) (*schema.TxMetadata, error)
	// DEPRECATED: Please use VerifiedSetRefrence
	SafeReference(ctx context.Context, key []byte, referencedKey []byte) (*schema.TxMetadata, error)
}

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
	MaxRecvMsgSize     int
	DialOptions        *[]grpc.DialOption
	Config             string
	TokenFileName      string
	CurrentDatabase    string
	PasswordReader     c.PasswordReader
	Tkns               TokenService
	Metrics            bool
	PidPath            string
	PrometheusHost     string
	PrometheusPort     string
	LogFileName        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) WithLogFileName added in v0.7.0

func (o *Options) WithLogFileName(filename string) *Options

WithLogFileName set log file name

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) WithMaxRecvMsgSize added in v0.8.1

func (o *Options) WithMaxRecvMsgSize(maxRecvMsgSize int) *Options

MaxRecvMsgSize max recv msg size in bytes

func (*Options) WithMetrics added in v0.7.0

func (o *Options) WithMetrics(start bool) *Options

WithMetrics set if metrics should start

func (*Options) WithPasswordReader added in v0.7.0

func (o *Options) WithPasswordReader(pr c.PasswordReader) *Options

WithPasswordReader sets the password reader for the client

func (*Options) WithPidPath added in v0.7.0

func (o *Options) WithPidPath(path string) *Options

WithPidPath set pid file path

func (*Options) WithPort

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

WithPort sets port

func (*Options) WithPrometheusHost added in v0.7.0

func (o *Options) WithPrometheusHost(host string) *Options

WithPrometheusHost set prometheus host

func (*Options) WithPrometheusPort added in v0.7.0

func (o *Options) WithPrometheusPort(port string) *Options

WithPrometheusPort set prometheus port

func (*Options) WithTokenFileName

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

WithTokenFileName sets token file name

func (*Options) WithTokenService added in v0.7.0

func (o *Options) WithTokenService(tkns TokenService) *Options

WithTokenService sets the TokenService for the client

type TimestampService

type TimestampService interface {
	GetTime() time.Time
}

TimestampService the timestamp service interface

func NewTimestampService

func NewTimestampService(ts timestamp.TsGenerator) TimestampService

NewTimestampService ...

type TokenService added in v0.7.0

type TokenService interface {
	SetToken(database string, token string) error
	WithHds(hds HomedirService) TokenService
	WithTokenFileName(tfn string) TokenService
	IsTokenPresent() (bool, error)
	DeleteToken() error
	GetToken() (string, error)
	GetDatabase() (string, error)
}

func NewTokenService added in v0.7.0

func NewTokenService() TokenService

NewTokenService ...

Directories

Path Synopsis
Package clienttest ...
Package clienttest ...

Jump to

Keyboard shortcuts

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