Documentation
¶
Index ¶
- Constants
- func UnixPortGeneration() string
- type CodedError
- type ConvertedGraphQLSchemas
- type ErrorDetail
- type ErrorLine
- type GraphQLServer
- func (s *GraphQLServer) AddModelToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) AggregateResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ApitoFunctionResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) Authorize() echo.MiddlewareFunc
- func (s *GraphQLServer) BuildAContainer(ctx context.Context, projectId string, port string) error
- func (s *GraphQLServer) BuildADockerImage(ctx context.Context, projectId string) error
- func (s *GraphQLServer) BuildServerQueriesAndMutations()
- func (s *GraphQLServer) BuildSystemParam(i echo.Context, project *models.Project) (*models.CommonSystemParams, error)
- func (s *GraphQLServer) CacheGraphQLFieldsGeneration(ctx context.Context, projectId string, modelName string, val interface{}) error
- func (s *GraphQLServer) CheckHashiCorpPluginExists(dir string) (int32, error)
- func (s *GraphQLServer) CheckHashiCorpPluginExistsWithRegistry(dir string, _hashiCorpPlugins map[string]*protobuff.PluginDetails) (int32, error)
- func (s *GraphQLServer) ConnectSupportResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) CountResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) CreateConnectionTypeResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) CreateWebHookResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DataLoaderFn(ctx context.Context, keys dataloader.Keys) []*dataloader.Result
- func (s *GraphQLServer) DeleteAPIKeyResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteAPITokenResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteFieldTypeResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteFunctionResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteRoleResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DeleteWebHookResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) DuplicateModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) EventSubscription(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ExpireGraphQLFieldCache(ctx context.Context, projectId string, modelName string) error
- func (s *GraphQLServer) ExpireGraphQLProjectCache(ctx context.Context, projectId string) error
- func (s *GraphQLServer) FilterRunningContainers(ctx context.Context, projectId string) (*types.Container, error)
- func (s *GraphQLServer) GatherFileInfo(image []byte) (*models.FileDetails, error)
- func (s *GraphQLServer) GenerateAPIKeyResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GenerateAPITokenResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GenerateTenantTokenResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetApplicationCache(router echo.Context) (*models.ApplicationCache, error)
- func (s *GraphQLServer) GetCacheGraphQLFieldsGeneration(ctx context.Context, projectId string, modelName string) (*QueryBuilderInformation, error)
- func (s *GraphQLServer) GetCurrentProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetFunctionProvider() ([]string, error)
- func (s *GraphQLServer) GetLoggedInUserFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetMicroServicePort(ctx context.Context, id string) (string, error)
- func (s *GraphQLServer) GetOrganizationsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetPID(ctx context.Context, projectId string) (string, error)
- func (s *GraphQLServer) GetPhotosAndCountInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetProjectTenantsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) GetStorageProvider() ([]string, error)
- func (s *GraphQLServer) GetTeamsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) HandleApitoFunction(ctx context.Context, cache *models.ApplicationCache, fnName string, ...) (interface{}, *models.ApitoFunction, error)
- func (s *GraphQLServer) HandlePayloadFormattingOld(ctx context.Context, param *models.CommonSystemParams, ...) (map[string]interface{}, map[string]interface{}, error)
- func (s *GraphQLServer) LaunchPluginByLanguage(pluginDetails *protobuff.PluginDetails, pluginDir string) (*exec.Cmd, error)
- func (s *GraphQLServer) ListAllProjectsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListAuditLogsFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListAvailableFunctionsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListDetailedModelsDataCountResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListDetailedModelsDataInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListDetailedModelsDataProxyResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListDockerImages(ctx context.Context) ([]string, error)
- func (s *GraphQLServer) ListDocumentRevisionInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListExecutableFunctionsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListModelsInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListProjectTeams(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListProjectsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListRoleScopesResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListRunningContainers(ctx context.Context, listAll bool, state string) ([]types.Container, error)
- func (s *GraphQLServer) ListSingleModelDataInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListSingleModelHasManyResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ListWebHooksResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) LoadHashiCorpPlugin(ctx context.Context, _dir string, _pluginDetails *protobuff.PluginDetails) (*protobuff.PluginDetails, error)
- func (s *GraphQLServer) LoadHashiCorpPlugins(ctx context.Context) error
- func (s *GraphQLServer) LoadPlugins(ctx context.Context) error
- func (s *GraphQLServer) LoadProjectCache(ctx context.Context, projectID string) (*models.Project, error)
- func (s *GraphQLServer) LoadProjectSpecificPlugins(ctx context.Context, cache *models.ApplicationCache) error
- func (s *GraphQLServer) LoadedFunctionProviderResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ModelFieldOperationResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) MultiResourceResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) MutationResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) NewParam(_param *models.CommonSystemParams) *models.CommonSystemParams
- func (s *GraphQLServer) PrepareFileInfo(router echo.Context, projectID string) (*models.FileDetails, *bytes.Buffer, error)
- func (s *GraphQLServer) PrintAllPluginRoutes()
- func (s *GraphQLServer) ProjectFunctionsInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ProjectModelInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) ProjectsPlugins(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) PublicFunctionRouteAuthorize() echo.MiddlewareFunc
- func (s *GraphQLServer) PublishSystemMessage(ctx context.Context, userID string, data *models.SubscriptionEvent) error
- func (s *GraphQLServer) RearrangeFieldOfModelResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) RestartContainer(ctx context.Context, containerId string) error
- func (s *GraphQLServer) RunContainerInBackground(ctx context.Context, projectId string) error
- func (s *GraphQLServer) RunModelMigrationsResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) SavePID(ctx context.Context, projectId, pid string) error
- func (s *GraphQLServer) SearchApitoUsersResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) SendEvent(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) SingleResourceResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) SystemUserMetaLoader(ctx context.Context, keys dataloader.Keys) []*dataloader.Result
- func (s *GraphQLServer) UpdateApplicationCache(ctx context.Context, projectID string)
- func (s *GraphQLServer) UpdateModelResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpdateProfileResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpdateProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpsertFieldToModelResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpsertFunctionToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpsertModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpsertPluginResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) UpsertRoleToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
- func (s *GraphQLServer) WaitForPluginsToLoad()
- type GraphQLSubscriptions
- type PluginHealthStatus
- type PluginMonitor
- type QueryBuilderInformation
- type TenantsResponse
Constants ¶
const ( HEALTH_CHECK_INTERVAL = 30 * time.Second // Check plugin health every 30 seconds RESTART_BACKOFF_BASE = 1 * time.Second // Base backoff time between restart attempts MAX_RESTART_ATTEMPTS = 5 // Maximum restart attempts before marking as failed RESTART_BACKOFF_MULTIPLIER = 2 // Exponential backoff multiplier PLUGIN_STARTUP_TIMEOUT = 10 * time.Second // Timeout for plugin startup )
Plugin health monitoring constants
const DEFAULT_INTERNAL_PREFIX = "ext"
const PROJECT_PLUGIN_PREFIX = "plg"
Variables ¶
This section is empty.
Functions ¶
func UnixPortGeneration ¶
func UnixPortGeneration() string
Types ¶
type CodedError ¶
type CodedError struct { Code int `json:"code"` Message string `json:"message"` Details string `json:"details,omitempty"` }
CodedError represents an error with an HTTP status code (mirrors SDK structure)
func (*CodedError) Error ¶
func (e *CodedError) Error() string
type ConvertedGraphQLSchemas ¶
ConvertedGraphQLSchemas holds converted GraphQL fields
type ErrorDetail ¶
type ErrorDetail struct {
Message string `json:"message"`
}
type ErrorLine ¶
type ErrorLine struct { Error string `json:"error"` ErrorDetail ErrorDetail `json:"errorDetail"` }
type GraphQLServer ¶
type GraphQLServer struct { sync.Mutex Cfg *models.Config SystemDriver interfaces.ApitoSystemDB SystemDriverReadyChan chan interfaces.ApitoSystemDB PrivateSchemObjects *objects.SchemaObjects SystemDataloaders *dl.SystemDataloader SystemQueries graphql.Fields SystemQueriesChan chan *graphql.Fields SystemMutations graphql.Fields SystemMutationsChan chan *graphql.Fields GraphQLExecutor interfaces.GraphQLExecutorInterface BlankaTokenService *services.BrankaToken ApiKeyManager *services.APIKeyManager ApitoTokenService *services.ApitoTokenService JWTTokenService *services.JWTService //S3 *storage_driver.S3 AuthService services.AuthServiceInterface //JwtService *services.JWTService ProjectDBConnPools *sync.Map AwsConfig aws.Config ProjectCache interfaces.CacheDBInterface // for HashiCorp plugins only HashiCorpPluginCache map[string]*models.HashiCorpPluginCache PluginLoadingState map[string]bool // Track which plugins are currently being loaded PluginMonitor *PluginMonitor // Health monitoring and auto-restart for plugins InstalledPluginList []string InstalledHCPluginList []string ExtensionRouterList []string ExtensionRouter *echo.Group MainEchoInstance *echo.Echo // Reference to the main Echo instance for route introspection GraphQLSubscription *GraphQLSubscriptions PubSubService interfaces.PubSubServiceInterface KVService interfaces.KeyValueServiceInterface PluginManagerSwapper *hotswap.PluginManagerSwapper MicroServiceClient *sync.Map // contains filtered or unexported fields }
func BuildGraphQL ¶
func (*GraphQLServer) AddModelToProjectResolverFn ¶
func (s *GraphQLServer) AddModelToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) AggregateResolverFn ¶
func (s *GraphQLServer) AggregateResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ApitoFunctionResolverFn ¶
func (s *GraphQLServer) ApitoFunctionResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) Authorize ¶
func (s *GraphQLServer) Authorize() echo.MiddlewareFunc
func (*GraphQLServer) BuildAContainer ¶
func (*GraphQLServer) BuildADockerImage ¶
func (s *GraphQLServer) BuildADockerImage(ctx context.Context, projectId string) error
func (*GraphQLServer) BuildServerQueriesAndMutations ¶
func (s *GraphQLServer) BuildServerQueriesAndMutations()
func (*GraphQLServer) BuildSystemParam ¶
func (s *GraphQLServer) BuildSystemParam(i echo.Context, project *models.Project) (*models.CommonSystemParams, error)
func (*GraphQLServer) CacheGraphQLFieldsGeneration ¶
func (*GraphQLServer) CheckHashiCorpPluginExists ¶
func (s *GraphQLServer) CheckHashiCorpPluginExists(dir string) (int32, error)
func (*GraphQLServer) CheckHashiCorpPluginExistsWithRegistry ¶
func (s *GraphQLServer) CheckHashiCorpPluginExistsWithRegistry(dir string, _hashiCorpPlugins map[string]*protobuff.PluginDetails) (int32, error)
func (*GraphQLServer) ConnectSupportResolverFn ¶
func (s *GraphQLServer) ConnectSupportResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) CountResolverFn ¶
func (s *GraphQLServer) CountResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) CreateConnectionTypeResolverFn ¶
func (s *GraphQLServer) CreateConnectionTypeResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) CreateWebHookResolverFn ¶
func (s *GraphQLServer) CreateWebHookResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DataLoaderFn ¶
func (s *GraphQLServer) DataLoaderFn(ctx context.Context, keys dataloader.Keys) []*dataloader.Result
func (*GraphQLServer) DeleteAPIKeyResolverFn ¶
func (s *GraphQLServer) DeleteAPIKeyResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteAPITokenResolverFn ¶
func (s *GraphQLServer) DeleteAPITokenResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteFieldTypeResolverFn ¶
func (s *GraphQLServer) DeleteFieldTypeResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteFunctionResolverFn ¶
func (s *GraphQLServer) DeleteFunctionResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteModelDataFnFn ¶
func (s *GraphQLServer) DeleteModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteRoleResolverFn ¶
func (s *GraphQLServer) DeleteRoleResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DeleteWebHookResolverFn ¶
func (s *GraphQLServer) DeleteWebHookResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) DuplicateModelDataFnFn ¶
func (s *GraphQLServer) DuplicateModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) EventSubscription ¶
func (s *GraphQLServer) EventSubscription(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ExpireGraphQLFieldCache ¶
func (*GraphQLServer) ExpireGraphQLProjectCache ¶
func (s *GraphQLServer) ExpireGraphQLProjectCache(ctx context.Context, projectId string) error
func (*GraphQLServer) FilterRunningContainers ¶
func (*GraphQLServer) GatherFileInfo ¶
func (s *GraphQLServer) GatherFileInfo(image []byte) (*models.FileDetails, error)
upload
func (*GraphQLServer) GenerateAPIKeyResolverFn ¶
func (s *GraphQLServer) GenerateAPIKeyResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GenerateAPITokenResolverFn ¶
func (s *GraphQLServer) GenerateAPITokenResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GenerateTenantTokenResolverFn ¶
func (s *GraphQLServer) GenerateTenantTokenResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetApplicationCache ¶
func (s *GraphQLServer) GetApplicationCache(router echo.Context) (*models.ApplicationCache, error)
func (*GraphQLServer) GetCacheGraphQLFieldsGeneration ¶
func (s *GraphQLServer) GetCacheGraphQLFieldsGeneration(ctx context.Context, projectId string, modelName string) (*QueryBuilderInformation, error)
func (*GraphQLServer) GetCurrentProjectResolverFn ¶
func (s *GraphQLServer) GetCurrentProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetFunctionProvider ¶
func (s *GraphQLServer) GetFunctionProvider() ([]string, error)
func (*GraphQLServer) GetLoggedInUserFn ¶
func (s *GraphQLServer) GetLoggedInUserFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetMicroServicePort ¶
func (*GraphQLServer) GetOrganizationsResolverFn ¶
func (s *GraphQLServer) GetOrganizationsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetPhotosAndCountInfoResolverFn ¶
func (s *GraphQLServer) GetPhotosAndCountInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetProjectResolverFn ¶
func (s *GraphQLServer) GetProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetProjectTenantsResolverFn ¶
func (s *GraphQLServer) GetProjectTenantsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) GetStorageProvider ¶
func (s *GraphQLServer) GetStorageProvider() ([]string, error)
func (*GraphQLServer) GetTeamsResolverFn ¶
func (s *GraphQLServer) GetTeamsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) HandleApitoFunction ¶
func (s *GraphQLServer) HandleApitoFunction(ctx context.Context, cache *models.ApplicationCache, fnName string, args map[string]interface{}) (interface{}, *models.ApitoFunction, error)
func (*GraphQLServer) HandlePayloadFormattingOld ¶
func (s *GraphQLServer) HandlePayloadFormattingOld(ctx context.Context, param *models.CommonSystemParams, payload map[string]interface{}) (map[string]interface{}, map[string]interface{}, error)
func (*GraphQLServer) LaunchPluginByLanguage ¶
func (s *GraphQLServer) LaunchPluginByLanguage(pluginDetails *protobuff.PluginDetails, pluginDir string) (*exec.Cmd, error)
LaunchPluginByLanguage creates and returns the appropriate command based on plugin language TODO: This function needs a better way to handle:
- Plugin launch process isolation
- Resource management and cleanup
- Health monitoring and auto-restart
- Security sandboxing
- Docker-based plugin execution for better isolation
- Plugin lifecycle management (start, stop, restart, health checks)
- Multi-platform support (Windows, Linux, macOS)
- Plugin dependency management
- Crash recovery and automatic restart
- Resource limits (CPU, memory, file descriptors)
- Network isolation and security policies For now, this provides basic language-aware launching
func (*GraphQLServer) ListAllProjectsResolverFn ¶
func (s *GraphQLServer) ListAllProjectsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListAuditLogsFn ¶
func (s *GraphQLServer) ListAuditLogsFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListAvailableFunctionsResolverFn ¶
func (s *GraphQLServer) ListAvailableFunctionsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListDetailedModelsDataCountResolverFn ¶
func (s *GraphQLServer) ListDetailedModelsDataCountResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListDetailedModelsDataInfoResolverFn ¶
func (s *GraphQLServer) ListDetailedModelsDataInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListDetailedModelsDataProxyResolverFn ¶
func (s *GraphQLServer) ListDetailedModelsDataProxyResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListDockerImages ¶
func (s *GraphQLServer) ListDockerImages(ctx context.Context) ([]string, error)
func (*GraphQLServer) ListDocumentRevisionInfoResolverFn ¶
func (s *GraphQLServer) ListDocumentRevisionInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListExecutableFunctionsResolverFn ¶
func (s *GraphQLServer) ListExecutableFunctionsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListModelsInfoResolverFn ¶
func (s *GraphQLServer) ListModelsInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListProjectTeams ¶
func (s *GraphQLServer) ListProjectTeams(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListProjectsResolverFn ¶
func (s *GraphQLServer) ListProjectsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListRoleScopesResolverFn ¶
func (s *GraphQLServer) ListRoleScopesResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListRunningContainers ¶
func (*GraphQLServer) ListSingleModelDataInfoResolverFn ¶
func (s *GraphQLServer) ListSingleModelDataInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListSingleModelHasManyResolverFn ¶
func (s *GraphQLServer) ListSingleModelHasManyResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ListWebHooksResolverFn ¶
func (s *GraphQLServer) ListWebHooksResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) LoadHashiCorpPlugin ¶
func (s *GraphQLServer) LoadHashiCorpPlugin(ctx context.Context, _dir string, _pluginDetails *protobuff.PluginDetails) (*protobuff.PluginDetails, error)
func (*GraphQLServer) LoadHashiCorpPlugins ¶
func (s *GraphQLServer) LoadHashiCorpPlugins(ctx context.Context) error
func (*GraphQLServer) LoadPlugins ¶
func (s *GraphQLServer) LoadPlugins(ctx context.Context) error
func (*GraphQLServer) LoadProjectCache ¶
func (*GraphQLServer) LoadProjectSpecificPlugins ¶
func (s *GraphQLServer) LoadProjectSpecificPlugins(ctx context.Context, cache *models.ApplicationCache) error
LoadProjectSpecificPlugins loads HashiCorp plugins specific to a project into the ApplicationCache
func (*GraphQLServer) LoadedFunctionProviderResolverFn ¶
func (s *GraphQLServer) LoadedFunctionProviderResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ModelFieldOperationResolverFn ¶
func (s *GraphQLServer) ModelFieldOperationResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) MultiResourceResolverFn ¶
func (s *GraphQLServer) MultiResourceResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) MutationResolverFn ¶
func (s *GraphQLServer) MutationResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) NewParam ¶
func (s *GraphQLServer) NewParam(_param *models.CommonSystemParams) *models.CommonSystemParams
func (*GraphQLServer) PrepareFileInfo ¶
func (s *GraphQLServer) PrepareFileInfo(router echo.Context, projectID string) (*models.FileDetails, *bytes.Buffer, error)
func (*GraphQLServer) PrintAllPluginRoutes ¶
func (s *GraphQLServer) PrintAllPluginRoutes()
PrintAllPluginRoutes prints only plugin routes from both main Echo instance and extension router Plugin routes are identified by paths that start with HashiCorp plugin IDs (hc-*)
func (*GraphQLServer) ProjectFunctionsInfoResolverFn ¶
func (s *GraphQLServer) ProjectFunctionsInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ProjectModelInfoResolverFn ¶
func (s *GraphQLServer) ProjectModelInfoResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) ProjectsPlugins ¶
func (s *GraphQLServer) ProjectsPlugins(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) PublicFunctionRouteAuthorize ¶
func (s *GraphQLServer) PublicFunctionRouteAuthorize() echo.MiddlewareFunc
func (*GraphQLServer) PublishSystemMessage ¶
func (s *GraphQLServer) PublishSystemMessage(ctx context.Context, userID string, data *models.SubscriptionEvent) error
func (*GraphQLServer) RearrangeFieldOfModelResolverFn ¶
func (s *GraphQLServer) RearrangeFieldOfModelResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) RestartContainer ¶
func (s *GraphQLServer) RestartContainer(ctx context.Context, containerId string) error
func (*GraphQLServer) RunContainerInBackground ¶
func (s *GraphQLServer) RunContainerInBackground(ctx context.Context, projectId string) error
func (*GraphQLServer) RunModelMigrationsResolverFn ¶
func (s *GraphQLServer) RunModelMigrationsResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) SavePID ¶
func (s *GraphQLServer) SavePID(ctx context.Context, projectId, pid string) error
func (*GraphQLServer) SearchApitoUsersResolverFn ¶
func (s *GraphQLServer) SearchApitoUsersResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) SendEvent ¶
func (s *GraphQLServer) SendEvent(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) SingleResourceResolverFn ¶
func (s *GraphQLServer) SingleResourceResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) SystemUserMetaLoader ¶
func (s *GraphQLServer) SystemUserMetaLoader(ctx context.Context, keys dataloader.Keys) []*dataloader.Result
func (*GraphQLServer) UpdateApplicationCache ¶
func (s *GraphQLServer) UpdateApplicationCache(ctx context.Context, projectID string)
func (*GraphQLServer) UpdateModelResolverFn ¶
func (s *GraphQLServer) UpdateModelResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpdateProfileResolverFn ¶
func (s *GraphQLServer) UpdateProfileResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpdateProjectResolverFn ¶
func (s *GraphQLServer) UpdateProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (s *GraphQLServer) CreateProjectResolverFn(p graphql.ResolveParams) (interface{}, error) {
userId := param.UserId user, err := s.SystemDriver.GetSystemUser(userId) if err != nil { return nil, err } if user.AccountUsage == nil { user.AccountUsage = &models.AccountUsage{ XKey: userId, Id: userId, Type: "usage", NumberOfProject: utility.AvailableProjectLimit["free"], Limits: utility.DeveloperAccountPlan["free"], } } if user.AccountUsage != nil && (len(user.AccountUsage.Usages) >= int(user.AccountUsage.NumberOfProject)) { return nil, errors.New("You have reached the project limit creation. Please upgrade your plan") } projectName := p.Args["name"].(string) projectDescription := p.Args["description"].(string) project, err := s.SystemDriver.CreateProject( projectName, projectDescription, user.ID) if err != nil { return nil, err } // add the project info //user.Projects = append(user.Projects, projectId) err = s.SystemDriver.UpdateUser(user, false) if err != nil { return nil, err } return map[string]interface{}{ "id": project.ID, "name": project.ProjectName, "description": project.ProjectDescription, }, nil }
func (*GraphQLServer) UpsertFieldToModelResolverFn ¶
func (s *GraphQLServer) UpsertFieldToModelResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpsertFunctionToProjectResolverFn ¶
func (s *GraphQLServer) UpsertFunctionToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpsertModelDataFnFn ¶
func (s *GraphQLServer) UpsertModelDataFnFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpsertPluginResolverFn ¶
func (s *GraphQLServer) UpsertPluginResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) UpsertRoleToProjectResolverFn ¶
func (s *GraphQLServer) UpsertRoleToProjectResolverFn(p graphql.ResolveParams) (interface{}, error)
func (*GraphQLServer) WaitForPluginsToLoad ¶
func (s *GraphQLServer) WaitForPluginsToLoad()
WaitForPluginsToLoad waits for all plugins to finish loading
type GraphQLSubscriptions ¶
type GraphQLSubscriptions struct {
// contains filtered or unexported fields
}
func GetGraphQLSubscriptions ¶
func GetGraphQLSubscriptions() (*GraphQLSubscriptions, error)
type PluginHealthStatus ¶
type PluginHealthStatus struct { PluginID string IsHealthy bool LastHealthCheck time.Time RestartAttempts int LastRestartTime time.Time ConsecutiveFailures int Status string }
PluginHealthStatus represents the health status of a plugin
type PluginMonitor ¶
type PluginMonitor struct {
// contains filtered or unexported fields
}
PluginMonitor handles health monitoring and restart logic for plugins
func NewPluginMonitor ¶
func NewPluginMonitor(server *GraphQLServer) *PluginMonitor
NewPluginMonitor creates a new plugin monitor
func (*PluginMonitor) GetPluginHealthStatus ¶
func (pm *PluginMonitor) GetPluginHealthStatus() map[string]*PluginHealthStatus
GetPluginHealthStatus returns the health status of all monitored plugins
func (*PluginMonitor) RegisterPlugin ¶
func (pm *PluginMonitor) RegisterPlugin(pluginID string)
RegisterPlugin registers a plugin for health monitoring
func (*PluginMonitor) StartMonitoring ¶
func (pm *PluginMonitor) StartMonitoring(ctx context.Context)
StartMonitoring begins the plugin health monitoring process
func (*PluginMonitor) StopMonitoring ¶
func (pm *PluginMonitor) StopMonitoring()
StopMonitoring stops the plugin health monitoring
func (*PluginMonitor) UnregisterPlugin ¶
func (pm *PluginMonitor) UnregisterPlugin(pluginID string)
UnregisterPlugin removes a plugin from health monitoring
type QueryBuilderInformation ¶
type QueryBuilderInformation struct { DataObjects graphql.Fields AggregateObjects graphql.Fields //ConnectionParamObjects map[string]*graphql.InputObject WhereParamObjects graphql.InputObjectConfigFieldMap SortParamObjects graphql.InputObjectConfigFieldMap }
type TenantsResponse ¶
Source Files
¶
- auth_extension.go
- docker.go
- graphql_server.go
- graphql_server_system_schema.go
- plugin_loader.go
- plugin_monitor.go
- public_schema_dataloader.go
- public_schema_function.go
- public_schema_mutation.go
- public_schema_query.go
- subscriptions.go
- system_mutations.go
- system_query.go
- system_subscription.go
- user_meta_loader.go
- utility_fn.go