database

package
v0.1.16 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultMigratorConfig added in v0.1.16

func DefaultMigratorConfig() database.MigratorConfig

DefaultMigratorConfig returns the default configuration for OSS migrations.

func NewTestDB

func NewTestDB(t *testing.T) database.Database

NewTestDB creates an isolated PostgreSQL database for each test by copying a template. The template database has migrations pre-applied, so each test is fast. Requires PostgreSQL to be running on localhost:5432 (e.g., via docker-compose).

func WithTestSession added in v0.1.14

func WithTestSession(ctx context.Context) context.Context

WithTestSession adds a test session to the context that has full permissions

Types

type Executor

type Executor interface {
	Exec(ctx context.Context, sql string, arguments ...any) (pgconn.CommandTag, error)
	Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error)
	QueryRow(ctx context.Context, sql string, args ...any) pgx.Row
}

Executor is an interface for executing queries (satisfied by both pgx.Tx and pgxpool.Pool)

type PostgreSQL

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

PostgreSQL is an implementation of the Database interface using PostgreSQL

func NewPostgreSQL

func NewPostgreSQL(ctx context.Context, connectionURI string, authz auth.Authorizer) (*PostgreSQL, error)

NewPostgreSQL creates a new instance of the PostgreSQL database

func (*PostgreSQL) AcquirePublishLock

func (db *PostgreSQL) AcquirePublishLock(ctx context.Context, tx pgx.Tx, serverName string) error

AcquirePublishLock acquires an exclusive advisory lock for publishing a server This prevents race conditions when multiple versions are published concurrently Using pg_advisory_xact_lock which auto-releases on transaction end

func (*PostgreSQL) CheckAgentVersionExists

func (db *PostgreSQL) CheckAgentVersionExists(ctx context.Context, tx pgx.Tx, agentName, version string) (bool, error)

func (*PostgreSQL) CheckSkillVersionExists

func (db *PostgreSQL) CheckSkillVersionExists(ctx context.Context, tx pgx.Tx, skillName, version string) (bool, error)

func (*PostgreSQL) CheckVersionExists

func (db *PostgreSQL) CheckVersionExists(ctx context.Context, tx pgx.Tx, serverName, version string) (bool, error)

CheckVersionExists checks if a specific version exists for a server

func (*PostgreSQL) Close

func (db *PostgreSQL) Close() error

Close closes the database connection

func (*PostgreSQL) CountAgentVersions

func (db *PostgreSQL) CountAgentVersions(ctx context.Context, tx pgx.Tx, agentName string) (int, error)

func (*PostgreSQL) CountServerVersions

func (db *PostgreSQL) CountServerVersions(ctx context.Context, tx pgx.Tx, serverName string) (int, error)

CountServerVersions counts the number of versions for a server

func (*PostgreSQL) CountSkillVersions

func (db *PostgreSQL) CountSkillVersions(ctx context.Context, tx pgx.Tx, skillName string) (int, error)

func (*PostgreSQL) CreateAgent

func (db *PostgreSQL) CreateAgent(ctx context.Context, tx pgx.Tx, agentJSON *models.AgentJSON, officialMeta *models.AgentRegistryExtensions) (*models.AgentResponse, error)

func (*PostgreSQL) CreateDeployment

func (db *PostgreSQL) CreateDeployment(ctx context.Context, tx pgx.Tx, deployment *models.Deployment) error

CreateDeployment creates a new deployment record

func (*PostgreSQL) CreateServer

func (db *PostgreSQL) CreateServer(ctx context.Context, tx pgx.Tx, serverJSON *apiv0.ServerJSON, officialMeta *apiv0.RegistryExtensions) (*apiv0.ServerResponse, error)

CreateServer inserts a new server version with official metadata

func (*PostgreSQL) CreateSkill

func (db *PostgreSQL) CreateSkill(ctx context.Context, tx pgx.Tx, skillJSON *models.SkillJSON, officialMeta *models.SkillRegistryExtensions) (*models.SkillResponse, error)

