Documentation
¶
Overview ¶
Package bbolt provides a BBolt database driver implementation for Apito project operations. It uses the ApitoBolt SDK (github.com/apito-io/apitoBolt) to provide a MongoDB-like interface on top of BBolt for project-level operations.
This driver follows the same patterns as the Mongo driver, using collection-per-model strategy for optimal performance and scalability.
Index ¶
- type BBoltDriver
- func (b *BBoltDriver) AddCollection(ctx context.Context, param *models.CommonSystemParams, ...) error
- func (b *BBoltDriver) AddDocumentToProject(ctx context.Context, param *models.CommonSystemParams, ...) (interface{}, error)
- func (b *BBoltDriver) AddFieldToModel(ctx context.Context, param *models.CommonSystemParams, isUpdate bool, ...) (*models.ModelType, error)
- func (b *BBoltDriver) AddModel(ctx context.Context, project *models.Project, model *models.ModelType) (*models.ProjectSchema, error)
- func (b *BBoltDriver) AddRelationFields(ctx context.Context, from *models.ConnectionType, to *models.ConnectionType) error
- func (b *BBoltDriver) AddTeamMetaInfo(ctx context.Context, users []*models.SystemUser) ([]*models.SystemUser, error)
- func (b *BBoltDriver) AggregateDocOfProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
- func (b *BBoltDriver) AggregateDocOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
- func (b *BBoltDriver) CheckCollectionExists(ctx context.Context, param *models.CommonSystemParams, ...) (bool, error)
- func (b *BBoltDriver) CheckOneToOneRelationExists(ctx context.Context, param *models.ConnectDisconnectParam) (bool, error)
- func (b *BBoltDriver) Close() error
- func (b *BBoltDriver) ConnectBuilder(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) ConvertModel(ctx context.Context, project *models.Project, modelName string) error
- func (b *BBoltDriver) CountDocOfProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
- func (b *BBoltDriver) CountDocOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
- func (b *BBoltDriver) CountMultiDocumentOfProject(ctx context.Context, param *models.CommonSystemParams, previewModel bool) (int, error)
- func (b *BBoltDriver) CreateIndex(ctx context.Context, param *models.CommonSystemParams, fieldName string, ...) error
- func (b *BBoltDriver) CreateRelation(ctx context.Context, projectId string, relation *models.EdgeRelation) error
- func (b *BBoltDriver) DeleteDocumentFromProject(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) DeleteDocumentRelation(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) DeleteDocumentsFromProject(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) DeleteProject(ctx context.Context, projectId string) error
- func (b *BBoltDriver) DeleteRelation(ctx context.Context, param *models.ConnectDisconnectParam, id string) error
- func (b *BBoltDriver) DeleteRelationDocuments(ctx context.Context, projectId string, from *models.ConnectionType, ...) error
- func (b *BBoltDriver) DisconnectBuilder(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) DropField(ctx context.Context, param *models.CommonSystemParams) error
- func (b *BBoltDriver) DropIndex(ctx context.Context, param *models.CommonSystemParams, indexName string) error
- func (b *BBoltDriver) DropModel(ctx context.Context, project *models.Project, modelName string) error
- func (b *BBoltDriver) GetAllRelationDocumentsOfSingleDocument(ctx context.Context, from string, arg *models.CommonSystemParams) (interface{}, error)
- func (b *BBoltDriver) GetLoggedInProjectUser(ctx context.Context, param *models.CommonSystemParams) (*types.DefaultDocumentStructure, error)
- func (b *BBoltDriver) GetProject(ctx context.Context, id string) (*models.Project, error)
- func (b *BBoltDriver) GetProjectUser(ctx context.Context, phone, email, projectId string) (*types.DefaultDocumentStructure, error)
- func (b *BBoltDriver) GetProjectUsers(ctx context.Context, projectId string, keys []string) (map[string]*types.DefaultDocumentStructure, error)
- func (b *BBoltDriver) GetRelationDocument(ctx context.Context, param *models.ConnectDisconnectParam) (*models.EdgeRelation, error)
- func (b *BBoltDriver) GetRelationIds(ctx context.Context, param *models.ConnectDisconnectParam) ([]string, error)
- func (b *BBoltDriver) GetSingleProjectDocument(ctx context.Context, param *models.CommonSystemParams) (*types.DefaultDocumentStructure, error)
- func (b *BBoltDriver) GetSingleProjectDocumentBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
- func (b *BBoltDriver) GetSingleProjectDocumentRevisions(ctx context.Context, param *models.CommonSystemParams) ([]*models.DocumentRevisionHistory, error)
- func (b *BBoltDriver) GetSingleRawDocumentFromProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
- func (b *BBoltDriver) GetWebHook(ctx context.Context, projectId, hookId string) (*models.Webhook, error)
- func (b *BBoltDriver) NewInsertableRelations(ctx context.Context, param *models.ConnectDisconnectParam) ([]string, error)
- func (b *BBoltDriver) Ping() error
- func (b *BBoltDriver) QueryMultiDocumentOfProject(ctx context.Context, param *models.CommonSystemParams) ([]*types.DefaultDocumentStructure, error)
- func (b *BBoltDriver) QueryMultiDocumentOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
- func (b *BBoltDriver) RelationshipDataLoader(ctx context.Context, param *models.CommonSystemParams, ...) (interface{}, error)
- func (b *BBoltDriver) RelationshipDataLoaderBytes(ctx context.Context, param *models.CommonSystemParams, ...) ([]byte, error)
- func (b *BBoltDriver) RenameField(ctx context.Context, oldFieldName string, repeatedFieldGroup string, ...) error
- func (b *BBoltDriver) RenameModel(ctx context.Context, project *models.Project, modelName, newName string) error
- func (b *BBoltDriver) SearchFunctions(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.ApitoFunction], error)
- func (b *BBoltDriver) SearchWebHooks(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Webhook], error)
- func (b *BBoltDriver) TransferProject(ctx context.Context, userId, from, to string) error
- func (b *BBoltDriver) UpdateDocumentOfProject(ctx context.Context, param *models.CommonSystemParams, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BBoltDriver ¶
type BBoltDriver struct {
Conf *models.Config
Store *apitobolt.Store
DriverCredential *models.DriverCredentials
// contains filtered or unexported fields
}
BBoltDriver implements ProjectDBInterface using ApitoBolt in a MongoDB-like fashion
func GetBBoltDriver ¶
func GetBBoltDriver(cfg *models.Config, driverCredentials *models.DriverCredentials) (*BBoltDriver, error)
GetBBoltDriver creates a new BBolt project driver instance
func (*BBoltDriver) AddCollection ¶
func (b *BBoltDriver) AddCollection(ctx context.Context, param *models.CommonSystemParams, isRelationCollection bool) error
AddCollection creates a new collection with indexes
func (*BBoltDriver) AddDocumentToProject ¶
func (b *BBoltDriver) AddDocumentToProject(ctx context.Context, param *models.CommonSystemParams, doc *types.DefaultDocumentStructure) (interface{}, error)
AddDocumentToProject adds a document to a project
func (*BBoltDriver) AddFieldToModel ¶
func (b *BBoltDriver) AddFieldToModel(ctx context.Context, param *models.CommonSystemParams, isUpdate bool, parent_field string) (*models.ModelType, error)
AddFieldToModel adds a new field to an existing model in the project
func (*BBoltDriver) AddModel ¶
func (b *BBoltDriver) AddModel(ctx context.Context, project *models.Project, model *models.ModelType) (*models.ProjectSchema, error)
AddModel adds a new model to the project
func (*BBoltDriver) AddRelationFields ¶
func (b *BBoltDriver) AddRelationFields(ctx context.Context, from *models.ConnectionType, to *models.ConnectionType) error
AddRelationFields creates a relation field (has one or has many) between models (no-op for BBolt)
func (*BBoltDriver) AddTeamMetaInfo ¶
func (b *BBoltDriver) AddTeamMetaInfo(ctx context.Context, users []*models.SystemUser) ([]*models.SystemUser, error)
AddTeamMetaInfo adds metadata information for a team in the project
func (*BBoltDriver) AggregateDocOfProject ¶
func (b *BBoltDriver) AggregateDocOfProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
AggregateDocOfProject aggregates the documents in the project
func (*BBoltDriver) AggregateDocOfProjectBytes ¶
func (b *BBoltDriver) AggregateDocOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
AggregateDocOfProjectBytes aggregates the documents and returns bytes
func (*BBoltDriver) CheckCollectionExists ¶
func (b *BBoltDriver) CheckCollectionExists(ctx context.Context, param *models.CommonSystemParams, isRelationCollection bool) (bool, error)
CheckCollectionExists checks if a collection exists
func (*BBoltDriver) CheckOneToOneRelationExists ¶
func (b *BBoltDriver) CheckOneToOneRelationExists(ctx context.Context, param *models.ConnectDisconnectParam) (bool, error)
CheckOneToOneRelationExists checks if a one-to-one relation exists
func (*BBoltDriver) Close ¶
func (b *BBoltDriver) Close() error
Close closes the BBolt database connection
func (*BBoltDriver) ConnectBuilder ¶
func (b *BBoltDriver) ConnectBuilder(ctx context.Context, param *models.CommonSystemParams) error
ConnectBuilder connects a builder to the project
func (*BBoltDriver) ConvertModel ¶
func (b *BBoltDriver) ConvertModel(ctx context.Context, project *models.Project, modelName string) error
ConvertModel converts a model in the project (no-op for BBolt)
func (*BBoltDriver) CountDocOfProject ¶
func (b *BBoltDriver) CountDocOfProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
CountDocOfProject counts the documents in the project
func (*BBoltDriver) CountDocOfProjectBytes ¶
func (b *BBoltDriver) CountDocOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
CountDocOfProjectBytes counts the documents and returns bytes
func (*BBoltDriver) CountMultiDocumentOfProject ¶
func (b *BBoltDriver) CountMultiDocumentOfProject(ctx context.Context, param *models.CommonSystemParams, previewModel bool) (int, error)
CountMultiDocumentOfProject counts documents in a project
func (*BBoltDriver) CreateIndex ¶
func (b *BBoltDriver) CreateIndex(ctx context.Context, param *models.CommonSystemParams, fieldName string, parent_field string) error
CreateIndex creates an index on a field
func (*BBoltDriver) CreateRelation ¶
func (b *BBoltDriver) CreateRelation(ctx context.Context, projectId string, relation *models.EdgeRelation) error
CreateRelation creates a relation in the project
func (*BBoltDriver) DeleteDocumentFromProject ¶
func (b *BBoltDriver) DeleteDocumentFromProject(ctx context.Context, param *models.CommonSystemParams) error
DeleteDocumentFromProject deletes a document from a project
func (*BBoltDriver) DeleteDocumentRelation ¶
func (b *BBoltDriver) DeleteDocumentRelation(ctx context.Context, param *models.CommonSystemParams) error
DeleteDocumentRelation deletes all relations or data in pivot tables from the project
func (*BBoltDriver) DeleteDocumentsFromProject ¶
func (b *BBoltDriver) DeleteDocumentsFromProject(ctx context.Context, param *models.CommonSystemParams) error
DeleteDocumentsFromProject deletes multiple documents from the project
func (*BBoltDriver) DeleteProject ¶
func (b *BBoltDriver) DeleteProject(ctx context.Context, projectId string) error
DeleteProject implements the deletion of a project
func (*BBoltDriver) DeleteRelation ¶
func (b *BBoltDriver) DeleteRelation(ctx context.Context, param *models.ConnectDisconnectParam, id string) error
DeleteRelation deletes a relation in the project
func (*BBoltDriver) DeleteRelationDocuments ¶
func (b *BBoltDriver) DeleteRelationDocuments(ctx context.Context, projectId string, from *models.ConnectionType, to *models.ConnectionType) error
DeleteRelationDocuments drops pivot tables, relation keys, or collection tables
func (*BBoltDriver) DisconnectBuilder ¶
func (b *BBoltDriver) DisconnectBuilder(ctx context.Context, param *models.CommonSystemParams) error
DisconnectBuilder disconnects a builder from the project
func (*BBoltDriver) DropField ¶
func (b *BBoltDriver) DropField(ctx context.Context, param *models.CommonSystemParams) error
DropField drops/deletes a field and its data from the project
func (*BBoltDriver) DropIndex ¶
func (b *BBoltDriver) DropIndex(ctx context.Context, param *models.CommonSystemParams, indexName string) error
DropIndex drops an index from a model (no-op for ApitoBolt)
func (*BBoltDriver) DropModel ¶
func (b *BBoltDriver) DropModel(ctx context.Context, project *models.Project, modelName string) error
DropModel drops a model from the project
func (*BBoltDriver) GetAllRelationDocumentsOfSingleDocument ¶
func (b *BBoltDriver) GetAllRelationDocumentsOfSingleDocument(ctx context.Context, from string, arg *models.CommonSystemParams) (interface{}, error)
GetAllRelationDocumentsOfSingleDocument retrieves all relation data of a single document by ID
func (*BBoltDriver) GetLoggedInProjectUser ¶
func (b *BBoltDriver) GetLoggedInProjectUser(ctx context.Context, param *models.CommonSystemParams) (*types.DefaultDocumentStructure, error)
GetLoggedInProjectUser retrieves the logged-in user profile for the project
func (*BBoltDriver) GetProject ¶
GetProject retrieves a project by ID (not part of ProjectDBInterface, but useful)
func (*BBoltDriver) GetProjectUser ¶
func (b *BBoltDriver) GetProjectUser(ctx context.Context, phone, email, projectId string) (*types.DefaultDocumentStructure, error)
GetProjectUser retrieves a user profile by phone, email, and project ID
func (*BBoltDriver) GetProjectUsers ¶
func (b *BBoltDriver) GetProjectUsers(ctx context.Context, projectId string, keys []string) (map[string]*types.DefaultDocumentStructure, error)
GetProjectUsers retrieves metadata for multiple users in the project
func (*BBoltDriver) GetRelationDocument ¶
func (b *BBoltDriver) GetRelationDocument(ctx context.Context, param *models.ConnectDisconnectParam) (*models.EdgeRelation, error)
GetRelationDocument retrieves a relation document by ID
func (*BBoltDriver) GetRelationIds ¶
func (b *BBoltDriver) GetRelationIds(ctx context.Context, param *models.ConnectDisconnectParam) ([]string, error)
GetRelationIds retrieves the IDs of every document related to a document
func (*BBoltDriver) GetSingleProjectDocument ¶
func (b *BBoltDriver) GetSingleProjectDocument(ctx context.Context, param *models.CommonSystemParams) (*types.DefaultDocumentStructure, error)
GetSingleProjectDocument gets a single document from a project
func (*BBoltDriver) GetSingleProjectDocumentBytes ¶
func (b *BBoltDriver) GetSingleProjectDocumentBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
GetSingleProjectDocumentBytes retrieves a single project document by ID as bytes
func (*BBoltDriver) GetSingleProjectDocumentRevisions ¶
func (b *BBoltDriver) GetSingleProjectDocumentRevisions(ctx context.Context, param *models.CommonSystemParams) ([]*models.DocumentRevisionHistory, error)
GetSingleProjectDocumentRevisions retrieves the revision history of a single project document by ID
func (*BBoltDriver) GetSingleRawDocumentFromProject ¶
func (b *BBoltDriver) GetSingleRawDocumentFromProject(ctx context.Context, param *models.CommonSystemParams) (interface{}, error)
GetSingleRawDocumentFromProject retrieves a single raw document from the project
func (*BBoltDriver) GetWebHook ¶
func (b *BBoltDriver) GetWebHook(ctx context.Context, projectId, hookId string) (*models.Webhook, error)
GetWebHook retrieves a webhook by project ID and hook ID
func (*BBoltDriver) NewInsertableRelations ¶
func (b *BBoltDriver) NewInsertableRelations(ctx context.Context, param *models.ConnectDisconnectParam) ([]string, error)
NewInsertableRelations retrieves new insertable relations in the project
func (*BBoltDriver) Ping ¶
func (b *BBoltDriver) Ping() error
Ping verifies the database connection is alive
func (*BBoltDriver) QueryMultiDocumentOfProject ¶
func (b *BBoltDriver) QueryMultiDocumentOfProject(ctx context.Context, param *models.CommonSystemParams) ([]*types.DefaultDocumentStructure, error)
QueryMultiDocumentOfProject retrieves multiple documents from a project
func (*BBoltDriver) QueryMultiDocumentOfProjectBytes ¶
func (b *BBoltDriver) QueryMultiDocumentOfProjectBytes(ctx context.Context, param *models.CommonSystemParams) ([]byte, error)
QueryMultiDocumentOfProjectBytes queries multiple documents and returns bytes
func (*BBoltDriver) RelationshipDataLoader ¶
func (b *BBoltDriver) RelationshipDataLoader(ctx context.Context, param *models.CommonSystemParams, connection map[string]interface{}) (interface{}, error)
RelationshipDataLoader loads relationship data for the project
func (*BBoltDriver) RelationshipDataLoaderBytes ¶
func (b *BBoltDriver) RelationshipDataLoaderBytes(ctx context.Context, param *models.CommonSystemParams, connection map[string]interface{}) ([]byte, error)
RelationshipDataLoaderBytes loads relationship data for the project and returns it as bytes
func (*BBoltDriver) RenameField ¶
func (b *BBoltDriver) RenameField(ctx context.Context, oldFieldName string, repeatedFieldGroup string, param *models.CommonSystemParams) error
RenameField renames a field in a model along with its data key
func (*BBoltDriver) RenameModel ¶
func (b *BBoltDriver) RenameModel(ctx context.Context, project *models.Project, modelName, newName string) error
RenameModel renames a model in the project
func (*BBoltDriver) SearchFunctions ¶
func (b *BBoltDriver) SearchFunctions(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.ApitoFunction], error)
SearchFunctions lists all the cloud functions for a given project
func (*BBoltDriver) SearchWebHooks ¶
func (b *BBoltDriver) SearchWebHooks(ctx context.Context, param *models.CommonSystemParams) (*models.SearchResponse[models.Webhook], error)
SearchWebHooks lists all the webhooks for a given project
func (*BBoltDriver) TransferProject ¶
func (b *BBoltDriver) TransferProject(ctx context.Context, userId, from, to string) error
TransferProject transfers a project from one user to another
func (*BBoltDriver) UpdateDocumentOfProject ¶
func (b *BBoltDriver) UpdateDocumentOfProject(ctx context.Context, param *models.CommonSystemParams, doc *types.DefaultDocumentStructure, replace bool) error
UpdateDocumentOfProject updates a document in a project