Documentation ¶
Overview ¶
Package lite implements SQLite backend used for local persistent caches in proxies and nodes and for standalone auth service deployments.
Index ¶
- Constants
- func GetName() string
- type Config
- type LiteBackend
- func (l *LiteBackend) Clock() clockwork.Clock
- func (l *LiteBackend) Close() error
- func (l *LiteBackend) CloseWatchers()
- func (l *LiteBackend) CompareAndSwap(ctx context.Context, expected backend.Item, replaceWith backend.Item) (*backend.Lease, error)
- func (l *LiteBackend) Create(ctx context.Context, i backend.Item) (*backend.Lease, error)
- func (l *LiteBackend) Delete(ctx context.Context, key []byte) error
- func (l *LiteBackend) DeleteRange(ctx context.Context, startKey, endKey []byte) error
- func (l *LiteBackend) Get(ctx context.Context, key []byte) (*backend.Item, error)
- func (l *LiteBackend) GetRange(ctx context.Context, startKey []byte, endKey []byte, limit int) (*backend.GetResult, error)
- func (l *LiteBackend) Import(ctx context.Context, items []backend.Item) error
- func (l *LiteBackend) Imported(ctx context.Context) (imported bool, err error)
- func (l *LiteBackend) KeepAlive(ctx context.Context, lease backend.Lease, expires time.Time) error
- func (l *LiteBackend) NewWatcher(ctx context.Context, watch backend.Watch) (backend.Watcher, error)
- func (l *LiteBackend) Put(ctx context.Context, i backend.Item) (*backend.Lease, error)
- func (l *LiteBackend) PutRange(ctx context.Context, items []backend.Item) error
- func (l *LiteBackend) SetClock(clock clockwork.Clock)
- func (l *LiteBackend) Update(ctx context.Context, i backend.Item) (*backend.Lease, error)
- type NullTime
Constants ¶
const (
// BackendName is the name of this backend
BackendName = "sqlite"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { // Path is a path to the database directory Path string `json:"path,omitempty"` // BufferSize is a default buffer size // used to pull events BufferSize int `json:"buffer_size,omitempty"` // PollStreamPeriod is a polling period for event stream PollStreamPeriod time.Duration `json:"poll_stream_period,omitempty"` // EventsOff turns events off EventsOff bool `json:"events_off,omitempty"` // Clock allows to override clock used in the backend Clock clockwork.Clock `json:"-"` // Sync sets synchronous pragrma Sync string `json:"sync,omitempty"` // BusyTimeout sets busy timeout in milliseconds BusyTimeout int `json:"busy_timeout,omitempty"` // Memory turns memory mode of the database Memory bool `json:"memory"` // MemoryName sets the name of the database, // set to "sqlite.db" by default MemoryName string `json:"memory_name"` // Mirror turns on mirror mode for the backend, // which will use record IDs for Put and PutRange passed from // the resources, not generate a new one Mirror bool `json:"mirror"` }
Config structure represents configuration section
func (*Config) CheckAndSetDefaults ¶
CheckAndSetDefaults is a helper returns an error if the supplied configuration is not enough to connect to sqlite
type LiteBackend ¶
LiteBackend uses SQLite to implement storage interfaces
func NewWithConfig ¶
func NewWithConfig(ctx context.Context, cfg Config) (*LiteBackend, error)
NewWithConfig returns a new instance of lite backend using configuration struct as a parameter
func (*LiteBackend) Clock ¶
func (l *LiteBackend) Clock() clockwork.Clock
Clock returns clock used by the backend
func (*LiteBackend) Close ¶
func (l *LiteBackend) Close() error
Close closes all associated resources
func (*LiteBackend) CloseWatchers ¶
func (l *LiteBackend) CloseWatchers()
CloseWatchers closes all the watchers without closing the backend
func (*LiteBackend) CompareAndSwap ¶
func (l *LiteBackend) CompareAndSwap(ctx context.Context, expected backend.Item, replaceWith backend.Item) (*backend.Lease, error)
CompareAndSwap compares item with existing item and replaces is with replaceWith item
func (*LiteBackend) Delete ¶
func (l *LiteBackend) Delete(ctx context.Context, key []byte) error
Delete deletes item by key, returns NotFound error if item does not exist
func (*LiteBackend) DeleteRange ¶
func (l *LiteBackend) DeleteRange(ctx context.Context, startKey, endKey []byte) error
DeleteRange deletes range of items with keys between startKey and endKey Note that elements deleted by range do not produce any events
func (*LiteBackend) GetRange ¶
func (l *LiteBackend) GetRange(ctx context.Context, startKey []byte, endKey []byte, limit int) (*backend.GetResult, error)
GetRange returns query range
func (*LiteBackend) Import ¶
Import imports elements, makes sure elements are imported only once returns trace.AlreadyExists if elements have been imported
func (*LiteBackend) Imported ¶
func (l *LiteBackend) Imported(ctx context.Context) (imported bool, err error)
Imported returns true if backend already imported data from another backend
func (*LiteBackend) NewWatcher ¶
NewWatcher returns a new event watcher
func (*LiteBackend) Put ¶
Put puts value into backend (creates if it does not exists, updates it otherwise)
func (*LiteBackend) PutRange ¶
PutRange puts range of items into backend (creates if items doe not exists, updates it otherwise)
func (*LiteBackend) SetClock ¶
func (l *LiteBackend) SetClock(clock clockwork.Clock)
SetClock sets internal backend clock