boltdb

package
v2.8.2 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrorWrongDataFormat   = Error("wrong data format") // ErrorWrongDataFormat is for corrupted request data.
	ErrorInactiveUser      = Error("user is inactive")  // ErrorInactiveUser means that user is inactive.
	ErrorEmptyAppID        = Error("empty appID param") // ErrorEmptyAppID means appID params is empty
	ErrorInactiveApp       = Error("app is inactive")   // ErrorInactiveApp means app is inactive
	ErrorEmptyDatabasePath = Error("unable to init boltdb storage with empty database path")
)
View Source
const (
	UserBucket              = "Users"             // UserBucket is a name for bucket with users.
	UserBySocialIDBucket    = "UserBySocialID"    // UserBySocialIDBucket is a name for bucket with social IDs as keys.
	UserByUsername          = "UserByUsername"    // UserByUsername  is a name for bucket with user names as keys.
	UserByPhoneNumberBucket = "UserByPhoneNumber" // UserByPhoneNumberBucket is a name for bucket with phone numbers as keys.
	UserByEmailBucket       = "UserByEmail"       // UserByEmailBucket is a name for bucket with email as keys.
)
View Source
const (
	// AppBucket is a name for bucket with apps.
	AppBucket = "Apps"
)
View Source
const (
	// BlacklistedTokenBucket is a name for bucket with tokens blacklist.
	BlacklistedTokenBucket = "BlacklistedTokens"
)
View Source
const (
	// InviteBucket is a name for bucket with invites.
	InviteBucket = "Invites"
)
View Source
const (
	// ManagementKeysBucket is a name for bucket with keys.
	ManagementKeysBucket = "ManagementKeys"
)
View Source
const (
	// TokenBucket is a name for bucket with tokens.
	TokenBucket = "Tokens"
)
View Source
const (
	// VerificationCodesBucket is a bucket with verification codes.
	VerificationCodesBucket = "VerificationCodes"
)

Variables

View Source
var ErrorClosingNonExistentDatabase = errors.New("error closing the database which is already closed or not in the pool")

Functions

func CloseDB

func CloseDB(db *bolt.DB) error

CloseDB closes database.

func InitDB

func InitDB(file string) (*bolt.DB, error)

InitDB opens database.

func NewAppStorage

func NewAppStorage(settings model.BoltDBDatabaseSettings) (model.AppStorage, error)

NewAppStorage creates new BoltDB AppStorage implementation.

func NewConnectionTester

func NewConnectionTester(settings model.BoltDBDatabaseSettings) model.ConnectionTester

func NewInviteStorage

func NewInviteStorage(settings model.BoltDBDatabaseSettings) (model.InviteStorage, error)

NewInviteStorage creates a BoltDB invites storage.

func NewManagementKeysStorage added in v2.4.4

func NewManagementKeysStorage(settings model.BoltDBDatabaseSettings) (model.ManagementKeysStorage, error)

NewTokenStorage creates a BoltDB token storage.

func NewTokenBlacklist

func NewTokenBlacklist(settings model.BoltDBDatabaseSettings) (model.TokenBlacklist, error)

NewTokenBlacklist creates a token blacklist in BoltDB.

func NewTokenStorage

func NewTokenStorage(settings model.BoltDBDatabaseSettings) (model.TokenStorage, error)

NewTokenStorage creates a BoltDB token storage.

func NewUserStorage

func NewUserStorage(settings model.BoltDBDatabaseSettings) (model.UserStorage, error)

NewUserStorage creates and inits an embedded user storage.

func NewVerificationCodeStorage

func NewVerificationCodeStorage(settings model.BoltDBDatabaseSettings) (model.VerificationCodeStorage, error)

NewVerificationCodeStorage creates and inits BoltDB verification code storage.

Types

type AppStorage

type AppStorage struct {
	// contains filtered or unexported fields
}

AppStorage is a fully functional app storage.

func (*AppStorage) ActiveAppByID

func (as *AppStorage) ActiveAppByID(appID string) (model.AppData, error)

ActiveAppByID returns app by id only if it's active.

func (*AppStorage) AppByID

func (as *AppStorage) AppByID(id string) (model.AppData, error)

AppByID returns app from memory by ID.

func (*AppStorage) Close

func (as *AppStorage) Close()

Close closes underlying database.

func (*AppStorage) CreateApp

func (as *AppStorage) CreateApp(app model.AppData) (model.AppData, error)

CreateApp creates new app in BoltDB.

func (*AppStorage) DeleteApp

func (as *AppStorage) DeleteApp(id string) error

DeleteApp deletes app by ID.

func (*AppStorage) DisableApp

func (as *AppStorage) DisableApp(app model.AppData) error

DisableApp disables app in the storage.

func (*AppStorage) FetchApps