func (*PostgreSQL) DeleteAgent

func (db *PostgreSQL) DeleteAgent(ctx context.Context, tx pgx.Tx, agentName, version string) error

DeleteAgent permanently removes an agent version from the database

func (*PostgreSQL) DeleteServer

func (db *PostgreSQL) DeleteServer(ctx context.Context, tx pgx.Tx, serverName, version string) error

DeleteServer permanently removes a server version from the database

func (*PostgreSQL) GetAgentByName

func (db *PostgreSQL) GetAgentByName(ctx context.Context, tx pgx.Tx, agentName string) (*models.AgentResponse, error)

func (*PostgreSQL) GetAgentByNameAndVersion

func (db *PostgreSQL) GetAgentByNameAndVersion(ctx context.Context, tx pgx.Tx, agentName, version string) (*models.AgentResponse, error)

func (*PostgreSQL) GetAgentEmbeddingMetadata added in v0.1.11

func (db *PostgreSQL) GetAgentEmbeddingMetadata(ctx context.Context, tx pgx.Tx, agentName, version string) (*database.SemanticEmbeddingMetadata, error)

GetAgentEmbeddingMetadata retrieves embedding metadata for an agent version without loading the vector.

func (*PostgreSQL) GetAllVersionsByAgentName

func (db *PostgreSQL) GetAllVersionsByAgentName(ctx context.Context, tx pgx.Tx, agentName string) ([]*models.AgentResponse, error)

func (*PostgreSQL) GetAllVersionsByServerName

func (db *PostgreSQL) GetAllVersionsByServerName(ctx context.Context, tx pgx.Tx, serverName string, publishedOnly bool) ([]*apiv0.ServerResponse, error)

GetAllVersionsByServerName retrieves all versions of a server by server name If publishedOnly is true, only returns versions where published = true

func (*PostgreSQL) GetAllVersionsBySkillName

func (db *PostgreSQL) GetAllVersionsBySkillName(ctx context.Context, tx pgx.Tx, skillName string) ([]*models.SkillResponse, error)

func (*PostgreSQL) GetCurrentLatestAgentVersion

func (db *PostgreSQL) GetCurrentLatestAgentVersion(ctx context.Context, tx pgx.Tx, agentName string) (*models.AgentResponse, error)

func (*PostgreSQL) GetCurrentLatestSkillVersion

func (db *PostgreSQL) GetCurrentLatestSkillVersion(ctx context.Context, tx pgx.Tx, skillName string) (*models.SkillResponse, error)

func (*PostgreSQL) GetCurrentLatestVersion

func (db *PostgreSQL) GetCurrentLatestVersion(ctx context.Context, tx pgx.Tx, serverName string) (*apiv0.ServerResponse, error)

GetCurrentLatestVersion retrieves the current latest version of a server by server name

func (*PostgreSQL) GetDeploymentByNameAndVersion

func (db *PostgreSQL) GetDeploymentByNameAndVersion(ctx context.Context, tx pgx.Tx, serverName string, version string, resourceType string) (*models.Deployment, error)

GetDeploymentByName retrieves a specific deployment

func (*PostgreSQL) GetDeployments

func (db *PostgreSQL) GetDeployments(ctx context.Context, tx pgx.Tx) ([]*models.Deployment, error)

GetDeployments retrieves all deployed servers

func (*PostgreSQL) GetLatestServerReadme

func (db *PostgreSQL) GetLatestServerReadme(ctx context.Context, tx pgx.Tx, serverName string) (*database.ServerReadme, error)

func (*PostgreSQL) GetServerByName

func (db *PostgreSQL) GetServerByName(ctx context.Context, tx pgx.Tx, serverName string) (*apiv0.ServerResponse, error)

GetServerByName retrieves the latest version of a server by server name

func (*PostgreSQL) GetServerByNameAndVersion

