database

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 31, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Closeable added in v1.4.0

type Closeable interface {
	Close() error
}

Closeable is an interface for connections that can be closed

type Connection

type Connection struct {
	TenantID     string
	DBConn       interfaces.ProjectDBInterface
	LastAccessed time.Time
	IsActive     bool
}

Connection represents a database connection with metadata

type ConnectionConfig

type ConnectionConfig struct {
	TenantID    string
	Driver      string
	ConnString  string
	MaxIdleConn int
	MaxOpenConn int
	MaxLifetime time.Duration
}

ConnectionConfig holds the database connection configuration for a tenant

type ConnectionHealthStatus added in v1.4.0

type ConnectionHealthStatus struct {
	HealthLevel       HealthLevel
	ActiveConnections int
	MaxConnections    int
	CacheItems        int
	UsagePercent      float64
	CacheHits         int64
	CacheMisses       int64
	Evictions         int64
	CloseErrors       int64
	LastCheck         time.Time
	Message           string
}

ConnectionHealthStatus represents the health status of the connection pool

type ConnectionManager

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

ConnectionManager manages database connections for multiple tenants

func NewConnectionManager

func NewConnectionManager(cfg *models.Config, maxConns int, systemDB interfaces.ApitoSystemDB) *ConnectionManager

NewConnectionManager creates a new connection manager

func (*ConnectionManager) AddDriverCredentials

func (cm *ConnectionManager) AddDriverCredentials(ctx context.Context, config *models.DriverCredentials)

AddDriverCredentials adds a new connection configuration for a tenant

func (*ConnectionManager) CloseAll added in v1.4.0

func (cm *ConnectionManager) CloseAll()

CloseAll closes all active connections - call this on graceful shutdown

func (*ConnectionManager) GetConnection

func (cm *ConnectionManager) GetConnection(ctx context.Context, tenantID string) (*Connection, error)

GetConnection returns a database connection for the given tenant

func (*ConnectionManager) GetDetailedStats added in v1.4.0

func (cm *ConnectionManager) GetDetailedStats() map[string]interface{}

GetDetailedStats returns detailed statistics including cache state

func (*ConnectionManager) GetMaxConnections added in v1.4.0

func (cm *ConnectionManager) GetMaxConnections() int

GetMaxConnections returns the maximum number of connections allowed

func (*ConnectionManager) GetProjectDependedSettings

func (cm *ConnectionManager) GetProjectDependedSettings() ProjectDependedSettings

GetProjectDependedSettings returns project dependent settings

func (*ConnectionManager) GetStats

func (cm *ConnectionManager) GetStats() ConnectionStats

GetStats returns current connection statistics

func (*ConnectionManager) GetUsagePercent added in v1.4.0

func (cm *ConnectionManager) GetUsagePercent() float64

GetUsagePercent returns the current connection pool usage percentage

func (*ConnectionManager) IsHealthy added in v1.4.0

func (cm *ConnectionManager) IsHealthy() bool

IsHealthy returns true if the connection pool is under 90% capacity

func (*ConnectionManager) RemoveConnection added in v1.4.0

func (cm *ConnectionManager) RemoveConnection(tenantID string)

RemoveConnection explicitly removes a connection for a tenant

func (*ConnectionManager) SetProjectDefaultMediaPlugin

func (cm *ConnectionManager) SetProjectDefaultMediaPlugin(defaultStorageProviderId string)

SetProjectDefaultMediaPlugin sets project dependent settings

func (*ConnectionManager) SetProjectLogicExecutionProvider

func (cm *ConnectionManager) SetProjectLogicExecutionProvider(activatedLogicExecutionProvidersID string)

SetProjectLogicExecutionProvider sets project dependent settings

type ConnectionMonitor added in v1.4.0

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

ConnectionMonitor handles health monitoring for the connection manager

func NewConnectionMonitor added in v1.4.0

func NewConnectionMonitor(cm *ConnectionManager) *ConnectionMonitor

NewConnectionMonitor creates a new connection monitor

func (*ConnectionMonitor) ForceHealthCheck added in v1.4.0

func (m *ConnectionMonitor) ForceHealthCheck() ConnectionHealthStatus

ForceHealthCheck forces an immediate health check (useful for API endpoints)

func (*ConnectionMonitor) GetHealthLevel added in v1.4.0

func (m *ConnectionMonitor) GetHealthLevel() HealthLevel

GetHealthLevel returns the current health level

func (*ConnectionMonitor) GetHealthStatus added in v1.4.0

func (m *ConnectionMonitor) GetHealthStatus() ConnectionHealthStatus

GetHealthStatus returns the current health status

func (*ConnectionMonitor) IsHealthy added in v1.4.0

func (m *ConnectionMonitor) IsHealthy() bool

IsHealthy returns true if the connection pool is healthy (under 90% capacity)

func (*ConnectionMonitor) StartMonitoring added in v1.4.0

func (m *ConnectionMonitor) StartMonitoring(ctx context.Context)

StartMonitoring begins the connection health monitoring process

func (*ConnectionMonitor) StopMonitoring added in v1.4.0

func (m *ConnectionMonitor) StopMonitoring()

StopMonitoring stops the connection health monitoring

type ConnectionStats

type ConnectionStats struct {
	ActiveConnections int
	CacheHits         int64
	CacheMisses       int64
	Evictions         int64
	CloseErrors       int64
}

type HealthLevel added in v1.4.0

type HealthLevel string

HealthLevel represents the health level of the connection pool

const (
	HealthLevelHealthy  HealthLevel = "HEALTHY"
	HealthLevelWarning  HealthLevel = "WARNING"
	HealthLevelCritical HealthLevel = "CRITICAL"
)

type ProjectDependedSettings

type ProjectDependedSettings struct {
	ActivatedLogicExecutionProvidersID []string
	DefaultStorageProviderId           string
}

Directories

Path Synopsis
memory
Package memoryCache provides an in-memory cache driver with TTL support
Package memoryCache provides an in-memory cache driver with TTL support
kv
driver/bbolt
Package bbolt provides a BBolt database driver implementation for Apito project operations.
Package bbolt provides a BBolt database driver implementation for Apito project operations.
driver/bbolt
Package bbolt provides a BBolt database driver implementation for the Apito system.
Package bbolt provides a BBolt database driver implementation for the Apito system.

Jump to

Keyboard shortcuts

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