db

package
v0.0.0-...-b26cdc7 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package db provides database access layer and repository implementations.

Index

Constants

View Source
const (
	UserRoleAdmin    = "admin"
	UserRoleUser     = "user"
	UserRoleReadonly = "readonly"
)

User role constants

Variables

This section is empty.

Functions

func CloseDB

func CloseDB() error

CloseDB closes the global database connection

func GetDB

func GetDB() *sql.DB

GetDB returns the global database connection

func InitDB

func InitDB(config Config) error

InitDB initializes the global database connection

Types

type Activity

type Activity struct {
	ID         int64
	UserID     *int64
	UserEmail  *string
	Action     string
	EntityType string
	EntityID   *int64
	Details    *string
	IPAddress  *string
	UserAgent  *string
	CreatedAt  time.Time
}

Activity represents an activity log entry in the database.

type ActivityRepository

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

ActivityRepository handles database operations for activity logs.

func NewActivityRepository

func NewActivityRepository(db *sql.DB) *ActivityRepository

NewActivityRepository creates a new activity repository.

func (*ActivityRepository) Count

func (r *ActivityRepository) Count() (int64, error)

Count returns the total number of activity logs.

func (*ActivityRepository) CountByUser

func (r *ActivityRepository) CountByUser(userID int64) (int64, error)

CountByUser returns the total number of activity logs for a specific user.

func (*ActivityRepository) Create

func (r *ActivityRepository) Create(activity *Activity) error

Create inserts a new activity log entry into the database.

func (*ActivityRepository) DeleteOlderThan

func (r *ActivityRepository) DeleteOlderThan(date time.Time) (int64, error)

DeleteOlderThan removes activity logs older than a specific date (for cleanup).

func (*ActivityRepository) GetByID

func (r *ActivityRepository) GetByID(id int64) (*Activity, error)

GetByID retrieves an activity log entry by ID.

func (*ActivityRepository) List

func (r *ActivityRepository) List(limit, offset int) ([]*Activity, error)

List retrieves all activity logs with pagination.

func (*ActivityRepository) ListByAction

func (r *ActivityRepository) ListByAction(action string, limit, offset int) ([]*Activity, error)

ListByAction retrieves all activity logs for a specific action.

func (*ActivityRepository) ListByDateRange

func (r *ActivityRepository) ListByDateRange(startDate, endDate time.Time, limit, offset int) ([]*Activity, error)

ListByDateRange retrieves activity logs within a date range.

func (*ActivityRepository) ListByEntity

func (r *ActivityRepository) ListByEntity(entityType string, entityID int64, limit, offset int) ([]*Activity, error)

ListByEntity retrieves all activity logs for a specific entity.

func (*ActivityRepository) ListByUser

func (r *ActivityRepository) ListByUser(userID int64, limit, offset int) ([]*Activity, error)

ListByUser retrieves all activity logs for a specific user.

type Config

type Config struct {
	Driver          string
	Host            string
	Port            int
	Username        string
	Password        string
	Database        string
	MaxOpenConns    int
	MaxIdleConns    int
	ConnMaxLifetime int
	DataSource      string
}

Config holds database configuration

type Connection

type Connection struct {
	DB     *sql.DB
	Driver string
}

Connection represents a database connection

func NewConnection

func NewConnection(config Config) (*Connection, error)

NewConnection creates a new database connection based on the driver

func (*Connection) Close

func (c *Connection) Close() error

Close closes the database connection

func (*Connection) Ping

func (c *Connection) Ping() error

Ping checks if the database connection is alive

type Gateway

type Gateway struct {
	ID   int64
	Name string
	// TODO: Add fields for gateway
	CreatedAt time.Time
	UpdatedAt time.Time
}

Gateway represents a gateway in the database.

type GatewayMeta

type GatewayMeta struct {
	ID        int64
	Key       string
	Value     string
	GatewayID int64
	CreatedAt time.Time
	UpdatedAt time.Time
}

GatewayMeta represents metadata associated with a gateway.