func (db *PostgreSQL) GetServerByNameAndVersion(ctx context.Context, tx pgx.Tx, serverName string, version string, publishedOnly bool) (*apiv0.ServerResponse, error)

GetServerByNameAndVersion retrieves a specific version of a server by server name and version

func (*PostgreSQL) GetServerEmbeddingMetadata added in v0.1.11

func (db *PostgreSQL) GetServerEmbeddingMetadata(ctx context.Context, tx pgx.Tx, serverName, version string) (*database.SemanticEmbeddingMetadata, error)

GetServerEmbeddingMetadata retrieves embedding metadata for a server version without loading the underlying vector payload. This is useful for maintenance tasks that only need to know whether an embedding exists or if its checksum is stale.

func (*PostgreSQL) GetServerReadme

func (db *PostgreSQL) GetServerReadme(ctx context.Context, tx pgx.Tx, serverName, version string) (*database.ServerReadme, error)

func (*PostgreSQL) GetSkillByName

func (db *PostgreSQL) GetSkillByName(ctx context.Context, tx pgx.Tx, skillName string) (*models.SkillResponse, error)

func (*PostgreSQL) GetSkillByNameAndVersion

func (db *PostgreSQL) GetSkillByNameAndVersion(ctx context.Context, tx pgx.Tx, skillName, version string) (*models.SkillResponse, error)

func (*PostgreSQL) InTransaction

func (db *PostgreSQL) InTransaction(ctx context.Context, fn func(ctx context.Context, tx pgx.Tx) error) error

InTransaction executes a function within a database transaction

func (*PostgreSQL) IsAgentPublished

func (db *PostgreSQL) IsAgentPublished(ctx context.Context, tx pgx.Tx, agentName, version string) (bool, error)

IsAgentPublished checks if an agent is published

func (*PostgreSQL) IsServerPublished

func (db *PostgreSQL) IsServerPublished(ctx context.Context, tx pgx.Tx, serverName, version string) (bool, error)

IsServerPublished checks if a server is published

func (*PostgreSQL) IsSkillPublished

func (db *PostgreSQL) IsSkillPublished(ctx context.Context, tx pgx.Tx, skillName, version string) (bool, error)

IsSkillPublished checks if a skill is published

func (*PostgreSQL) ListAgents

func (db *PostgreSQL) ListAgents(ctx context.Context, tx pgx.Tx, filter *database.AgentFilter, cursor string, limit int) ([]*models.AgentResponse, string, error)

ListAgents returns paginated agents with filtering

func (*PostgreSQL) ListServers

func (db *PostgreSQL) ListServers(
	ctx context.Context,
	tx pgx.Tx,
	filter *database.ServerFilter,
	cursor string,
	limit int,
) ([]*apiv0.ServerResponse, string, error)

func (*PostgreSQL) ListSkills

func (db *PostgreSQL) ListSkills(ctx context.Context, tx pgx.Tx, filter *database.SkillFilter, cursor string, limit int) ([]*models.SkillResponse, string, error)

ListSkills returns paginated skills with filtering

func (*PostgreSQL) PublishAgent

func (db *PostgreSQL) PublishAgent(ctx context.Context, tx pgx.Tx, agentName, version string) error

PublishAgent marks an agent as published

func (*PostgreSQL) PublishServer

func (db *PostgreSQL) PublishServer(ctx context.Context, tx pgx.Tx, serverName, version string) error

PublishServer marks a server as published

func (*PostgreSQL) PublishSkill

func (db *PostgreSQL) PublishSkill(ctx context.Context, tx pgx.Tx, skillName, version string) error

PublishSkill marks a skill as published

func (*PostgreSQL) RemoveDeployment

func (db *PostgreSQL) RemoveDeployment(ctx context.Context, tx pgx.Tx, serverName string, version string, resourceType string) error

RemoveDeployment removes a deployment

func (*PostgreSQL) SetAgentEmbedding added in v0.1.11

func (db *PostgreSQL) SetAgentEmbedding(ctx context.Context, tx pgx.Tx, agentName, version string, embedding *database.SemanticEmbedding) error

