database

package
v0.0.0-...-b938454 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2024 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	METADATA_TABLE       string = "Metadata"
	TOKEN_ENTITIES_TABLE string = "TokenEntities"

	METADATA_INIT   string = fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s ( VERSION TEXT, ENTRIES INTEGER, CHECKSUM TEXT );", METADATA_TABLE)
	METADATA_ALL    string = fmt.Sprintf("SELECT * FROM %s", METADATA_TABLE)
	METADATA_INSERT        = fmt.Sprintf("INSERT INTO %s (VERSION, ENTRIES, CHECKSUM) VALUES (?, ?, ?)", METADATA_TABLE)
	METADATA_UPDATE        = fmt.Sprintf("UPDATE %s SET VERSION = ?, ENTRIES = ?, CHECKSUM = ? WHERE VERSION = ?", METADATA_TABLE)

	DB_INIT        string = fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s ( UUID TEXT PRIMARY KEY, NAME TEXT, EMAIL TEXT, ALGORITHM TEXT, FLAVOR TEXT, INTERVAL INTEGER, TYPE TEXT, KEY TEXT NOT NULL, PERIOD INTEGER, LENGTH INTEGER);", TOKEN_ENTITIES_TABLE)
	ROW_INSERT     string = fmt.Sprintf("INSERT INTO %s (UUID, NAME, EMAIL, ALGORITHM, FLAVOR, INTERVAL, TYPE, KEY, PERIOD, LENGTH) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", TOKEN_ENTITIES_TABLE)
	ROW_UPDATE     string = fmt.Sprintf("UPDATE %s SET NAME = ?, EMAIL = ?, ALGORITHM = ?, FLAVOR = ?, INTERVAL = ?, TYPE = ?, KEY = ?, PERIOD = ?, LENGTH = ? WHERE UUID = ?", TOKEN_ENTITIES_TABLE)
	ROW_DELETE     string = fmt.Sprintf("DELETE FROM %s WHERE UUID = ?", TOKEN_ENTITIES_TABLE)
	SEARCH_BY_UUID string = fmt.Sprintf("SELECT * FROM %s WHERE UUID = ?", TOKEN_ENTITIES_TABLE)
	SELECT_ALL     string = fmt.Sprintf("SELECT * FROM %s", TOKEN_ENTITIES_TABLE)
	COUNT          string = "SELECT COUNT(*) FROM %s"
)

database queries and related constants

View Source
var (
	SCHEMA_VERSION string = "1.0"
)

general constants

Functions

This section is empty.

Types

type Database

type Database interface {
	DoInit() error
	AllRows() ([]TokenEntity, error)
	SearchRow(UUID string) (TokenEntity, error)
	InsertRow(t TokenEntity) error
	UpdateRow(UUID string, t TokenEntity) error
	DeleteRow(UUID string) error
}

type DatabaseMetadataEntity

type DatabaseMetadataEntity struct {
	Version  string
	Entries  int64
	Checksum string
}

database metadata

type SqliteDatabase

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

func NewDB

func NewDB(dbPath string) (*SqliteDatabase, error)

get a new DB descriptor

func (*SqliteDatabase) AllRows

func (d *SqliteDatabase) AllRows() ([]TokenEntity, error)

return an array with all token accounts

func (*SqliteDatabase) Checksum

func (d *SqliteDatabase) Checksum() (string, error)

compute checksum of a serialized version of the token account table

func (*SqliteDatabase) CloseDB

func (d *SqliteDatabase) CloseDB()

close the database connection

func (*SqliteDatabase) Count

func (d *SqliteDatabase) Count(table string) int

count entries

func (*SqliteDatabase) DeleteRow

func (d *SqliteDatabase) DeleteRow(UUID string) error

delete a named token account

func (*SqliteDatabase) DoInit

func (d *SqliteDatabase) DoInit() error

perform database initial creation or schema migration

func (*SqliteDatabase) InsertRow

func (d *SqliteDatabase) InsertRow(t TokenEntity) error

insert a new token

func (*SqliteDatabase) IntegrityCheck

func (d *SqliteDatabase) IntegrityCheck() (bool, error)

validate integrity

func (*SqliteDatabase) ReadMetadata

func (d *SqliteDatabase) ReadMetadata() (string, int, string, error)

read metadata

func (*SqliteDatabase) SearchRow

func (d *SqliteDatabase) SearchRow(uuid string) (TokenEntity, error)

search for a named account by UUID

func (*SqliteDatabase) TokenCount

func (d *SqliteDatabase) TokenCount() int

func (*SqliteDatabase) UpdateChecksum

func (d *SqliteDatabase) UpdateChecksum() error

func (*SqliteDatabase) UpdateRow

func (d *SqliteDatabase) UpdateRow(uuid string, t TokenEntity) error

update a named token account

type TokenEntity

type TokenEntity struct {
	UUID      string `json:"uuid"`
	Name      string `json:"name"`
	Email     string `json:"email"`
	Algorithm string `json:"hash"`
	Flavor    string `json:"flavor"`
	Interval  int64  `json:"interval"`
	Type      string `json:"type"`
	Key       string `json:"key"`
	Period    int64  `json:"period"`
	Length    int64  `json:"token_length"`
	Token     string
}

Single Token Generation Account Entity

Jump to

Keyboard shortcuts

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