sqlite

package
v0.0.0-...-5b49586 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package sqlite implements SQLite storage for MCP Any configuration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB struct {
	*sql.DB
}

DB wraps the sql.DB connection.

Summary: Represents a DB.

func NewDB

func NewDB(path string) (*DB, error)

NewDB opens or creates a SQLite database at the specified path.

Summary: Initializes a SQLite database connection.

Parameters:

  • path (string): The file path to the SQLite database.

Returns:

  • *DB: The database connection.
  • error: An error if the database cannot be opened or initialized.

Side Effects:

  • Creates the database file and directories if they don't exist.
  • Initializes the database schema.

type Store

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

Store implements config.Store using SQLite.

Summary: SQLite storage implementation.

func NewStore

func NewStore(db *DB) *Store

NewStore creates a new SQLite store.

Summary: Creates a new SQLite store.

Parameters:

  • db (*DB): The database connection wrapper.

Returns:

  • *Store: A pointer to a new Store.

Side Effects:

  • None.

func (*Store) Close

func (s *Store) Close() error

Close closes the underlying database connection.

Summary: Closes the database connection.

Returns:

  • error: An error if closing fails.

Errors:

  • Returns an error if the database connection close fails.

Side Effects:

  • Closes the connection to SQLite.

func (*Store) CreateUser

func (s *Store) CreateUser(ctx context.Context, user *configv1.User) error

CreateUser creates a new user.

Summary: Creates a user.

Parameters:

  • ctx (context.Context): The context for the request.
  • user (*configv1.User): The user to create.

Returns:

  • error: An error if creation fails.

Errors:

  • Returns an error if user ID is missing or database write fails.

Side Effects:

  • Inserts a row into the users table.

func (*Store) DeleteCredential

func (s *Store) DeleteCredential(ctx context.Context, id string) error

DeleteCredential deletes a credential by ID.

Summary: Deletes a credential.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The credential ID to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the credentials table.

func (*Store) DeleteProfile

func (s *Store) DeleteProfile(ctx context.Context, name string) error

DeleteProfile deletes a profile definition by name.

Summary: Deletes a profile.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The profile name to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the profile_definitions table.

func (*Store) DeleteSecret

func (s *Store) DeleteSecret(ctx context.Context, id string) error

DeleteSecret deletes a secret by ID.

Summary: Deletes a secret.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The secret ID to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the secrets table.

func (*Store) DeleteService

func (s *Store) DeleteService(ctx context.Context, name string) error

DeleteService deletes an upstream service configuration by name.

Summary: Deletes a service configuration.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The name of the service to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes a row from the upstream_services table.

func (*Store) DeleteServiceCollection

func (s *Store) DeleteServiceCollection(ctx context.Context, name string) error

DeleteServiceCollection deletes a service collection by name.

Summary: Deletes a collection.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The collection name to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the service_collections table.

func (*Store) DeleteServiceTemplate

func (s *Store) DeleteServiceTemplate(ctx context.Context, id string) error

DeleteServiceTemplate deletes a service template by ID.

Summary: Removes a service template from the database.

Parameters:

  • ctx: context.Context. The context for the request.
  • id: string. The unique identifier of the template to delete.

Returns:

  • error: An error if the deletion fails.

Side Effects:

  • Deletes a row from the service_templates table.

func (*Store) DeleteToken

func (s *Store) DeleteToken(ctx context.Context, userID, serviceID string) error

DeleteToken deletes a user token.

Summary: Deletes a user token.

Parameters:

  • ctx (context.Context): The context for the request.
  • userID (string): The user ID.
  • serviceID (string): The service ID.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the user_tokens table.

func (*Store) DeleteUser

func (s *Store) DeleteUser(ctx context.Context, id string) error

DeleteUser deletes a user by ID.

Summary: Deletes a user.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The user ID to delete.

Returns:

  • error: An error if deletion fails.

Errors:

  • Returns an error if database execution fails.

Side Effects:

  • Deletes the row from the users table.

func (*Store) GetCredential

func (s *Store) GetCredential(ctx context.Context, id string) (*configv1.Credential, error)

GetCredential retrieves a credential by ID.

Summary: Retrieves a credential by ID.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The credential ID.

Returns:

  • *configv1.Credential: The credential.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if credential is not found.
  • Returns an error if database query fails.

func (*Store) GetGlobalSettings

func (s *Store) GetGlobalSettings(ctx context.Context) (*configv1.GlobalSettings, error)

GetGlobalSettings retrieves the global configuration.

Summary: Retrieves global settings.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • *configv1.GlobalSettings: The global settings.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if settings are not found.
  • Returns an error if database query fails.

func (*Store) GetProfile

func (s *Store) GetProfile(ctx context.Context, name string) (*configv1.ProfileDefinition, error)

GetProfile retrieves a profile definition by name.

Summary: Retrieves a profile by name.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The profile name.

Returns:

  • *configv1.ProfileDefinition: The profile.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if profile is not found.
  • Returns an error if database query fails.

func (*Store) GetRecentLogs

func (s *Store) GetRecentLogs(ctx context.Context, limit int) ([]*logging.LogEntry, error)