func (as *AppStorage) FetchApps(filterString string) ([]model.AppData, error)

FetchApps fetches apps which name satisfies provided filterString. Supports pagination.

func (*AppStorage) ImportJSON

func (as *AppStorage) ImportJSON(data []byte, cleanOldData bool) error

ImportJSON imports data from JSON.

func (*AppStorage) TestDatabaseConnection

func (as *AppStorage) TestDatabaseConnection() error

TestDatabaseConnection checks whether we can fetch the first document in the applications bucket.

func (*AppStorage) UpdateApp

func (as *AppStorage) UpdateApp(appID string, newApp model.AppData) (model.AppData, error)

UpdateApp updates app in the storage.

type ConnectionTester

type ConnectionTester struct {
	// contains filtered or unexported fields
}

func (*ConnectionTester) Connect

func (ct *ConnectionTester) Connect() error

type Error

type Error string

Error - domain level error type

func (Error) Error

func (e Error) Error() string

Error - implementation of std.Error protocol

type InviteStorage

type InviteStorage struct {
	// contains filtered or unexported fields
}

InviteStorage is a BoltDB invite storage.

func (*InviteStorage) ArchiveAllByEmail

func (is *InviteStorage) ArchiveAllByEmail(email string) error

ArchiveAllByEmail invalidates all invites by email.

func (*InviteStorage) ArchiveByID

func (is *InviteStorage) ArchiveByID(id string) error

ArchiveByID invalidates specific invite by its ID.

func (*InviteStorage) Close

func (is *InviteStorage) Close()

Close closes underlying database.

func (*InviteStorage) GetAll

func (is *InviteStorage) GetAll(withArchived bool, skip, limit int) ([]model.Invite, int, error)

GetAll returns all active invites by default. To get an invalid invites need to set withInvalid argument to true.

func (*InviteStorage) GetByEmail

func (is *InviteStorage) GetByEmail(email string) (model.Invite, error)

GetByEmail returns valid and not expired invite by email.

func (*InviteStorage) GetByID

func (is *InviteStorage) GetByID(id string) (model.Invite, error)

GetByID returns invite by its ID.

func (*InviteStorage) Save

func (is *InviteStorage) Save(email, inviteToken, role, appID, createdBy string, expiresAt time.Time) error

Save creates and saves new invite to a database.

type ManagementKeysStorage added in v2.4.4

type ManagementKeysStorage struct {
	// contains filtered or unexported fields
}

TokenStorage is a BoltDB token storage.

func (*ManagementKeysStorage) AddKey added in v2.4.5

func (*ManagementKeysStorage) ChangeScopesForKey added in v2.4.4

func (ms *ManagementKeysStorage) ChangeScopesForKey(ctx context.Context, id string, scopes []string) (model.ManagementKey, error)

func (*ManagementKeysStorage) CreateKey added in v2.4.4

func (ms *ManagementKeysStorage) CreateKey(ctx context.Context, name string, scopes []string) (model.ManagementKey, error)

func (*ManagementKeysStorage) DisableKey added in v2.4.4

func (*ManagementKeysStorage) GetKey added in v2.4.4

func (*ManagementKeysStorage) GeyAllKeys added in v2.4.4

func (ms *ManagementKeysStorage) GeyAllKeys(ctx context.Context) ([]model.ManagementKey, error)

func (*ManagementKeysStorage) ImportJSON added in v2.4.5

func (ms *ManagementKeysStorage) ImportJSON(data []byte, cleanOldData bool) error

func (*ManagementKeysStorage) RenameKey added in v2.4.4

func (ms *ManagementKeysStorage) RenameKey(ctx context.Context, id, name string) (model.ManagementKey, error)

func (*ManagementKeysStorage) UseKey added in v2.4.4

type TokenBlacklist

type TokenBlacklist struct {
	// contains filtered or unexported fields
}

TokenBlacklist is a BoltDB token blacklist.

func (*TokenBlacklist) Add

func (tb *TokenBlacklist) Add(token string) error

Add adds token in the blacklist.

func (*TokenBlacklist) Close

func (tb *TokenBlacklist) Close()

Close closes underlying database.

func (*TokenBlacklist) IsBlacklisted

func (tb *TokenBlacklist) IsBlacklisted(token string) bool

IsBlacklisted returns true if the token is blacklisted.

type TokenStorage

type TokenStorage struct {
	// contains filtered or unexported fields
}

TokenStorage is a BoltDB token storage.

func (*TokenStorage) Close

func (ts *TokenStorage) Close()

Close closes underlying database.

func (*TokenStorage) DeleteToken

func (ts *TokenStorage) DeleteToken(token string) error

DeleteToken removes token from the storage.

func (*TokenStorage) HasToken

func (ts *TokenStorage) HasToken(token string) bool

