Documentation
¶
Overview ¶
Package sqlite implements SQLite storage for MCP Any configuration.
Index ¶
- type DB
- type Store
- func (s *Store) Close() error
- func (s *Store) CreateUser(ctx context.Context, user *configv1.User) error
- func (s *Store) DeleteCredential(ctx context.Context, id string) error
- func (s *Store) DeleteProfile(ctx context.Context, name string) error
- func (s *Store) DeleteSecret(ctx context.Context, id string) error
- func (s *Store) DeleteService(ctx context.Context, name string) error
- func (s *Store) DeleteServiceCollection(ctx context.Context, name string) error
- func (s *Store) DeleteServiceTemplate(ctx context.Context, id string) error
- func (s *Store) DeleteToken(ctx context.Context, userID, serviceID string) error
- func (s *Store) DeleteUser(ctx context.Context, id string) error
- func (s *Store) GetCredential(ctx context.Context, id string) (*configv1.Credential, error)
- func (s *Store) GetGlobalSettings(ctx context.Context) (*configv1.GlobalSettings, error)
- func (s *Store) GetProfile(ctx context.Context, name string) (*configv1.ProfileDefinition, error)
- func (s *Store) GetRecentLogs(ctx context.Context, limit int) ([]*logging.LogEntry, error)
- func (s *Store) GetSecret(ctx context.Context, id string) (*configv1.Secret, error)
- func (s *Store) GetService(ctx context.Context, name string) (*configv1.UpstreamServiceConfig, error)
- func (s *Store) GetServiceCollection(ctx context.Context, name string) (*configv1.Collection, error)
- func (s *Store) GetServiceTemplate(ctx context.Context, id string) (*configv1.ServiceTemplate, error)
- func (s *Store) GetToken(ctx context.Context, userID, serviceID string) (*configv1.UserToken, error)
- func (s *Store) GetUser(ctx context.Context, id string) (*configv1.User, error)
- func (s *Store) HasConfigSources() bool
- func (s *Store) ListCredentials(ctx context.Context) ([]*configv1.Credential, error)
- func (s *Store) ListProfiles(ctx context.Context) ([]*configv1.ProfileDefinition, error)
- func (s *Store) ListSecrets(ctx context.Context) ([]*configv1.Secret, error)
- func (s *Store) ListServiceCollections(ctx context.Context) ([]*configv1.Collection, error)
- func (s *Store) ListServiceTemplates(ctx context.Context) ([]*configv1.ServiceTemplate, error)
- func (s *Store) ListServices(ctx context.Context) ([]*configv1.UpstreamServiceConfig, error)
- func (s *Store) ListUsers(ctx context.Context) ([]*configv1.User, error)
- func (s *Store) Load(ctx context.Context) (*configv1.McpAnyServerConfig, error)
- func (s *Store) SaveCredential(ctx context.Context, cred *configv1.Credential) error
- func (s *Store) SaveGlobalSettings(ctx context.Context, settings *configv1.GlobalSettings) error
- func (s *Store) SaveLog(ctx context.Context, entry *logging.LogEntry) error
- func (s *Store) SaveProfile(ctx context.Context, profile *configv1.ProfileDefinition) error
- func (s *Store) SaveSecret(ctx context.Context, secret *configv1.Secret) error
- func (s *Store) SaveService(ctx context.Context, service *configv1.UpstreamServiceConfig) error
- func (s *Store) SaveServiceCollection(ctx context.Context, collection *configv1.Collection) error
- func (s *Store) SaveServiceTemplate(ctx context.Context, template *configv1.ServiceTemplate) error
- func (s *Store) SaveToken(ctx context.Context, token *configv1.UserToken) error
- func (s *Store) UpdateUser(ctx context.Context, user *configv1.User) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DB ¶
DB wraps the sql.DB connection.
Summary: Represents a DB.
func NewDB ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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.