type GatewayMetaRepository

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

GatewayMetaRepository handles database operations for gateway metadata.

func NewGatewayMetaRepository

func NewGatewayMetaRepository(db *sql.DB) *GatewayMetaRepository

NewGatewayMetaRepository creates a new gateway meta repository.

func (*GatewayMetaRepository) Create

func (r *GatewayMetaRepository) Create(gatewayID int64, key, value string) error

Create inserts new metadata for a gateway.

func (*GatewayMetaRepository) Delete

func (r *GatewayMetaRepository) Delete(gatewayID int64, key string) error

Delete removes metadata for a gateway.

func (*GatewayMetaRepository) Get

func (r *GatewayMetaRepository) Get(gatewayID int64, key string) (*GatewayMeta, error)

Get retrieves metadata for a gateway by key.

func (*GatewayMetaRepository) ListByGateway

func (r *GatewayMetaRepository) ListByGateway(gatewayID int64) ([]*GatewayMeta, error)

ListByGateway retrieves all metadata for a gateway.

func (*GatewayMetaRepository) Update

func (r *GatewayMetaRepository) Update(gatewayID int64, key, value string) error

Update updates metadata for a gateway.

func (*GatewayMetaRepository) Upsert

func (r *GatewayMetaRepository) Upsert(gatewayID int64, key, value string) error

Upsert inserts or updates metadata for a gateway.

type GatewayRepository

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

GatewayRepository handles database operations for gateways.

func NewGatewayRepository

func NewGatewayRepository(db *sql.DB) *GatewayRepository

NewGatewayRepository creates a new gateway repository.

func (*GatewayRepository) Count

func (r *GatewayRepository) Count() (int64, error)

Count returns the total number of gateways.

type Option

type Option struct {
	ID        int64
	Key       string
	Value     string
	CreatedAt time.Time
	UpdatedAt time.Time
}

Option represents a key-value option in the database.

type OptionRepository

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

OptionRepository handles database operations for options.

func NewOptionRepository

func NewOptionRepository(db *sql.DB) *OptionRepository

NewOptionRepository creates a new option repository.

func (*OptionRepository) Create

func (r *OptionRepository) Create(key, value string) error

Create inserts a new option into the database.

func (*OptionRepository) Delete

func (r *OptionRepository) Delete(key string) error

Delete removes an option from the database.

func (*OptionRepository) Get

func (r *OptionRepository) Get(key string) (*Option, error)

Get retrieves an option by key.

func (*OptionRepository) List

func (r *OptionRepository) List() ([]*Option, error)

List retrieves all options from the database.

func (*OptionRepository) Update

func (r *OptionRepository) Update(key, value string) error

Update updates an option value.

type Prompt

type Prompt struct {
	ID   int64
	Name string
	// TODO: Add fields for prompt
	CreatedAt time.Time
	UpdatedAt time.Time
}

Prompt represents a prompt discovered from MCP servers.

type PromptMeta

type PromptMeta struct {
	ID        int64
	Key       string
	Value     string
	PromptID  int64
	CreatedAt time.Time
	UpdatedAt time.Time
}

PromptMeta represents metadata associated with a prompt.

type PromptMetaRepository

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

PromptMetaRepository handles database operations for prompt metadata.

func NewPromptMetaRepository

func NewPromptMetaRepository(db *sql.DB) *PromptMetaRepository

NewPromptMetaRepository creates a new prompt meta repository.

func (*PromptMetaRepository) Create

func (r *PromptMetaRepository) Create(promptID int64, key, value string) error

Create inserts new metadata for a prompt.

func (*PromptMetaRepository) Delete

func (r *PromptMetaRepository) Delete(promptID int64, key string) error

Delete removes metadata for a prompt.

func (*PromptMetaRepository) Get

func (r *PromptMetaRepository) Get(promptID int64, key string) (*PromptMeta, error)

Get retrieves metadata for a prompt by key.

func (*PromptMetaRepository) ListByPrompt

func (r *PromptMetaRepository) ListByPrompt(promptID int64) ([]*PromptMeta, error)