GetRecentLogs retrieves recent log entries.

Summary: Retrieves recent log entries.

Parameters:

  • ctx (context.Context): The context for the request.
  • limit (int): The maximum number of logs to retrieve.

Returns:

  • []*logging.LogEntry: A list of log entries.
  • error: An error if retrieval fails.

Errors:

  • Returns an error if storage read fails.

func (*Store) GetSecret

func (s *Store) GetSecret(ctx context.Context, id string) (*configv1.Secret, error)

GetSecret retrieves a secret by ID.

Summary: Retrieves a secret by ID.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The secret ID.

Returns:

  • *configv1.Secret: The secret.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if secret is not found.
  • Returns an error if database query fails.

func (*Store) GetService

func (s *Store) GetService(ctx context.Context, name string) (*configv1.UpstreamServiceConfig, error)

GetService retrieves an upstream service configuration by name.

Summary: Retrieves a service configuration by name.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The name of the service.

Returns:

  • *configv1.UpstreamServiceConfig: The service configuration.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if service is not found.
  • Returns an error if database query fails.

func (*Store) GetServiceCollection

func (s *Store) GetServiceCollection(ctx context.Context, name string) (*configv1.Collection, error)

GetServiceCollection retrieves a service collection by name.

Summary: Retrieves a collection by name.

Parameters:

  • ctx (context.Context): The context for the request.
  • name (string): The collection name.

Returns:

  • *configv1.Collection: The collection.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if collection is not found.
  • Returns an error if database query fails.

func (*Store) GetServiceTemplate

func (s *Store) GetServiceTemplate(ctx context.Context, id string) (*configv1.ServiceTemplate, error)

GetServiceTemplate retrieves a service template by ID.

Summary: Fetches a single service template by its unique identifier.

Parameters:

  • ctx: context.Context. The context for the request.
  • id: string. The unique identifier of the template.

Returns:

  • *configv1.ServiceTemplate: The requested template, or nil if not found.
  • error: An error if the query fails (excluding ErrNoRows).

Side Effects:

  • Executes a SELECT query on the service_templates table.

func (*Store) GetToken

func (s *Store) GetToken(ctx context.Context, userID, serviceID string) (*configv1.UserToken, error)

GetToken retrieves a user token by user ID and service ID.

Summary: Retrieves a user token.

Parameters:

  • ctx (context.Context): The context for the request.
  • userID (string): The user ID.
  • serviceID (string): The service ID.

Returns:

  • *configv1.UserToken: The token.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if token is not found.
  • Returns an error if database query fails.

func (*Store) GetUser

func (s *Store) GetUser(ctx context.Context, id string) (*configv1.User, error)

GetUser retrieves a user by ID.

Summary: Retrieves a user by ID.

Parameters:

  • ctx (context.Context): The context for the request.
  • id (string): The user ID.

Returns:

  • *configv1.User: The user.
  • error: An error if retrieval fails.

Errors:

  • Returns nil, nil if user is not found.
  • Returns an error if database query fails.

func (*Store) HasConfigSources

func (s *Store) HasConfigSources() bool

HasConfigSources returns true if the store has configuration sources (e.g., file paths) configured.

Summary: Checks if the store has configuration sources.

For DB stores, we assume they always have a source (the DB itself).

Returns:

  • bool: True always for DB store.

Side Effects:

  • None.

func (*Store) ListCredentials

func (s *Store) ListCredentials(ctx context.Context) ([]*configv1.Credential, error)

ListCredentials retrieves all credentials.

Summary: Lists all credentials.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.Credential: A list of credentials.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) ListProfiles

func (s *Store) ListProfiles(ctx context.Context) ([]*configv1.ProfileDefinition, error)

ListProfiles retrieves all profile definitions.

Summary: Lists all profiles.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.ProfileDefinition: A list of profiles.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) ListSecrets

func (s *Store) ListSecrets(ctx context.Context) ([]*configv1.Secret, error)

ListSecrets retrieves all secrets.

Summary: Lists all secrets.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.Secret: A list of secrets.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) ListServiceCollections

func (s *Store) ListServiceCollections(ctx context.Context) ([]*configv1.Collection, error)

ListServiceCollections retrieves all service collections.

Summary: Lists all collections.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.Collection: A list of collections.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) ListServiceTemplates

func (s *Store) ListServiceTemplates(ctx context.Context) ([]*configv1.ServiceTemplate, error)

ListServiceTemplates retrieves all service templates.

Summary: Fetches all stored service templates from the database.

Parameters:

  • ctx: context.Context. The context for the request.

Returns:

  • []*configv1.ServiceTemplate: A list of all service templates.
  • error: An error if the database query fails or data corruption is detected.

Errors:

  • Returns error if SELECT query fails.
  • Returns error if scanning or unmarshaling config JSON fails.

Side Effects:

  • Executes a SELECT query on the service_templates table.

func (*Store) ListServices

func (s *Store) ListServices(ctx context.Context) ([]*configv1.UpstreamServiceConfig, error)

ListServices lists all upstream service configurations.

Summary: Lists all services.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.UpstreamServiceConfig: A list of service configurations.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) ListUsers

