Documentation
¶
Overview ¶
Package bbolt provides a BBolt database driver implementation for the Apito system. It uses the ApitoBolt SDK (github.com/apito-io/apitoBolt) to provide a MongoDB-like interface on top of BBolt for system-level operations like user management, project management, team management, webhooks, audit logs, and more.
Index ¶
- type BBoltSystemDriver
- func (d *BBoltSystemDriver) AddATeamMemberToProject(ctx context.Context, req *models.TeamMemberAddRequest) error
- func (d *BBoltSystemDriver) AddSystemUserMetaInfo(ctx context.Context, doc *types.DefaultDocumentStructure) (*types.DefaultDocumentStructure, error)
- func (d *BBoltSystemDriver) AddTeamMetaInfo(ctx context.Context, docs []*models.SystemUser) ([]*models.SystemUser, error)
- func (d *BBoltSystemDriver) AddWebhookToProject(ctx context.Context, doc *models.Webhook) (*models.Webhook, error)
- func (d *BBoltSystemDriver) AssignProjectToOrganization(ctx context.Context, orgId, userId, projectId string) error
- func (d *BBoltSystemDriver) AssignTeamToOrganization(ctx context.Context, orgId, userId, teamId string) error
- func (d *BBoltSystemDriver) BackupDatabase(backupPath string) error
- func (d *BBoltSystemDriver) BlacklistAToken(ctx context.Context, token map[string]interface{}) error
- func (d *BBoltSystemDriver) CheckProjectName(ctx context.Context, name string) error
- func (d *BBoltSystemDriver) CheckProjectWithRoles(ctx context.Context, userId, projectId string) (*models.ProjectWithRoles, error)
- func (d *BBoltSystemDriver) CheckTeamMemberExists(ctx context.Context, projectId string, memberID string) error
- func (d *BBoltSystemDriver) CheckTokenBlacklisted(ctx context.Context, tokenId string) error
- func (d *BBoltSystemDriver) Close() error
- func (d *BBoltSystemDriver) CountProjectUsersByRole(ctx context.Context, projectID string) (map[string]int, error)
- func (d *BBoltSystemDriver) CreateOrganization(ctx context.Context, org *models.Organization) (*models.Organization, error)
- func (d *BBoltSystemDriver) CreateProject(ctx context.Context, userId string, project *models.Project) (*models.Project, error)
- func (d *BBoltSystemDriver) CreateSchemaOperation(ctx context.Context, op *models.SchemaOperation) error
- func (d *BBoltSystemDriver) CreateSystemUser(ctx context.Context, user *models.SystemUser) (*models.SystemUser, error)
- func (d *BBoltSystemDriver) CreateTeam(ctx context.Context, team *models.Team) (*models.Team, error)
- func (d *BBoltSystemDriver) CreateUser(ctx context.Context, user *models.User) (*models.User, error)
- func (d *BBoltSystemDriver) DeleteModelType(ctx context.Context, projectID, modelName string) error
- func (d *BBoltSystemDriver) DeleteProjectFromSystem(ctx context.Context, projectId string) error
- func (d *BBoltSystemDriver) DeleteUser(ctx context.Context, projectID, userID string) error
- func (d *BBoltSystemDriver) DeleteWebhook(ctx context.Context, projectId, hookId string) error
- func (d *BBoltSystemDriver) EnsureSystemBootstrap(ctx context.Context) error
- func (d *BBoltSystemDriver) FindOrganizationAdmin(ctx context.Context, orgId string) (*models.SystemUser, error)
- func (d *BBoltSystemDriver) FindUserOrganizations(ctx context.Context, userId string) ([]*models.Organization, error)
- func (d *BBoltSystemDriver) FindUserProjects(ctx context.Context, userId string) ([]*models.Project, error)
- func (d *BBoltSystemDriver) FindUserProjectsWithRoles(ctx context.Context, userId string) ([]*models.ProjectWithRoles, error)
- func (d *BBoltSystemDriver) FindUserTeams(ctx context.Context, userId string) ([]*models.Team, error)
- func (d *BBoltSystemDriver) GetDatabaseStats() (map[string]interface{}, error)
- func (d *BBoltSystemDriver) GetOrganizations(ctx context.Context, userId string) (*models.SearchResponse[models.Organization], error)
- func (d *BBoltSystemDriver) GetProject(ctx context.Context, id string) (*models.Project, error)
- func (d *BBoltSystemDriver) GetProjectTeams(ctx context.Context, projectId string) (*models.Team, error)
- func (d *BBoltSystemDriver) GetProjects(ctx context.Context, keys []string) ([]*models.Project, error)
- func (d *BBoltSystemDriver) GetSchemaOperation(ctx context.Context, id string) (*models.SchemaOperation, error)
- func (d *BBoltSystemDriver) GetSystemUser(ctx context.Context, id string) (*models.SystemUser, error)
- func (d *BBoltSystemDriver) GetSystemUserByEmail(ctx context.Context, email string) (*models.SystemUser, error)
- func (d *BBoltSystemDriver) GetSystemUsers(ctx context.Context, keys []string) ([]*models.SystemUser, error)
- func (d *BBoltSystemDriver) GetTeams(ctx context.Context, userId string) ([]*models.Team, error)
- func (d *BBoltSystemDriver) GetTeamsMembers(ctx context.Context, projectId string) ([]*models.SystemUser, error)
- func (d *BBoltSystemDriver) GetUser(ctx context.Context, projectID, userID string) (*models.User, error)
- func (d *BBoltSystemDriver) GetUserByUsername(ctx context.Context, projectID, username string) (*models.User, error)
- func (d *BBoltSystemDriver) GetWebHook(ctx context.Context, projectId, hookId string) (*models.Webhook, error)
- func (d *BBoltSystemDriver) ListAllProjects(ctx context.Context, userId string) ([]*models.Project, error)
- func (d *BBoltSystemDriver) ListAllUsers(ctx context.Context) ([]*models.SystemUser, error)
- func (d *BBoltSystemDriver) ListSchemaOperationsByStatus(ctx context.Context, projectID string, statuses []string, limit int) ([]*models.SchemaOperation, error)
- func (d *BBoltSystemDriver) ListTeams(ctx context.Context, projectId string) ([]*models.SystemUser, error)
- func (d *BBoltSystemDriver) ListUsersByEmail(ctx context.Context, projectID, email string) ([]*models.User, error)
- func (d *BBoltSystemDriver) ListUsersByGoogleSub(ctx context.Context, projectID, googleSub string) ([]*models.User, error)
- func (d *BBoltSystemDriver) ListUsersByPhone(ctx context.Context, projectID, phone string) ([]*models.User, error)
- func (d *BBoltSystemDriver) PersistProjectModelTypes(ctx context.Context, projectID string, schemaModels []*models.ModelType) error
- func (d *BBoltSystemDriver) RemoveATeamFromOrganization(ctx context.Context, orgId, userId, teamId string) error
- func (d *BBoltSystemDriver) RemoveATeamMemberFromProject(ctx context.Context, projectId string, memberID string) error
- func (d *BBoltSystemDriver) RemoveProjectFromOrganization(ctx context.Context, orgId, userId, projectId string) error
- func (d *BBoltSystemDriver) RunMigration(ctx context.Context) error
- func (d *BBoltSystemDriver) SaveAuditLog(ctx context.Context, auditLog *models.AuditLogs) error
- func (d *BBoltSystemDriver) SaveProjectAuthenticationSettings(ctx context.Context, projectID string, auth *models.AuthenticationSettings) error
- func (d *BBoltSystemDriver) SaveProjectStorageSettings(ctx context.Context, projectID string, storage *models.StorageSettings) error
- func (d *BBoltSystemDriver) SaveRawData(ctx context.Context, collectionName string, data map[string]interface{}) error
- func (d *BBoltSystemDriver) SearchAuditLogs(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.AuditLogs], error)
- func (d *BBoltSystemDriver) SearchFunctions(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.ApitoFunction], error)
- func (d *BBoltSystemDriver) SearchProjectUsers(ctx context.Context, projectID, q string, limit, offset int) ([]*models.User, int, error)
- func (d *BBoltSystemDriver) SearchProjects(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Project], error)
- func (d *BBoltSystemDriver) SearchResource(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[any], error)
- func (d *BBoltSystemDriver) SearchSystemUsers(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.SystemUser], error)
- func (d *BBoltSystemDriver) SearchWebHooks(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Webhook], error)
- func (d *BBoltSystemDriver) TouchProjectUpdatedAt(ctx context.Context, projectID string) error
- func (d *BBoltSystemDriver) TransferSchema(ctx context.Context, from, to string) error
- func (d *BBoltSystemDriver) UpdateProject(ctx context.Context, project *models.Project, replace bool) error
- func (d *BBoltSystemDriver) UpdateSchemaOperation(ctx context.Context, op *models.SchemaOperation) error
- func (d *BBoltSystemDriver) UpdateSystemUser(ctx context.Context, user *models.SystemUser, replace bool) error
- func (d *BBoltSystemDriver) UpdateUser(ctx context.Context, user *models.User) error
- func (d *BBoltSystemDriver) UpsertModelType(ctx context.Context, projectID string, mt *models.ModelType) error
- type MigrationStatus
- type TeamMembership
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BBoltSystemDriver ¶
type BBoltSystemDriver struct {
DB *apitobolt.Store
CacheDriver oci.CacheDBInterface
// contains filtered or unexported fields
}
func GetSystemBBoltDriver ¶
func GetSystemBBoltDriver(cfg *models.Config, driverCred *models.DriverCredentials, cacheDriver oci.CacheDBInterface) (*BBoltSystemDriver, error)
func (*BBoltSystemDriver) AddATeamMemberToProject ¶
func (d *BBoltSystemDriver) AddATeamMemberToProject(ctx context.Context, req *models.TeamMemberAddRequest) error
func (*BBoltSystemDriver) AddSystemUserMetaInfo ¶
func (d *BBoltSystemDriver) AddSystemUserMetaInfo(ctx context.Context, doc *types.DefaultDocumentStructure) (*types.DefaultDocumentStructure, error)
AddSystemUserMetaInfo is deprecated according to interface comments
func (*BBoltSystemDriver) AddTeamMetaInfo ¶
func (d *BBoltSystemDriver) AddTeamMetaInfo(ctx context.Context, docs []*models.SystemUser) ([]*models.SystemUser, error)
func (*BBoltSystemDriver) AddWebhookToProject ¶
func (*BBoltSystemDriver) AssignProjectToOrganization ¶
func (d *BBoltSystemDriver) AssignProjectToOrganization(ctx context.Context, orgId, userId, projectId string) error
func (*BBoltSystemDriver) AssignTeamToOrganization ¶
func (d *BBoltSystemDriver) AssignTeamToOrganization(ctx context.Context, orgId, userId, teamId string) error
func (*BBoltSystemDriver) BackupDatabase ¶
func (d *BBoltSystemDriver) BackupDatabase(backupPath string) error
Helper function to backup database
func (*BBoltSystemDriver) BlacklistAToken ¶
func (d *BBoltSystemDriver) BlacklistAToken(ctx context.Context, token map[string]interface{}) error
func (*BBoltSystemDriver) CheckProjectName ¶
func (d *BBoltSystemDriver) CheckProjectName(ctx context.Context, name string) error
func (*BBoltSystemDriver) CheckProjectWithRoles ¶
func (d *BBoltSystemDriver) CheckProjectWithRoles(ctx context.Context, userId, projectId string) (*models.ProjectWithRoles, error)
func (*BBoltSystemDriver) CheckTeamMemberExists ¶
func (*BBoltSystemDriver) CheckTokenBlacklisted ¶
func (d *BBoltSystemDriver) CheckTokenBlacklisted(ctx context.Context, tokenId string) error
func (*BBoltSystemDriver) Close ¶
func (d *BBoltSystemDriver) Close() error
func (*BBoltSystemDriver) CountProjectUsersByRole ¶
func (*BBoltSystemDriver) CreateOrganization ¶
func (d *BBoltSystemDriver) CreateOrganization(ctx context.Context, org *models.Organization) (*models.Organization, error)
func (*BBoltSystemDriver) CreateProject ¶
func (*BBoltSystemDriver) CreateSchemaOperation ¶
func (d *BBoltSystemDriver) CreateSchemaOperation(ctx context.Context, op *models.SchemaOperation) error
func (*BBoltSystemDriver) CreateSystemUser ¶
func (d *BBoltSystemDriver) CreateSystemUser(ctx context.Context, user *models.SystemUser) (*models.SystemUser, error)
func (*BBoltSystemDriver) CreateTeam ¶
func (*BBoltSystemDriver) CreateUser ¶
func (*BBoltSystemDriver) DeleteModelType ¶
func (d *BBoltSystemDriver) DeleteModelType(ctx context.Context, projectID, modelName string) error
DeleteModelType removes one model from the embedded schema.
func (*BBoltSystemDriver) DeleteProjectFromSystem ¶
func (d *BBoltSystemDriver) DeleteProjectFromSystem(ctx context.Context, projectId string) error
func (*BBoltSystemDriver) DeleteUser ¶
func (d *BBoltSystemDriver) DeleteUser(ctx context.Context, projectID, userID string) error
func (*BBoltSystemDriver) DeleteWebhook ¶
func (d *BBoltSystemDriver) DeleteWebhook(ctx context.Context, projectId, hookId string) error
func (*BBoltSystemDriver) EnsureSystemBootstrap ¶
func (d *BBoltSystemDriver) EnsureSystemBootstrap(ctx context.Context) error
EnsureSystemBootstrap creates default admin, then default team/org/project via junction collections.
func (*BBoltSystemDriver) FindOrganizationAdmin ¶
func (d *BBoltSystemDriver) FindOrganizationAdmin(ctx context.Context, orgId string) (*models.SystemUser, error)
func (*BBoltSystemDriver) FindUserOrganizations ¶
func (d *BBoltSystemDriver) FindUserOrganizations(ctx context.Context, userId string) ([]*models.Organization, error)
func (*BBoltSystemDriver) FindUserProjects ¶
func (*BBoltSystemDriver) FindUserProjectsWithRoles ¶
func (d *BBoltSystemDriver) FindUserProjectsWithRoles(ctx context.Context, userId string) ([]*models.ProjectWithRoles, error)
func (*BBoltSystemDriver) FindUserTeams ¶
func (d *BBoltSystemDriver) FindUserTeams(ctx context.Context, userId string) ([]*models.Team, error)
FindUserTeams retrieves all teams for a given user
func (*BBoltSystemDriver) GetDatabaseStats ¶
func (d *BBoltSystemDriver) GetDatabaseStats() (map[string]interface{}, error)
Helper function to get database statistics
func (*BBoltSystemDriver) GetOrganizations ¶
func (d *BBoltSystemDriver) GetOrganizations(ctx context.Context, userId string) (*models.SearchResponse[models.Organization], error)
func (*BBoltSystemDriver) GetProject ¶
func (*BBoltSystemDriver) GetProjectTeams ¶
func (*BBoltSystemDriver) GetProjects ¶
func (*BBoltSystemDriver) GetSchemaOperation ¶
func (d *BBoltSystemDriver) GetSchemaOperation(ctx context.Context, id string) (*models.SchemaOperation, error)
func (*BBoltSystemDriver) GetSystemUser ¶
func (d *BBoltSystemDriver) GetSystemUser(ctx context.Context, id string) (*models.SystemUser, error)
func (*BBoltSystemDriver) GetSystemUserByEmail ¶
func (d *BBoltSystemDriver) GetSystemUserByEmail(ctx context.Context, email string) (*models.SystemUser, error)
func (*BBoltSystemDriver) GetSystemUsers ¶
func (d *BBoltSystemDriver) GetSystemUsers(ctx context.Context, keys []string) ([]*models.SystemUser, error)
func (*BBoltSystemDriver) GetTeamsMembers ¶
func (d *BBoltSystemDriver) GetTeamsMembers(ctx context.Context, projectId string) ([]*models.SystemUser, error)
func (*BBoltSystemDriver) GetUserByUsername ¶
func (*BBoltSystemDriver) GetWebHook ¶
func (*BBoltSystemDriver) ListAllProjects ¶
func (d *BBoltSystemDriver) ListAllProjects(ctx context.Context, userId string) ([]*models.Project, error)
ListAllProjects returns all projects (admin only)
func (*BBoltSystemDriver) ListAllUsers ¶
func (d *BBoltSystemDriver) ListAllUsers(ctx context.Context) ([]*models.SystemUser, error)
func (*BBoltSystemDriver) ListSchemaOperationsByStatus ¶
func (d *BBoltSystemDriver) ListSchemaOperationsByStatus(ctx context.Context, projectID string, statuses []string, limit int) ([]*models.SchemaOperation, error)
func (*BBoltSystemDriver) ListTeams ¶
func (d *BBoltSystemDriver) ListTeams(ctx context.Context, projectId string) ([]*models.SystemUser, error)
ListTeams retrieves teams for a project
func (*BBoltSystemDriver) ListUsersByEmail ¶
func (*BBoltSystemDriver) ListUsersByGoogleSub ¶
func (*BBoltSystemDriver) ListUsersByPhone ¶
func (*BBoltSystemDriver) PersistProjectModelTypes ¶
func (d *BBoltSystemDriver) PersistProjectModelTypes(ctx context.Context, projectID string, schemaModels []*models.ModelType) error
PersistProjectModelTypes is a no-op for BBolt; schema is stored on the project record via UpdateProject.
func (*BBoltSystemDriver) RemoveATeamFromOrganization ¶
func (d *BBoltSystemDriver) RemoveATeamFromOrganization(ctx context.Context, orgId, userId, teamId string) error
func (*BBoltSystemDriver) RemoveATeamMemberFromProject ¶
func (*BBoltSystemDriver) RemoveProjectFromOrganization ¶
func (d *BBoltSystemDriver) RemoveProjectFromOrganization(ctx context.Context, orgId, userId, projectId string) error
func (*BBoltSystemDriver) RunMigration ¶
func (d *BBoltSystemDriver) RunMigration(ctx context.Context) error
RunMigration creates the necessary collections/buckets for the system with migration tracking
func (*BBoltSystemDriver) SaveAuditLog ¶
func (*BBoltSystemDriver) SaveProjectAuthenticationSettings ¶
func (d *BBoltSystemDriver) SaveProjectAuthenticationSettings(ctx context.Context, projectID string, auth *models.AuthenticationSettings) error
func (*BBoltSystemDriver) SaveProjectStorageSettings ¶
func (d *BBoltSystemDriver) SaveProjectStorageSettings(ctx context.Context, projectID string, storage *models.StorageSettings) error
func (*BBoltSystemDriver) SaveRawData ¶
func (*BBoltSystemDriver) SearchAuditLogs ¶
func (d *BBoltSystemDriver) SearchAuditLogs(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.AuditLogs], error)
func (*BBoltSystemDriver) SearchFunctions ¶
func (d *BBoltSystemDriver) SearchFunctions(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.ApitoFunction], error)
func (*BBoltSystemDriver) SearchProjectUsers ¶
func (*BBoltSystemDriver) SearchProjects ¶
func (d *BBoltSystemDriver) SearchProjects(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Project], error)
func (*BBoltSystemDriver) SearchResource ¶
func (d *BBoltSystemDriver) SearchResource(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[any], error)
SearchResource searches for any type of resource
func (*BBoltSystemDriver) SearchSystemUsers ¶
func (d *BBoltSystemDriver) SearchSystemUsers(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.SystemUser], error)
func (*BBoltSystemDriver) SearchWebHooks ¶
func (d *BBoltSystemDriver) SearchWebHooks(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Webhook], error)
func (*BBoltSystemDriver) TouchProjectUpdatedAt ¶
func (d *BBoltSystemDriver) TouchProjectUpdatedAt(ctx context.Context, projectID string) error
TouchProjectUpdatedAt bumps updated_at on the stored project record.
func (*BBoltSystemDriver) TransferSchema ¶
func (d *BBoltSystemDriver) TransferSchema(ctx context.Context, from, to string) error
func (*BBoltSystemDriver) UpdateProject ¶
func (*BBoltSystemDriver) UpdateSchemaOperation ¶
func (d *BBoltSystemDriver) UpdateSchemaOperation(ctx context.Context, op *models.SchemaOperation) error
func (*BBoltSystemDriver) UpdateSystemUser ¶
func (d *BBoltSystemDriver) UpdateSystemUser(ctx context.Context, user *models.SystemUser, replace bool) error
func (*BBoltSystemDriver) UpdateUser ¶
func (*BBoltSystemDriver) UpsertModelType ¶
func (d *BBoltSystemDriver) UpsertModelType(ctx context.Context, projectID string, mt *models.ModelType) error
UpsertModelType merges one model into the project record and saves.
type MigrationStatus ¶
type MigrationStatus struct {
ID string `json:"id"`
XKey string `json:"_key"`
Completed bool `json:"completed"`
Version string `json:"version"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
MigrationStatus represents the migration state in the database
type TeamMembership ¶
type TeamMembership struct {
ID string `json:"id"`
XKey string `json:"_key"`
ProjectID string `json:"project_id"`
UserID string `json:"user_id"`
Role string `json:"role"`
Permissions []string `json:"permissions"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
TeamMembership represents a user's membership in a project team