store

package
v0.0.0-...-94bc3c9 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package store implements the SIOT data store and processes messages. Currently data is stored in Genji and Influxdb. Direct DB access is not provided and all write data goes through NATS, thus making it easy to observe any data changes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DbSqlite

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

DbSqlite represents a SQLite data store

func NewSqliteDb

func NewSqliteDb(dbFile string, rootID string) (*DbSqlite, error)

NewSqliteDb creates a new Sqlite data store

func (*DbSqlite) Close

func (sdb *DbSqlite) Close() error

Close the db

type Meta

type Meta struct {
	ID      int    `json:"id"`
	Version int    `json:"version"`
	RootID  string `json:"rootID"`
	JWTKey  []byte `json:"jwtKey"`
}

Meta contains metadata about the database

type Params

type Params struct {
	File      string
	AuthToken string
	Server    string
	Nc        *nats.Conn
	// ID for the instance -- it is only used when initializing the store.
	// ID must be unique. If ID is not set, then a UUID is generated.
	ID string
}

Params are used to configure a store

type Store

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

Store implements the SIOT NATS api

func NewStore

func NewStore(p Params) (*Store, error)

NewStore creates a new NATS client for handling SIOT requests

func (*Store) GetAuthorizer

func (st *Store) GetAuthorizer() api.Authorizer

GetAuthorizer returns a type that can be used in JWT Auth mechanisms

func (*Store) Reset

func (st *Store) Reset() error

Reset the store by permanently wiping all data

func (*Store) Run

func (st *Store) Run() error

Run connects to NATS server and set up handlers for things we are interested in

func (*Store) StartMetrics

func (st *Store) StartMetrics(nodeID string) error

StartMetrics for various handling operations. Metrics are sent to the node ID given FIXME, this can probably move to the node package for device nodes

func (*Store) Stop

func (st *Store) Stop(_ error)

Stop the store

func (*Store) StopMetrics

func (st *Store) StopMetrics(_ error)

StopMetrics ...

func (*Store) WaitStart

func (st *Store) WaitStart(ctx context.Context) error

WaitStart waits for store to start

Jump to

Keyboard shortcuts

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