ListByPrompt retrieves all metadata for a prompt.

func (*PromptMetaRepository) Update

func (r *PromptMetaRepository) Update(promptID int64, key, value string) error

Update updates metadata for a prompt.

func (*PromptMetaRepository) Upsert

func (r *PromptMetaRepository) Upsert(promptID int64, key, value string) error

Upsert inserts or updates metadata for a prompt.

type PromptRepository

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

PromptRepository handles database operations for prompts.

func NewPromptRepository

func NewPromptRepository(db *sql.DB) *PromptRepository

NewPromptRepository creates a new prompt repository.

type Resource

type Resource struct {
	ID   int64
	Name string
	// TODO: Add fields for resource
	CreatedAt time.Time
	UpdatedAt time.Time
}

Resource represents a resource discovered from MCP servers.

type ResourceMeta

type ResourceMeta struct {
	ID         int64
	Key        string
	Value      string
	ResourceID int64
	CreatedAt  time.Time
	UpdatedAt  time.Time
}

ResourceMeta represents metadata associated with a resource.

type ResourceMetaRepository

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

ResourceMetaRepository handles database operations for resource metadata.

func NewResourceMetaRepository

func NewResourceMetaRepository(db *sql.DB) *ResourceMetaRepository

NewResourceMetaRepository creates a new resource meta repository.

func (*ResourceMetaRepository) Create

func (r *ResourceMetaRepository) Create(resourceID int64, key, value string) error

Create inserts new metadata for a resource.

func (*ResourceMetaRepository) Delete

func (r *ResourceMetaRepository) Delete(resourceID int64, key string) error

Delete removes metadata for a resource.

func (*ResourceMetaRepository) Get

func (r *ResourceMetaRepository) Get(resourceID int64, key string) (*ResourceMeta, error)

Get retrieves metadata for a resource by key.

func (*ResourceMetaRepository) ListByResource

func (r *ResourceMetaRepository) ListByResource(resourceID int64) ([]*ResourceMeta, error)

ListByResource retrieves all metadata for a resource.

func (*ResourceMetaRepository) Update

func (r *ResourceMetaRepository) Update(resourceID int64, key, value string) error

Update updates metadata for a resource.

func (*ResourceMetaRepository) Upsert

func (r *ResourceMetaRepository) Upsert(resourceID int64, key, value string) error

Upsert inserts or updates metadata for a resource.

type ResourceRepository

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

ResourceRepository handles database operations for resources.

func NewResourceRepository

func NewResourceRepository(db *sql.DB) *ResourceRepository

NewResourceRepository creates a new resource repository.

type Server

type Server struct {
	ID   int64
	Name string
	// TODO: Add fields for server
	CreatedAt time.Time
	UpdatedAt time.Time
}

Server represents a virtual MCP server in the database.

type ServerMeta

type ServerMeta struct {
	ID        int64
	Key       string
	Value     string
	ServerID  int64
	CreatedAt time.Time
	UpdatedAt time.Time
}

ServerMeta represents metadata associated with a server.

type ServerMetaRepository

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

ServerMetaRepository handles database operations for server metadata.

func NewServerMetaRepository

func NewServerMetaRepository(db *sql.DB) *ServerMetaRepository

NewServerMetaRepository creates a new server meta repository.

func (*ServerMetaRepository) Create

func (r *ServerMetaRepository) Create(serverID int64, key, value string) error

Create inserts new metadata for a server.

func (*ServerMetaRepository) Delete

func (r *ServerMetaRepository) Delete(serverID int64, key string) error

Delete removes metadata for a server.

func (*ServerMetaRepository) Get

func (r *ServerMetaRepository) Get(serverID int64, key string) (*ServerMeta, error)

Get retrieves metadata for a server by key.

func (*ServerMetaRepository) ListByServer

func (r *ServerMetaRepository) ListByServer(serverID int64) ([]*ServerMeta, error)

ListByServer retrieves all metadata for a server.