HasToken returns true if the token is present in the storage.

func (*TokenStorage) SaveToken

func (ts *TokenStorage) SaveToken(token string) error

SaveToken saves token in the storage.

type UserStorage

type UserStorage struct {
	// contains filtered or unexported fields
}

UserStorage implements user storage interface for BoltDB.

func (*UserStorage) AddNewUser

func (us *UserStorage) AddNewUser(user model.User, password string) (model.User, error)

AddNewUser adds new user to the storage.

func (*UserStorage) AddUserWithFederatedID

func (us *UserStorage) AddUserWithFederatedID(user model.User, provider string, federatedID, role string) (model.User, error)

AddUserWithFederatedID adds new user with social ID.

func (*UserStorage) AddUserWithPassword

func (us *UserStorage) AddUserWithPassword(user model.User, password, role string, isAnonymous bool) (model.User, error)

AddUserWithPassword creates new user and saves it in the database.

func (*UserStorage) AllDeviceTokens

func (us *UserStorage) AllDeviceTokens(userID string) ([]string, error)

TODO: implement get all device tokens logic

func (*UserStorage) AttachDeviceToken

func (us *UserStorage) AttachDeviceToken(id, token string) error

AttachDeviceToken does nothing here.

func (*UserStorage) CheckPassword

func (us *UserStorage) CheckPassword(id, password string) error

CheckPassword check that password is valid for user id.

func (*UserStorage) Close

func (us *UserStorage) Close()

Close closes underlying database.

func (*UserStorage) DeleteUser

func (us *UserStorage) DeleteUser(id string) error

DeleteUser deletes user by ID.

func (*UserStorage) DetachDeviceToken

func (us *UserStorage) DetachDeviceToken(token string) error

DetachDeviceToken does nothing here.

func (*UserStorage) FetchUsers

func (us *UserStorage) FetchUsers(filterString string, skip, limit int) ([]model.User, int, error)

FetchUsers fetches users which name satisfies provided filterString. Supports pagination.

func (*UserStorage) ImportJSON

func (us *UserStorage) ImportJSON(data []byte, clearOldData bool) error

ImportJSON imports data from JSON.

func (*UserStorage) RequestScopes

func (us *UserStorage) RequestScopes(userID string, scopes []string) ([]string, error)

RequestScopes returns requested scopes.

func (*UserStorage) ResetPassword

func (us *UserStorage) ResetPassword(id, password string) error

ResetPassword sets new user password.

func (*UserStorage) ResetUsername

func (us *UserStorage) ResetUsername(id, username string) error

ResetUsername sets user username.

func (*UserStorage) Scopes

func (us *UserStorage) Scopes() []string

Scopes returns supported scopes.

func (*UserStorage) UpdateLoginMetadata

func (us *UserStorage) UpdateLoginMetadata(userID string)

UpdateLoginMetadata updates user's login metadata.

func (*UserStorage) UpdateUser

func (us *UserStorage) UpdateUser(userID string, user model.User) (model.User, error)

UpdateUser updates user in BoltDB storage.

func (*UserStorage) UpdateUserBuckets

func (us *UserStorage) UpdateUserBuckets(tx *bolt.Tx, user model.User) error

update all user mappings for all available buckets username -> userID email -> userID phone -> userID []federatedIDs --->> userID

func (*UserStorage) UserByEmail

func (us *UserStorage) UserByEmail(email string) (model.User, error)

UserByEmail returns user by its email.

func (*UserStorage) UserByFederatedID

func (us *UserStorage) UserByFederatedID(provider string, id string) (model.User, error)

UserByFederatedID returns user by federated ID.

func (*UserStorage) UserByID

func (us *UserStorage) UserByID(id string) (model.User, error)

UserByID returns user by ID.

func (*UserStorage) UserByPhone

func (us *UserStorage) UserByPhone(phone string) (model.User, error)

UserByPhone fetches user by phone number.

func (*UserStorage) UserByUsername

func (us *UserStorage) UserByUsername(username string) (model.User, error)

UserByUsername returns user by name

type VerificationCodeStorage

type VerificationCodeStorage struct {
	// contains filtered or unexported fields
}

VerificationCodeStorage implements verification code storage interface.

func (*VerificationCodeStorage) Close

func (vcs *VerificationCodeStorage) Close()

Close closes underlying database.

func (*VerificationCodeStorage) CreateVerificationCode

func (vcs *VerificationCodeStorage) CreateVerificationCode(phone, code string) error

CreateVerificationCode inserts new verification code to the database.

func (*VerificationCodeStorage) IsVerificationCodeFound

func (vcs *VerificationCodeStorage) IsVerificationCodeFound(phone, code string) (bool, error)

IsVerificationCodeFound checks whether verification code can be found.

Jump to

Keyboard shortcuts

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