Documentation ¶
Overview ¶
Copyright 2021 CodeNotary, Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- Variables
- func BuildToken(database string, token string) []byte
- func NewHomedirService() *homedirService
- type HomedirService
- type ImmuClient
- type MTLsOptions
- type Options
- func (o *Options) Bind() string
- func (o *Options) String() string
- func (o *Options) WithAddress(address string) *Options
- func (o *Options) WithAuth(authEnabled bool) *Options
- func (o *Options) WithConfig(config string) *Options
- func (o *Options) WithDatabase(database string) *Options
- func (o *Options) WithDialOptions(dialOptions *[]grpc.DialOption) *Options
- func (o *Options) WithDir(dir string) *Options
- func (o *Options) WithHealthCheckRetries(retries int) *Options
- func (o *Options) WithLogFileName(filename string) *Options
- func (o *Options) WithMTLs(MTLs bool) *Options
- func (o *Options) WithMTLsOptions(MTLsOptions MTLsOptions) *Options
- func (o *Options) WithMaxRecvMsgSize(maxRecvMsgSize int) *Options
- func (o *Options) WithMetrics(start bool) *Options
- func (o *Options) WithPassword(password string) *Options
- func (o *Options) WithPasswordReader(pr c.PasswordReader) *Options
- func (o *Options) WithPidPath(path string) *Options
- func (o *Options) WithPort(port int) *Options
- func (o *Options) WithPrometheusHost(host string) *Options
- func (o *Options) WithPrometheusPort(port string) *Options
- func (o *Options) WithServerSigningPubKey(serverSigningPubKey string) *Options
- func (o *Options) WithStreamChunkSize(streamChunkSize int) *Options
- func (o *Options) WithTokenFileName(tokenFileName string) *Options
- func (o *Options) WithTokenService(tkns TokenService) *Options
- func (o *Options) WithUsername(username string) *Options
- type TimestampService
- type TokenService
Constants ¶
const AdminTokenFileSuffix = "_admin"
AdminTokenFileSuffix is the suffix used for the token file name
const DefaultDB = "defaultdb"
const SQLPrefix byte = 2
Variables ¶
var ( ErrIllegalArguments = errors.New("illegal arguments") ErrAlreadyConnected = errors.New("already connected") ErrNotConnected = errors.New("not connected") ErrHealthCheckFailed = errors.New("health check failed") ErrServerStateIsOlder = errors.New("server state is older than the client one") )
Errors related to Client connection and health check
var ( ErrSrvIllegalArguments = status.Error(codes.InvalidArgument, "illegal arguments") ErrSrvIllegalState = status.Error(codes.InvalidArgument, "illegal state") ErrSrvEmptyAdminPassword = status.Error(codes.InvalidArgument, "Admin password cannot be empty") )
Server errors mapping
Functions ¶
func BuildToken ¶ added in v0.7.0
func NewHomedirService ¶ added in v0.7.0
func NewHomedirService() *homedirService
Types ¶
type HomedirService ¶ added in v0.7.0
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 WithOptions(options *Options) *immuClient WithLogger(logger logger.Logger) *immuClient WithStateService(rs state.StateService) *immuClient WithClientConn(clientConn *grpc.ClientConn) *immuClient WithServiceClient(serviceClient schema.ImmuServiceClient) *immuClient WithTokenService(tokenService TokenService) *immuClient WithServerSigningPubKey(serverSigningPubKey *ecdsa.PublicKey) *immuClient WithStreamServiceFactory(ssf stream.ServiceFactory) *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 CleanIndex(ctx context.Context, req *emptypb.Empty) 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) GetSince(ctx context.Context, key []byte, tx uint64) (*schema.Entry, error) GetAt(ctx context.Context, key []byte, tx uint64) (*schema.Entry, error) VerifiedGet(ctx context.Context, key []byte) (*schema.Entry, error) VerifiedGetSince(ctx context.Context, key []byte, tx uint64) (*schema.Entry, error) VerifiedGetAt(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) TxScan(ctx context.Context, req *schema.TxScanRequest) (*schema.TxList, 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) StreamSet(ctx context.Context, kv []*stream.KeyValue) (*schema.TxMetadata, error) StreamGet(ctx context.Context, k *schema.KeyRequest) (*schema.Entry, error) StreamVerifiedSet(ctx context.Context, kv []*stream.KeyValue) (*schema.TxMetadata, error) StreamVerifiedGet(ctx context.Context, k *schema.VerifiableGetRequest) (*schema.Entry, error) StreamScan(ctx context.Context, req *schema.ScanRequest) (*schema.Entries, error) StreamZScan(ctx context.Context, req *schema.ZScanRequest) (*schema.ZEntries, error) StreamHistory(ctx context.Context, req *schema.HistoryRequest) (*schema.Entries, error) StreamExecAll(ctx context.Context, req *stream.ExecAllRequest) (*schema.TxMetadata, error) SQLExec(ctx context.Context, sql string, params map[string]interface{}) (*schema.SQLExecResult, error) UseSnapshot(ctx context.Context, sinceTx, asBeforeTx uint64) error SQLQuery(ctx context.Context, sql string, params map[string]interface{}, renewSnapshot bool) (*schema.SQLQueryResult, error) ListTables(ctx context.Context) (*schema.SQLQueryResult, error) DescribeTable(ctx context.Context, tableName string) (*schema.SQLQueryResult, error) VerifyRow(ctx context.Context, row *schema.Row, table string, pkVal *schema.SQLValue) error }
ImmuClient ...
func NewImmuClient ¶
func NewImmuClient(options *Options) (c ImmuClient, err error)
NewImmuClient ...
type MTLsOptions ¶
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) 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 //--> only used by immuclient CLI PasswordReader c.PasswordReader Username string Password string Database string //<-- Tkns TokenService Metrics bool PidPath string PrometheusHost string PrometheusPort string LogFileName string ServerSigningPubKey string StreamChunkSize int }
Options client options
func (*Options) WithAddress ¶
WithAddress sets address
func (*Options) WithConfig ¶
WithConfig sets config file name
func (*Options) WithDatabase ¶ added in v0.9.2
WithDatabase sets the database for the client
func (*Options) WithDialOptions ¶
func (o *Options) WithDialOptions(dialOptions *[]grpc.DialOption) *Options
WithDialOptions sets dialOptions
func (*Options) WithHealthCheckRetries ¶
WithHealthCheckRetries sets healt check retries
func (*Options) WithLogFileName ¶ added in v0.7.0
WithLogFileName set log file name
func (*Options) WithMTLsOptions ¶
func (o *Options) WithMTLsOptions(MTLsOptions MTLsOptions) *Options
WithMTLsOptions sets MTLsOptions
func (*Options) WithMaxRecvMsgSize ¶ added in v0.8.1
MaxRecvMsgSize max recv msg size in bytes
func (*Options) WithMetrics ¶ added in v0.7.0
WithMetrics set if metrics should start
func (*Options) WithPassword ¶ added in v0.9.2
WithPassword sets the password for the client
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
WithPidPath set pid file path
func (*Options) WithPrometheusHost ¶ added in v0.7.0
WithPrometheusHost set prometheus host
func (*Options) WithPrometheusPort ¶ added in v0.7.0
WithPrometheusPort set prometheus port
func (*Options) WithServerSigningPubKey ¶ added in v0.9.0
WithServerSigningPubKey sets the public key. If presents server state signature verification is enabled
func (*Options) WithStreamChunkSize ¶ added in v0.9.2
WithStreamChunkSize set the chunk size
func (*Options) WithTokenFileName ¶
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
func (*Options) WithUsername ¶ added in v0.9.2
WithUsername sets the username for the client
type TimestampService ¶
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) }