func (*ServerMetaRepository) Update

func (r *ServerMetaRepository) Update(serverID int64, key, value string) error

Update updates metadata for a server.

func (*ServerMetaRepository) Upsert

func (r *ServerMetaRepository) Upsert(serverID int64, key, value string) error

Upsert inserts or updates metadata for a server.

type ServerPrompt

type ServerPrompt struct {
	ServerID  int64
	PromptID  int64
	CreatedAt time.Time
}

ServerPrompt represents a many-to-many relationship between servers and prompts.

type ServerPromptRepository

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

ServerPromptRepository handles the server-prompt relationship operations.

func NewServerPromptRepository

func NewServerPromptRepository(db *sql.DB) *ServerPromptRepository

NewServerPromptRepository creates a new server-prompt repository.

func (*ServerPromptRepository) AddPrompt

func (r *ServerPromptRepository) AddPrompt(serverID, promptID int64) error

AddPrompt associates a prompt with a server.

func (*ServerPromptRepository) GetPromptsByServer

func (r *ServerPromptRepository) GetPromptsByServer(serverID int64) ([]int64, error)

GetPromptsByServer retrieves all prompt IDs associated with a server.

func (*ServerPromptRepository) GetServersByPrompt

func (r *ServerPromptRepository) GetServersByPrompt(promptID int64) ([]int64, error)

GetServersByPrompt retrieves all server IDs that use a specific prompt.

func (*ServerPromptRepository) RemoveAllPromptsFromServer

func (r *ServerPromptRepository) RemoveAllPromptsFromServer(serverID int64) error

RemoveAllPromptsFromServer removes all prompt associations from a server.

func (*ServerPromptRepository) RemovePrompt

func (r *ServerPromptRepository) RemovePrompt(serverID, promptID int64) error

RemovePrompt removes a prompt association from a server.

type ServerRepository

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

ServerRepository handles database operations for servers.

func NewServerRepository

func NewServerRepository(db *sql.DB) *ServerRepository

NewServerRepository creates a new server repository.

type ServerResource

type ServerResource struct {
	ServerID   int64
	ResourceID int64
	CreatedAt  time.Time
}

ServerResource represents a many-to-many relationship between servers and resources.

type ServerResourceRepository

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

ServerResourceRepository handles the server-resource relationship operations.

func NewServerResourceRepository

func NewServerResourceRepository(db *sql.DB) *ServerResourceRepository

NewServerResourceRepository creates a new server-resource repository.

func (*ServerResourceRepository) AddResource

func (r *ServerResourceRepository) AddResource(serverID, resourceID int64) error

AddResource associates a resource with a server.

func (*ServerResourceRepository) GetResourcesByServer

func (r *ServerResourceRepository) GetResourcesByServer(serverID int64) ([]int64, error)

GetResourcesByServer retrieves all resource IDs associated with a server.

func (*ServerResourceRepository) GetServersByResource

func (r *ServerResourceRepository) GetServersByResource(resourceID int64) ([]int64, error)

GetServersByResource retrieves all server IDs that use a specific resource.

func (*ServerResourceRepository) RemoveAllResourcesFromServer

func (r *ServerResourceRepository) RemoveAllResourcesFromServer(serverID int64) error

RemoveAllResourcesFromServer removes all resource associations from a server.

func (*ServerResourceRepository) RemoveResource

func (r *ServerResourceRepository) RemoveResource(serverID, resourceID int64) error

RemoveResource removes a resource association from a server.

type ServerTool

type ServerTool struct {
	ServerID  int64
	ToolID    int64
	CreatedAt time.Time
}

ServerTool represents a many-to-many relationship between servers and tools.

type ServerToolRepository

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

ServerToolRepository handles the server-tool relationship operations.

func NewServerToolRepository

func NewServerToolRepository(db *sql.DB) *ServerToolRepository

NewServerToolRepository creates a new server-tool repository.

func (*ServerToolRepository) AddTool

func (r *ServerToolRepository) AddTool(serverID, toolID int64) error

