Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrTemplateInUse = errors.New("template in use")
)
Functions ¶
func IsSessionDriverShared ¶
func IsSessionDriverShared() bool
IsSessionDriverShared returns true if the session driver uses shared storage e.g. Redis
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)
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.