SetAgentEmbedding stores semantic embedding metadata for an agent version.

func (*PostgreSQL) SetAgentStatus

func (db *PostgreSQL) SetAgentStatus(ctx context.Context, tx pgx.Tx, agentName, version string, status string) (*models.AgentResponse, error)

func (*PostgreSQL) SetServerEmbedding added in v0.1.11

func (db *PostgreSQL) SetServerEmbedding(ctx context.Context, tx pgx.Tx, serverName, version string, embedding *database.SemanticEmbedding) error

SetServerEmbedding stores semantic embedding metadata for a server version.

func (*PostgreSQL) SetServerStatus

func (db *PostgreSQL) SetServerStatus(ctx context.Context, tx pgx.Tx, serverName, version string, status string) (*apiv0.ServerResponse, error)

SetServerStatus updates the status of a specific server version

func (*PostgreSQL) SetSkillStatus

func (db *PostgreSQL) SetSkillStatus(ctx context.Context, tx pgx.Tx, skillName, version string, status string) (*models.SkillResponse, error)

func (*PostgreSQL) UnmarkAgentAsLatest

func (db *PostgreSQL) UnmarkAgentAsLatest(ctx context.Context, tx pgx.Tx, agentName string) error

func (*PostgreSQL) UnmarkAsLatest

func (db *PostgreSQL) UnmarkAsLatest(ctx context.Context, tx pgx.Tx, serverName string) error

UnmarkAsLatest marks the current latest version of a server as no longer latest

func (*PostgreSQL) UnmarkSkillAsLatest

func (db *PostgreSQL) UnmarkSkillAsLatest(ctx context.Context, tx pgx.Tx, skillName string) error

func (*PostgreSQL) UnpublishAgent

func (db *PostgreSQL) UnpublishAgent(ctx context.Context, tx pgx.Tx, agentName, version string) error

UnpublishAgent marks an agent as unpublished

func (*PostgreSQL) UnpublishServer

func (db *PostgreSQL) UnpublishServer(ctx context.Context, tx pgx.Tx, serverName, version string) error

UnpublishServer marks a server as unpublished

func (*PostgreSQL) UnpublishSkill

func (db *PostgreSQL) UnpublishSkill(ctx context.Context, tx pgx.Tx, skillName, version string) error

UnpublishSkill marks a skill as unpublished

func (*PostgreSQL) UpdateAgent

func (db *PostgreSQL) UpdateAgent(ctx context.Context, tx pgx.Tx, agentName, version string, agentJSON *models.AgentJSON) (*models.AgentResponse, error)

func (*PostgreSQL) UpdateDeploymentConfig

func (db *PostgreSQL) UpdateDeploymentConfig(ctx context.Context, tx pgx.Tx, serverName string, version string, resourceType string, config map[string]string) error

UpdateDeploymentConfig updates the configuration for a deployment

func (*PostgreSQL) UpdateDeploymentStatus

func (db *PostgreSQL) UpdateDeploymentStatus(ctx context.Context, tx pgx.Tx, serverName, version string, resourceType string, status string) error

UpdateDeploymentStatus updates the status of a deployment

func (*PostgreSQL) UpdateServer

func (db *PostgreSQL) UpdateServer(ctx context.Context, tx pgx.Tx, serverName, version string, serverJSON *apiv0.ServerJSON) (*apiv0.ServerResponse, error)

UpdateServer updates an existing server record with new server details

func (*PostgreSQL) UpdateSkill

func (db *PostgreSQL) UpdateSkill(ctx context.Context, tx pgx.Tx, skillName, version string, skillJSON *models.SkillJSON) (*models.SkillResponse, error)

func (*PostgreSQL) UpsertServerReadme

func (db *PostgreSQL) UpsertServerReadme(ctx context.Context, tx pgx.Tx, readme *database.ServerReadme) error

Jump to

Keyboard shortcuts

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