Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrTemplateInUse = errors.New("template in use")
)
Functions ¶
func GroupsChanged ¶ added in v0.37.0
func GroupsChanged()
GroupsChanged drops the cached group list, for the same reason.
func IsSessionDriverShared ¶
func IsSessionDriverShared() bool
IsSessionDriverShared returns true if the session driver uses shared storage e.g. Redis
func TokensChanged ¶ added in v0.37.0
func TokensChanged(userId string)
TokensChanged drops a user's cached tokens. A server sharing its database with others calls it for each token change gossiped to it, as the change may already be in the database and so never saved, and so never seen, here.
Types ¶
type DbDriver ¶
type DbDriver interface {
Connect() error
// Users
SaveUser(user *model.User, updateFields []string) error
DeleteUser(user *model.User) error
GetUser(id string) (*model.User, error)
GetUserByEmail(email string) (*model.User, error)
GetUserByUsername(email string) (*model.User, error)
GetUserByProviderUID(providerID, providerUID string) (*model.User, error)
GetUsers() ([]*model.User, error)
HasUsers() (bool, error)
// Tokens
SaveToken(token *model.Token) error
DeleteToken(token *model.Token) error
GetToken(id string) (*model.Token, error)
GetTokensForUser(userId string) ([]*model.Token, error)
GetTokens() ([]*model.Token, error)
// Space
SaveSpace(space *model.Space, updateFields []string) error
DeleteSpace(space *model.Space) error
GetSpace(id string) (*model.Space, error)
GetSpacesForUser(userId string) ([]*model.Space, error)
GetSpaceByName(userId string, spaceName string) (*model.Space, error)
GetSpacesByTemplateId(templateId string) ([]*model.Space, error)
GetSpacesByPoolId(poolId string) ([]*model.Space, error)
GetSpaces() ([]*model.Space, error)
SaveSpaceUsageSample(sample *model.SpaceUsageSample) error
GetSpaceUsageSample(id string) (*model.SpaceUsageSample, error)
GetSpaceUsageSamples(spaceId string, bucketKind string, from time.Time, to time.Time) ([]*model.SpaceUsageSample, error)
// Pools
SavePoolDefinition(pool *model.PoolDefinition, updateFields []string) error
DeletePoolDefinition(pool *model.PoolDefinition) error
GetPoolDefinition(id string) (*model.PoolDefinition, error)
GetPoolDefinitionByName(userId, name string) (*model.PoolDefinition, error)
GetPoolDefinitions() ([]*model.PoolDefinition, error)
GetPoolDefinitionsByUser(userId string) ([]*model.PoolDefinition, error)
// Templates
SaveTemplate(template *model.Template, updateFields []string) error
DeleteTemplate(template *model.Template) error
GetTemplate(id string) (*model.Template, error)
GetTemplateByName(name string) (*model.Template, error)
GetTemplates() ([]*model.Template, error)
// Scripts
SaveScript(script *model.Script, updateFields []string) error
DeleteScript(script *model.Script) error
GetScript(id string) (*model.Script, error)
GetScripts() ([]*model.Script, error)
GetScriptByName(name string) (*model.Script, error)
GetScriptsByName(name string) ([]*model.Script, error)
GetScriptByNameAndUser(name string, userId string) (*model.Script, error)
GetScriptsByNameAndUser(name string, userId string) ([]*model.Script, error)
// Event Sinks
SaveEventSink(sink *model.EventSink, updateFields []string) error
DeleteEventSink(sink *model.EventSink) error
GetEventSink(id string) (*model.EventSink, error)
GetEventSinks() ([]*model.EventSink, error)
// Skills
SaveSkill(skill *model.Skill, updateFields []string) error
DeleteSkill(skill *model.Skill) error
GetSkill(id string) (*model.Skill, error)
GetSkills() ([]*model.Skill, error)
GetSkillsByName(name string) ([]*model.Skill, error)
GetSkillsByNameAndUser(name string, userId string) ([]*model.Skill, error)
// Slash Commands
SaveCommand(command *model.Command, updateFields []string) error
DeleteCommand(command *model.Command) error
GetCommand(id string) (*model.Command, error)
GetCommands() ([]*model.Command, error)
GetCommandsByName(name string) ([]*model.Command, error)
GetCommandsByNameAndUser(name string, userId string) ([]*model.Command, error)
// MCP Servers
SaveMCPServer(server *model.MCPServer, updateFields []string) error
DeleteMCPServer(server *model.MCPServer) error
GetMCPServer(id string) (*model.MCPServer, error)
GetMCPServers() ([]*model.MCPServer, error)
GetMCPServersByUser(userId string) ([]*model.MCPServer, error)
// Chat Conversations (server-side chat history, per-user)
SaveConversation(conv *model.Conversation) error
DeleteConversation(conv *model.Conversation) error
GetConversation(userId string, id string) (*model.Conversation, error)
GetConversationsByUser(userId string) ([]*model.Conversation, error)
GetConversations() ([]*model.Conversation, error)
// GetStaleConversations returns live (non-deleted) conversations whose
// HLC UpdatedAt precedes the cutoff — candidates for retention tombstoning.
GetStaleConversations(before time.Time) ([]*model.Conversation, error)
// DeleteTombstonedConversationsBefore hard-deletes conversations that are
// BOTH soft-deleted (tombstoned) AND older than the cutoff. This is the
// reaper — the only place conversations are physically removed. It runs
// only after tombstones have had time to gossip-propagate, so a tombstone
// (newest HLC) always wins over any late-arriving live copy.
DeleteTombstonedConversationsBefore(before time.Time) error
// Groups
SaveGroup(group *model.Group) error
DeleteGroup(group *model.Group) error
GetGroup(id string) (*model.Group, error)
GetGroups() ([]*model.Group, error)
// Responses
SaveResponse(response *model.Response) error
DeleteResponse(response *model.Response) error
GetResponse(id string) (*model.Response, error)
GetResponses() ([]*model.Response, error)
GetResponsesByUser(userId string) ([]*model.Response, error)
GetResponsesByStatus(status model.ResponseStatus) ([]*model.Response, error)
// Template Variables
SaveTemplateVar(variable *model.TemplateVar) error
DeleteTemplateVar(variable *model.TemplateVar) error
GetTemplateVar(id string) (*model.TemplateVar, error)
GetTemplateVarByName(name string) (*model.TemplateVar, error)
GetTemplateVars() ([]*model.TemplateVar, error)
// Volumes
SaveVolume(volume *model.Volume, updateFields []string) error
DeleteVolume(volume *model.Volume) error
GetVolume(id string) (*model.Volume, error)
GetVolumeByName(name string) (*model.Volume, error)
GetVolumes() ([]*model.Volume, error)
// Roles
SaveRole(role *model.Role) error
DeleteRole(role *model.Role) error
GetRole(id string) (*model.Role, error)
GetRoles() ([]*model.Role, error)
// Audit Logs
HasAuditLog() bool
SaveAuditLog(auditLog *model.AuditLogEntry) error
GetAuditLogs(filter *model.AuditLogFilter, offset int, limit int) ([]*model.AuditLogEntry, int, error)
GetAuditLogsForExport(filter *model.AuditLogFilter) ([]*model.AuditLogEntry, error)
// Stack Definitions
SaveStackDefinition(def *model.StackDefinition, updateFields []string) error
DeleteStackDefinition(def *model.StackDefinition) error
GetStackDefinition(id string) (*model.StackDefinition, error)
GetStackDefinitions() ([]*model.StackDefinition, error)
GetStackDefinitionsByUserId(userId string) ([]*model.StackDefinition, error)
GetStackDefinitionByName(name string, userId string) (*model.StackDefinition, error)
// Config Values
GetCfgValues() ([]*model.CfgValue, error)
GetCfgValue(name string) (*model.CfgValue, error)
SaveCfgValue(cfgValue *model.CfgValue) error
}
DbDriver is the interface for the database drivers
func GetInstance ¶
func GetInstance() DbDriver
Returns the database driver and on first call initializes it
type SessionStorage ¶
type SessionStorage interface {
SaveSession(session *model.Session) error
DeleteSession(session *model.Session) error
GetSession(id string) (*model.Session, error)
GetSessionsForUser(userId string) ([]*model.Session, error)
GetSessions() ([]*model.Session, error)
}
func GetSessionStorage ¶
func GetSessionStorage() SessionStorage
Returns the caching database driver and on first call initializes it
Click to show internal directories.
Click to hide internal directories.