resolver

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2025 License: Apache-2.0 Imports: 72 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 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 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 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) 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 (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) 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 (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) 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

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