AddTool associates a tool with a server.

func (*ServerToolRepository) GetServersByTool

func (r *ServerToolRepository) GetServersByTool(toolID int64) ([]int64, error)

GetServersByTool retrieves all server IDs that use a specific tool.

func (*ServerToolRepository) GetToolsByServer

func (r *ServerToolRepository) GetToolsByServer(serverID int64) ([]int64, error)

GetToolsByServer retrieves all tool IDs associated with a server.

func (*ServerToolRepository) RemoveAllToolsFromServer

func (r *ServerToolRepository) RemoveAllToolsFromServer(serverID int64) error

RemoveAllToolsFromServer removes all tool associations from a server.

func (*ServerToolRepository) RemoveTool

func (r *ServerToolRepository) RemoveTool(serverID, toolID int64) error

RemoveTool removes a tool association from a server.

type Session

type Session struct {
	ID        int64
	Token     string
	UserID    int64
	IPAddress *string
	UserAgent *string
	ExpiresAt time.Time
	CreatedAt time.Time
	UpdatedAt time.Time
}

Session represents a user session in the database.

type SessionRepository

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

SessionRepository handles database operations for sessions.

func NewSessionRepository

func NewSessionRepository(db *sql.DB) *SessionRepository

NewSessionRepository creates a new session repository.

func (*SessionRepository) Count

func (r *SessionRepository) Count() (int64, error)

Count returns the total number of active (non-expired) sessions.

func (*SessionRepository) CountByUserID

func (r *SessionRepository) CountByUserID(userID int64) (int64, error)

CountByUserID returns the number of active sessions for a user.

func (*SessionRepository) Create

func (r *SessionRepository) Create(session *Session) error

Create inserts a new session into the database.

func (*SessionRepository) Delete

func (r *SessionRepository) Delete(id int64) error

Delete removes a session from the database.

func (*SessionRepository) DeleteByToken

func (r *SessionRepository) DeleteByToken(token string) error

DeleteByToken removes a session by token.

func (*SessionRepository) DeleteByUserID

func (r *SessionRepository) DeleteByUserID(userID int64) error

DeleteByUserID removes all sessions for a user.

func (*SessionRepository) DeleteExpired

func (r *SessionRepository) DeleteExpired() (int64, error)

DeleteExpired removes all expired sessions.

func (*SessionRepository) GetByID

func (r *SessionRepository) GetByID(id int64) (*Session, error)

GetByID retrieves a session by ID.

func (*SessionRepository) GetByToken

func (r *SessionRepository) GetByToken(token string) (*Session, error)

GetByToken retrieves a session by token.

func (*SessionRepository) GetByUserID

func (r *SessionRepository) GetByUserID(userID int64) ([]*Session, error)

GetByUserID retrieves all sessions for a user.

func (*SessionRepository) IsValid

func (r *SessionRepository) IsValid(token string) (bool, error)

IsValid checks if a session exists and is not expired.

func (*SessionRepository) UpdateExpiration

func (r *SessionRepository) UpdateExpiration(id int64, expiresAt time.Time) error

UpdateExpiration updates the expiration time of a session.

type Tool

type Tool struct {
	ID   int64
	Name string
	// TODO: Add fields for tool
	CreatedAt time.Time
	UpdatedAt time.Time
}

Tool represents a tool discovered from MCP servers.

type ToolMeta

type ToolMeta struct {
	ID        int64
	Key       string
	Value     string
	ToolID    int64
	CreatedAt time.Time
	UpdatedAt time.Time
}

ToolMeta represents metadata associated with a tool.

type ToolMetaRepository

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

ToolMetaRepository handles database operations for tool metadata.

func NewToolMetaRepository

func NewToolMetaRepository(db *sql.DB) *ToolMetaRepository

NewToolMetaRepository creates a new tool meta repository.

func (*ToolMetaRepository) Create

func (r *ToolMetaRepository) Create(toolID int64, key, value string) error

Create inserts new metadata for a tool.

func (*ToolMetaRepository) Delete

