resolver

package
v1.1.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2025 License: Apache-2.0 Imports: 71 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
const DEFAULT_INTERNAL_PREFIX = "ext"
View Source
const PROJECT_PLUGIN_PREFIX = "plg"

Variables

This section is empty.

Functions

func BuildGraphQLWithFactory added in v1.1.7

func BuildGraphQLWithFactory(ctx context.Context, cfg *models.Config, extensionRouter *echo.Group, mainEcho *echo.Echo) (interfaces.GraphQLServerInterface, error)

BuildGraphQLWithFactory creates a GraphQL server using the factory pattern This is the main entry point that routers should use

func GetGraphQLServerFactory added in v1.1.7

func GetGraphQLServerFactory() interfaces.GraphQLServerFactory

GetGraphQLServerFactory returns the appropriate factory (pro if available, otherwise core)

func NewCoreGraphQLServerFactory added in v1.1.7

func NewCoreGraphQLServerFactory() interfaces.GraphQLServerFactory

NewCoreGraphQLServerFactory creates a new core GraphQL server factory

func SetGraphQLServerFactory added in v1.1.7

func SetGraphQLServerFactory(factory interfaces.GraphQLServerFactory)

SetGraphQLServerFactory allows pro version to inject its own factory

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

type ConvertedGraphQLSchemas struct {
	Queries   graphql.Fields
	Mutations graphql.Fields
}

ConvertedGraphQLSchemas holds converted GraphQL fields

type CoreGraphQLServerFactory added in v1.1.7

type CoreGraphQLServerFactory struct{}

CoreGraphQLServerFactory implements GraphQLServerFactory for open-core version

func (*CoreGraphQLServerFactory) CreateGraphQLServer added in v1.1.7

func (f *CoreGraphQLServerFactory) CreateGraphQLServer(ctx context.Context, cfg *models.Config, extensionRouter *echo.Group, mainEcho *echo.Echo) (interfaces.GraphQLServerInterface, error)

CreateGraphQLServer creates a core GraphQL server instance

func (*CoreGraphQLServerFactory) SupportsVersion added in v1.1.7

func (f *CoreGraphQLServerFactory) SupportsVersion(version string) bool

SupportsVersion returns true if this factory can create servers for the given version/edition

type ErrorDetail

type ErrorDetail struct {
	Message string `json:"message"`
}

type ErrorLine

type ErrorLine struct {
	Error       string      `json:"error"`
	ErrorDetail ErrorDetail `json:"errorDetail"`
}

type GraphQLError added in v1.1.7

type GraphQLError struct {
	Message    string                   `json:"message"`
	Extensions map[string]interface{}   `json:"extensions,omitempty"`
	Path       []interface{}            `json:"path,omitempty"`
	Locations  []map[string]interface{} `json:"locations,omitempty"`
}

GraphQLError represents a GraphQL error with extensions (mirrors GraphQL spec)

func (*GraphQLError) Error added in v1.1.7

func (e *GraphQLError) Error() string

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 BuildGraphQL(ctx context.Context, cfg *models.Config, extensionRouter *echo.Group, mainEcho *echo.Echo) (*GraphQLServer, error)

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 (s *GraphQLServer) BuildAContainer(ctx context.Context, projectId string, port string) error

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 (s *GraphQLServer) CacheGraphQLFieldsGeneration(ctx context.Context, projectId string, modelName string, val interface{}) error

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) 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 (s *GraphQLServer) ExpireGraphQLFieldCache(ctx context.Context, projectId string, modelName string) error

func (*GraphQLServer) ExpireGraphQLProjectCache

func (s *GraphQLServer) ExpireGraphQLProjectCache(ctx context.Context, projectId string) error

func (*GraphQLServer) FilterRunningContainers

func (s *GraphQLServer) FilterRunningContainers(ctx context.Context, projectId string) (*types.Container, error)

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) GetConcreteServer added in v1.1.7

func (s *GraphQLServer) GetConcreteServer() interface{}

GetConcreteServer returns the concrete server instance for controller compatibility

func (*GraphQLServer) GetCurrentProjectResolverFn

func (s *GraphQLServer) GetCurrentProjectResolverFn(p graphql.ResolveParams) (interface{}, error)

func (*GraphQLServer) GetFunctionProvider

func (s *GraphQLServer) GetFunctionProvider() ([]string, error)

func (*GraphQLServer) GetHashiCorpPluginIDs added in v1.1.7

func (s *GraphQLServer) GetHashiCorpPluginIDs() []string

GetHashiCorpPluginIDs returns the list of loaded HashiCorp plugin IDs

func (*GraphQLServer) GetLoggedInUserFn

func (s *GraphQLServer) GetLoggedInUserFn(p graphql.ResolveParams) (interface{}, error)

func (*GraphQLServer) GetMicroServicePort

func (s *GraphQLServer) GetMicroServicePort(ctx context.Context, id string) (string, error)

func (*GraphQLServer) GetOrganizationsResolverFn

func (s *GraphQLServer) GetOrganizationsResolverFn(p graphql.ResolveParams) (interface{}, error)

func (*GraphQLServer) GetPID

func (s *GraphQLServer) GetPID(ctx context.Context, projectId string) (string, 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 (s *GraphQLServer) ListRunningContainers(ctx context.Context, listAll bool, state string) ([]types.Container, error)

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 (s *GraphQLServer) LoadProjectCache(ctx context.Context, projectID string) (*models.Project, error)

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 (*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) SetPluginMonitor added in v1.1.7

func (s *GraphQLServer) SetPluginMonitor(monitor interface{})

SetPluginMonitor sets the plugin monitor

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 InputSerialPayload added in v1.1.3

type InputSerialPayload struct {
	Field     string               `json:"field"`
	Serial    int                  `json:"serial"`
	FieldType string               `json:"field_type"`
	Children  []InputSerialPayload `json:"children"`
}

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 = interfaces.QueryBuilderInformation

QueryBuilderInformation moved to interfaces package for compatibility Keeping this as alias for backward compatibility

type TenantsResponse

type TenantsResponse struct {
	ID   string `json:"_id"`
	Name string `json:"name"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL