database

package
v0.0.0-...-76ce5b8 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Driver string
	DSN    string
}

Config holds database configuration

type DB

type DB struct {
	*sql.DB
	// contains filtered or unexported fields
}

DB wraps the database connection

func New

func New(cfg Config) (*DB, error)

New creates a new database connection

func (*DB) AddMachineToGroup

func (db *DB) AddMachineToGroup(groupID, machineID string) error

AddMachineToGroup adds a machine to a group

func (*DB) CreateBuild

func (db *DB) CreateBuild(machineID, config string) (*models.BuildRequest, error)

CreateBuild creates a new build request

func (*DB) CreateGroup

func (db *DB) CreateGroup(name, description string, tags []string) (*models.MachineGroup, error)

CreateGroup creates a new machine group

func (*DB) CreateImageTest

func (db *DB) CreateImageTest(test *models.ImageTest) error

CreateImageTest creates a new image test record

func (*DB) CreateMachine

func (db *DB) CreateMachine(req models.EnrollmentRequest) (*models.Machine, error)

CreateMachine creates a new machine record

func (*DB) CreateMachineEvent

func (db *DB) CreateMachineEvent(event *models.MachineEvent) error

CreateMachineEvent creates a new machine event

func (*DB) CreateMachineMetrics

func (db *DB) CreateMachineMetrics(metrics *models.MachineMetrics) error

CreateMachineMetrics creates a new metrics record

func (*DB) CreatePowerOperation

func (db *DB) CreatePowerOperation(op *models.PowerOperation) error

CreatePowerOperation creates a new power operation record

func (*DB) CreateTemplate

func (db *DB) CreateTemplate(template *models.MachineTemplate) error

CreateTemplate creates a new machine template

func (*DB) CreateUser

func (db *DB) CreateUser(username, email, passwordHash string, role models.UserRole) (*models.User, error)

CreateUser creates a new user

func (*DB) CreateWebhook

func (db *DB) CreateWebhook(webhook *models.Webhook) error

CreateWebhook creates a new webhook

func (*DB) CreateWebhookDelivery

func (db *DB) CreateWebhookDelivery(delivery *models.WebhookDelivery) error

CreateWebhookDelivery creates a new webhook delivery record

func (*DB) DeleteGroup

func (db *DB) DeleteGroup(id string) error

DeleteGroup deletes a group and its memberships

func (*DB) DeleteMachine

func (db *DB) DeleteMachine(id string) error

DeleteMachine deletes a machine record

func (*DB) DeleteOldMetrics

func (db *DB) DeleteOldMetrics(before time.Time) error

DeleteOldMetrics removes metrics older than the specified duration

func (*DB) DeleteTemplate

func (db *DB) DeleteTemplate(id string) error

DeleteTemplate deletes a template

func (*DB) DeleteUser

func (db *DB) DeleteUser(id string) error

DeleteUser deletes a user record

func (*DB) DeleteWebhook

func (db *DB) DeleteWebhook(id string) error

DeleteWebhook deletes a webhook

func (*DB) Driver

func (db *DB) Driver() string

Driver returns the database driver name

func (*DB) EmitMachineEvent

func (db *DB) EmitMachineEvent(machineID, eventType string, data interface{}, createdBy *string) error

EmitMachineEvent is a helper to create an event and trigger webhooks

func (*DB) GetBuild

func (db *DB) GetBuild(id string) (*models.BuildRequest, error)

GetBuild retrieves a build by ID

func (*DB) GetGroup

func (db *DB) GetGroup(id string) (*models.MachineGroup, error)

GetGroup retrieves a group by ID

func (*DB) GetGroupByName

func (db *DB) GetGroupByName(name string) (*models.MachineGroup, error)

GetGroupByName retrieves a group by name

func (*DB) GetGroupMachines

func (db *DB) GetGroupMachines(groupID string) ([]*models.Machine, error)

GetGroupMachines retrieves all machines in a group

func (*DB) GetImageTest

func (db *DB) GetImageTest(id string) (*models.ImageTest, error)

GetImageTest retrieves an image test by ID

func (*DB) GetLatestMetrics

func (db *DB) GetLatestMetrics(machineID string) (*models.MachineMetrics, error)

GetLatestMetrics retrieves the most recent metrics for a machine

func (*DB) GetMachine

func (db *DB) GetMachine(id string) (*models.Machine, error)

GetMachine retrieves a machine by ID

func (*DB) GetMachineByServiceTag

func (db *DB) GetMachineByServiceTag(serviceTag string) (*models.Machine, error)

GetMachineByServiceTag retrieves a machine by service tag

func (*DB) GetMachineGroups

func (db *DB) GetMachineGroups(machineID string) ([]*models.MachineGroup, error)

GetMachineGroups retrieves all groups a machine belongs to

func (*DB) GetPowerOperation

func (db *DB) GetPowerOperation(id string) (*models.PowerOperation, error)

GetPowerOperation retrieves a power operation by ID

func (*DB) GetTemplate

func (db *DB) GetTemplate(id string) (*models.MachineTemplate, error)

GetTemplate retrieves a template by ID