func (s *Store) ListUsers(ctx context.Context) ([]*configv1.User, error)

ListUsers retrieves all users.

Summary: Lists all users.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • []*configv1.User: A list of users.
  • error: An error if listing fails.

Errors:

  • Returns an error if database query fails.

func (*Store) Load

Load implements config.Store interface.

Summary: Loads the entire server configuration from the database.

Parameters:

  • ctx (context.Context): The context for the request.

Returns:

  • *configv1.McpAnyServerConfig: The loaded configuration.
  • error: An error if loading fails.

Errors:

  • Returns an error if any database query fails.

Side Effects:

  • Executes multiple SELECT queries against the database.

func (*Store) SaveCredential

func (s *Store) SaveCredential(ctx context.Context, cred *configv1.Credential) error

SaveCredential saves a credential.

Summary: Persists a credential.

Parameters:

  • ctx (context.Context): The context for the request.
  • cred (*configv1.Credential): The credential to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if credential ID is missing or database write fails.

Side Effects:

  • Inserts or updates the credentials table.

func (*Store) SaveGlobalSettings

func (s *Store) SaveGlobalSettings(ctx context.Context, settings *configv1.GlobalSettings) error

SaveGlobalSettings saves the global configuration.

Summary: Persists global settings.

Parameters:

  • ctx (context.Context): The context for the request.
  • settings (*configv1.GlobalSettings): The settings to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if database write fails.

Side Effects:

  • Inserts or updates the global_settings table.

func (*Store) SaveLog

func (s *Store) SaveLog(ctx context.Context, entry *logging.LogEntry) error

SaveLog saves a log entry.

Summary: Persists a log entry.

Parameters:

  • ctx (context.Context): The context for the request.
  • entry (*logging.LogEntry): The log entry to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if storage write fails.

Side Effects:

  • Persists the log entry to the underlying storage.

func (*Store) SaveProfile

func (s *Store) SaveProfile(ctx context.Context, profile *configv1.ProfileDefinition) error

SaveProfile saves a profile definition.

Summary: Persists a profile.

Parameters:

  • ctx (context.Context): The context for the request.
  • profile (*configv1.ProfileDefinition): The profile to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if profile name is missing or database write fails.

Side Effects:

  • Inserts or updates the profile_definitions table.

func (*Store) SaveSecret

func (s *Store) SaveSecret(ctx context.Context, secret *configv1.Secret) error

SaveSecret saves a secret.

Summary: Persists a secret.

Parameters:

  • ctx (context.Context): The context for the request.
  • secret (*configv1.Secret): The secret to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if secret ID is missing or database write fails.

Side Effects:

  • Inserts or updates the secrets table.

func (*Store) SaveService

func (s *Store) SaveService(ctx context.Context, service *configv1.UpstreamServiceConfig) error

SaveService saves an upstream service configuration.

Summary: Persists a service configuration.

Parameters:

  • ctx (context.Context): The context for the request.
  • service (*configv1.UpstreamServiceConfig): The service configuration.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if service name is missing or database write fails.

Side Effects:

  • Inserts or updates a row in the upstream_services table.

func (*Store) SaveServiceCollection

func (s *Store) SaveServiceCollection(ctx context.Context, collection *configv1.Collection) error

SaveServiceCollection saves a service collection.

Summary: Persists a collection.

Parameters:

  • ctx (context.Context): The context for the request.
  • collection (*configv1.Collection): The collection to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if collection name is missing or database write fails.

Side Effects:

  • Inserts or updates the service_collections table.

func (*Store) SaveServiceTemplate

func (s *Store) SaveServiceTemplate(ctx context.Context, template *configv1.ServiceTemplate) error

SaveServiceTemplate saves a service template.

Summary: Inserts or updates a service template.

Parameters:

  • ctx: context.Context. The context for the request.
  • template: *configv1.ServiceTemplate. The template to save.

Returns:

  • error: An error if the template is invalid or the database write fails.

Errors:

  • Returns "template ID is required" if the ID is missing.
  • Returns error if marshaling the template fails.
  • Returns error if the UPSERT operation fails.

Side Effects:

  • Writes a row to the service_templates table.
  • Updates the updated_at timestamp.

func (*Store) SaveToken

func (s *Store) SaveToken(ctx context.Context, token *configv1.UserToken) error

SaveToken saves a user token.

Summary: Persists a user token.

Parameters:

  • ctx (context.Context): The context for the request.
  • token (*configv1.UserToken): The token to save.

Returns:

  • error: An error if saving fails.

Errors:

  • Returns an error if user ID or service ID is missing.
  • Returns an error if database write fails.

Side Effects:

  • Inserts or updates the user_tokens table.

func (*Store) UpdateUser

func (s *Store) UpdateUser(ctx context.Context, user *configv1.User) error

UpdateUser updates an existing user.

Summary: Updates a user.

Parameters:

  • ctx (context.Context): The context for the request.
  • user (*configv1.User): The user to update.

Returns:

  • error: An error if update fails.

Errors:

  • Returns an error if user ID is missing, user not found, or database write fails.

Side Effects:

  • Updates the row in the users table.

Jump to

Keyboard shortcuts

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