func (r *ToolMetaRepository) Delete(toolID int64, key string) error

Delete removes metadata for a tool.

func (*ToolMetaRepository) Get

func (r *ToolMetaRepository) Get(toolID int64, key string) (*ToolMeta, error)

Get retrieves metadata for a tool by key.

func (*ToolMetaRepository) ListByTool

func (r *ToolMetaRepository) ListByTool(toolID int64) ([]*ToolMeta, error)

ListByTool retrieves all metadata for a tool.

func (*ToolMetaRepository) Update

func (r *ToolMetaRepository) Update(toolID int64, key, value string) error

Update updates metadata for a tool.

func (*ToolMetaRepository) Upsert

func (r *ToolMetaRepository) Upsert(toolID int64, key, value string) error

Upsert inserts or updates metadata for a tool.

type ToolRepository

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

ToolRepository handles database operations for tools.

func NewToolRepository

func NewToolRepository(db *sql.DB) *ToolRepository

NewToolRepository creates a new tool repository.

type User

type User struct {
	ID          int64
	Email       string
	Password    string
	Role        string
	APIKey      string
	IsActive    bool
	LastLoginAt time.Time
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

User represents a user in the database.

type UserMeta

type UserMeta struct {
	ID        int64
	Key       string
	Value     string
	UserID    int64
	CreatedAt time.Time
	UpdatedAt time.Time
}

UserMeta represents metadata associated with a user.

type UserMetaRepository

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

UserMetaRepository handles database operations for user metadata.

func NewUserMetaRepository

func NewUserMetaRepository(db *sql.DB) *UserMetaRepository

NewUserMetaRepository creates a new user meta repository.

func (*UserMetaRepository) Create

func (r *UserMetaRepository) Create(userID int64, key, value string) error

Create inserts new metadata for a user.

func (*UserMetaRepository) Delete

func (r *UserMetaRepository) Delete(userID int64, key string) error

Delete removes metadata for a user.

func (*UserMetaRepository) Get

func (r *UserMetaRepository) Get(userID int64, key string) (*UserMeta, error)

Get retrieves metadata for a user by key.

func (*UserMetaRepository) ListByUser

func (r *UserMetaRepository) ListByUser(userID int64) ([]*UserMeta, error)

ListByUser retrieves all metadata for a user.

func (*UserMetaRepository) Update

func (r *UserMetaRepository) Update(userID int64, key, value string) error

Update updates metadata for a user.

func (*UserMetaRepository) Upsert

func (r *UserMetaRepository) Upsert(userID int64, key, value string) error

Upsert inserts or updates metadata for a user.

type UserRepository

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

UserRepository handles database operations for users.

func NewUserRepository

func NewUserRepository(db *sql.DB) *UserRepository

NewUserRepository creates a new user repository.

func (*UserRepository) Count

func (r *UserRepository) Count() (int64, error)

Count returns the total number of users.

func (*UserRepository) Create

func (r *UserRepository) Create(user *User) error

Create inserts a new user into the database.

func (*UserRepository) Delete

func (r *UserRepository) Delete(id int64) error

Delete removes a user from the database.

func (*UserRepository) GetByAPIKey

func (r *UserRepository) GetByAPIKey(apiKey string) (*User, error)

GetByAPIKey retrieves a user by API key.

func (*UserRepository) GetByEmail

func (r *UserRepository) GetByEmail(email string) (*User, error)

GetByEmail retrieves a user by email.

func (*UserRepository) GetByID

func (r *UserRepository) GetByID(id int64) (*User, error)

GetByID retrieves a user by ID.

func (*UserRepository) List

func (r *UserRepository) List(limit, offset int) ([]*User, error)

List retrieves all users with pagination.

func (*UserRepository) Update

func (r *UserRepository) Update(user *User) error

Update updates a user's information.

func (*UserRepository) UpdateLastLogin

func (r *UserRepository) UpdateLastLogin(id int64) error

UpdateLastLogin updates the user's last login timestamp.

Jump to

Keyboard shortcuts

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