func (*DB) GetTemplateByName

func (db *DB) GetTemplateByName(name string) (*models.MachineTemplate, error)

GetTemplateByName retrieves a template by name

func (*DB) GetUser

func (db *DB) GetUser(id string) (*models.User, error)

GetUser retrieves a user by ID

func (*DB) GetUserByUsername

func (db *DB) GetUserByUsername(username string) (*models.User, error)

GetUserByUsername retrieves a user by username

func (*DB) GetWebhook

func (db *DB) GetWebhook(id string) (*models.Webhook, error)

GetWebhook retrieves a webhook by ID

func (*DB) GetWebhooksByEvent

func (db *DB) GetWebhooksByEvent(event string) ([]*models.Webhook, error)

GetWebhooksByEvent retrieves all active webhooks for a specific event

func (*DB) ListAllEvents

func (db *DB) ListAllEvents(limit int) ([]*models.MachineEvent, error)

ListAllEvents lists all events (for audit purposes)

func (*DB) ListBuildsByMachine

func (db *DB) ListBuildsByMachine(machineID string) ([]*models.BuildRequest, error)

ListBuildsByMachine retrieves all builds for a machine

func (*DB) ListGroups

func (db *DB) ListGroups() ([]*models.MachineGroup, error)

ListGroups retrieves all groups

func (*DB) ListImageTests

func (db *DB) ListImageTests(imageType string, limit int) ([]*models.ImageTest, error)

ListImageTests retrieves image tests

func (*DB) ListMachineEvents

func (db *DB) ListMachineEvents(machineID string, limit int) ([]*models.MachineEvent, error)

ListMachineEvents lists events for a machine

func (*DB) ListMachines

func (db *DB) ListMachines() ([]*models.Machine, error)

ListMachines retrieves all machines

func (*DB) ListMetrics

func (db *DB) ListMetrics(machineID string, since time.Time, limit int) ([]*models.MachineMetrics, error)

ListMetrics retrieves metrics for a machine within a time range

func (*DB) ListPowerOperations

func (db *DB) ListPowerOperations(machineID string, limit int) ([]*models.PowerOperation, error)

ListPowerOperations retrieves power operations for a machine

func (*DB) ListTemplates

func (db *DB) ListTemplates() ([]*models.MachineTemplate, error)

ListTemplates lists all templates

func (*DB) ListUsers

func (db *DB) ListUsers() ([]*models.User, error)

ListUsers retrieves all users

func (*DB) ListWebhookDeliveries

func (db *DB) ListWebhookDeliveries(webhookID string, limit int) ([]*models.WebhookDelivery, error)

ListWebhookDeliveries lists deliveries for a webhook

func (*DB) ListWebhooks

func (db *DB) ListWebhooks() ([]*models.Webhook, error)

ListWebhooks lists all webhooks

func (*DB) Migrate

func (db *DB) Migrate() error

Migrate runs database migrations

func (*DB) RemoveMachineFromGroup

func (db *DB) RemoveMachineFromGroup(groupID, machineID string) error

RemoveMachineFromGroup removes a machine from a group

func (*DB) SearchMachines

func (db *DB) SearchMachines(filter MachineFilter) ([]*models.Machine, error)

SearchMachines searches machines with advanced filtering

func (*DB) UpdateBuild

func (db *DB) UpdateBuild(build *models.BuildRequest) error

UpdateBuild updates a build record

func (*DB) UpdateGroup

func (db *DB) UpdateGroup(group *models.MachineGroup) error

UpdateGroup updates a group record

func (*DB) UpdateImageTest

func (db *DB) UpdateImageTest(test *models.ImageTest) error

UpdateImageTest updates an image test record

func (*DB) UpdateLastLogin

func (db *DB) UpdateLastLogin(userID string) error

UpdateLastLogin updates the last login timestamp for a user

func (*DB) UpdateMachine

func (db *DB) UpdateMachine(machine *models.Machine) error

UpdateMachine updates a machine record

func (*DB) UpdatePowerOperation

func (db *DB) UpdatePowerOperation(op *models.PowerOperation) error

UpdatePowerOperation updates a power operation record

func (*DB) UpdateTemplate

func (db *DB) UpdateTemplate(template *models.MachineTemplate) error

UpdateTemplate updates a template

func (*DB) UpdateUser

func (db *DB) UpdateUser(user *models.User) error

UpdateUser updates a user record

func (*DB) UpdateWebhook

func (db *DB) UpdateWebhook(webhook *models.Webhook) error

UpdateWebhook updates a webhook

func (*DB) UpdateWebhookDeliveryStatus

func (db *DB) UpdateWebhookDeliveryStatus(webhookID string, success bool) error

UpdateWebhookDeliveryStatus updates the webhook last success/failure timestamps

type MachineFilter

type MachineFilter struct {
	Status       string
	Hostname     string
	ServiceTag   string
	MACAddress   string
	Manufacturer string
	Model        string
	Search       string // General search across multiple fields
	Limit        int
	Offset       int
}

MachineFilter represents filter criteria for searching machines

Jump to

Keyboard shortcuts

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