services

package
v0.20.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 78 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditConfig added in v0.8.0

type AuditConfig audit.Options

type Config

type Config struct {
	HTTPListenPort              int      `usage:"HTTP port to listen on" default:"8080" name:"http-listen-port"`
	DevMode                     bool     `usage:"Enable development mode" default:"false" name:"dev-mode" env:"OBOT_DEV_MODE"`
	DevUIPort                   int      `usage:"The port on localhost running the dev instance of the UI" default:"5174"`
	UserUIPort                  int      `usage:"The port on localhost running the user production instance of the UI" env:"OBOT_SERVER_USER_UI_PORT"`
	AllowedOrigin               string   `usage:"Allowed origin for CORS"`
	ToolRegistries              []string `usage:"The remote tool references to the set of gptscript tool registries to use" default:"github.com/obot-platform/tools"`
	WorkspaceProviderType       string   `` /* 129-byte string literal not displayed */
	HelperModel                 string   `usage:"The model used to generate names and descriptions" default:"gpt-5-mini"`
	EmailServerName             string   `usage:"The name of the email server to display for email receivers"`
	Docker                      bool     `usage:"Enable Docker support" default:"false" env:"OBOT_DOCKER"`
	EnvKeys                     []string `usage:"The environment keys to pass through to the GPTScript server" env:"OBOT_ENV_KEYS"`
	KnowledgeSetIngestionLimit  int      `usage:"The maximum number of files to ingest into a knowledge set" default:"3000" name:"knowledge-set-ingestion-limit"`
	KnowledgeFileWorkers        int      `usage:"The number of workers to process knowledge files" default:"5"`
	RunWorkers                  int      `usage:"The number of workers to process runs" default:"1000"`
	ElectionFile                string   `usage:"Use this file for leader election instead of database leases"`
	EnableAuthentication        bool     `usage:"Enable authentication" default:"false"`
	ForceEnableBootstrap        bool     `usage:"Enables the bootstrap user even if other admin users have been created" default:"false"`
	AuthAdminEmails             []string `usage:"Emails of admin users"`
	AuthOwnerEmails             []string `usage:"Emails of owner users"`
	AgentsDir                   string   `usage:"The directory to auto load agents on start (default $XDG_CONFIG_HOME/.obot/agents)"`
	StaticDir                   string   `usage:"The directory to serve static files from"`
	RetentionPolicyHours        int      `usage:"The retention policy for the system. Set to 0 to disable retention." default:"2160"` // default 90 days
	DefaultMCPCatalogPath       string   `usage:"The path to the default MCP catalog (accessible to all users)" default:""`
	DefaultSystemMCPCatalogPath string   `usage:"The path to the default System MCP catalog" default:""`
	DefaultSkillRepoURL         string   `` /* 151-byte string literal not displayed */
	DefaultSkillRepoRef         string   `usage:"The ref (branch/tag) for the default skill repository" default:"" env:"OBOT_DEFAULT_SKILL_REPO_REF"`
	DisableUpdateCheck          bool     `usage:"Disable Obot server update checks"`
	EnableAutonomousToolUse     bool     `` /* 138-byte string literal not displayed */
	// Sendgrid webhook
	SendgridWebhookUsername string `usage:"The username for the sendgrid webhook to authenticate with"`
	SendgridWebhookPassword string `usage:"The password for the sendgrid webhook to authenticate with"`
	EnableRegistryAuth      bool   `usage:"Enable authentication for the MCP registry API" default:"false" env:"OBOT_SERVER_ENABLE_REGISTRY_AUTH"`
	DisableLegacyChat       bool   `usage:"Disable legacy chat" default:"true"`
	NanobotIntegration      bool   `usage:"Enable Nanobot integration" default:"true"`
	EnableMessagePolicies   bool   `usage:"Enable message policies for LLM proxy content enforcement" default:"false"`
	MCPServerSearchImage    string `usage:"Container image for the obot MCP server" default:"ghcr.io/obot-platform/obot-mcp-server:v0.1.1"`
	NanobotAgentImage       string `usage:"Container image for the Nanobot agent MCP server" default:"ghcr.io/nanobot-ai/nanobot-agent:v0.0.74"`

	// Published artifact storage
	ArtifactStorageProvider       string `` /* 143-byte string literal not displayed */
	ArtifactStorageBucket         string `usage:"Bucket for published artifacts" name:"artifact-storage-bucket" env:"OBOT_ARTIFACT_STORAGE_BUCKET"`
	ArtifactS3Region              string `usage:"S3 region for artifact storage" name:"artifact-s3-region" env:"OBOT_ARTIFACT_S3_REGION"`
	ArtifactS3AccessKeyID         string `usage:"S3 access key ID for artifact storage" name:"artifact-s3-access-key-id" env:"OBOT_ARTIFACT_S3_ACCESS_KEY_ID"`
	ArtifactS3SecretAccessKey     string `` /* 127-byte string literal not displayed */
	ArtifactS3Endpoint            string `usage:"Custom S3 endpoint for artifact storage" name:"artifact-s3-endpoint" env:"OBOT_ARTIFACT_S3_ENDPOINT"`
	ArtifactGCSServiceAccountJSON string `` /* 185-byte string literal not displayed */
	ArtifactAzureStorageAccount   string `` /* 135-byte string literal not displayed */
	ArtifactAzureTenantID         string `usage:"Azure tenant ID for artifact storage" name:"artifact-azure-tenant-id" env:"OBOT_ARTIFACT_AZURE_TENANT_ID"`
	ArtifactAzureClientID         string `usage:"Azure client ID for artifact storage" name:"artifact-azure-client-id" env:"OBOT_ARTIFACT_AZURE_CLIENT_ID"`
	ArtifactAzureClientSecret     string `usage:"Azure client secret for artifact storage" name:"artifact-azure-client-secret" env:"OBOT_ARTIFACT_AZURE_CLIENT_SECRET"`

	GeminiConfig
	GatewayConfig
	EncryptionConfig
	MetricsAuthConfig
	AuditConfig
	RateLimiterConfig
	MCPConfig
	services.Config
}

type EncryptionConfig added in v0.8.0

type EncryptionConfig encryption.Options

type GatewayConfig

type GatewayConfig gserver.Options

type GeminiConfig added in v0.7.0

type GeminiConfig gemini.Config

type MCPConfig added in v0.8.0

type MCPConfig mcp.Options

type MetricsAuthConfig added in v0.17.0

type MetricsAuthConfig struct {
	MetricsBearerToken string `usage:"Bearer token for metrics endpoint authentication" name:"metrics-bearer-token"`
}

type Otel added in v0.8.0

type Otel struct {
	// contains filtered or unexported fields
}

func (*Otel) Shutdown added in v0.8.0

func (s *Otel) Shutdown(ctx context.Context) error

type RateLimiterConfig added in v0.8.0

type RateLimiterConfig ratelimiter.Options

type Services

type Services struct {
	EncryptionConfig            *encryptionconfig.EncryptionConfiguration
	ToolRegistryURLs            []string
	WorkspaceProviderType       string
	ServerURL                   string
	InternalServerURL           string
	EmailServerName             string
	DevUIPort                   int
	UserUIPort                  int
	Events                      *events.Emitter
	StorageClient               storage.Client
	Router                      *router.Router
	GPTClient                   *gptscript.GPTScript
	Invoker                     *invoke.Invoker
	PersistentTokenServer       *persistent.TokenService
	APIServer                   *server.Server
	Started                     chan struct{}
	GatewayServer               *gserver.Server
	GatewayClient               *client.Client
	ProxyManager                *proxy.Manager
	ProviderDispatcher          *dispatcher.Dispatcher
	Bootstrapper                *bootstrap.Bootstrap
	KnowledgeSetIngestionLimit  int
	SupportDocker               bool
	AuthEnabled                 bool
	DefaultMCPCatalogPath       string
	DefaultSystemMCPCatalogPath string
	DefaultSkillRepoURL         string
	DefaultSkillRepoRef         string
	AgentsDir                   string
	GeminiClient                *gemini.Client
	Otel                        *Otel
	AuditLogger                 audit.Logger
	PostgresDSN                 string
	RetentionPolicy             time.Duration
	// Use basic auth for sendgrid webhook, if being set
	SendgridWebhookUsername string
	SendgridWebhookPassword string

	// Used for indexed lookups of access control rules.
	AccessControlRuleHelper *accesscontrolrule.Helper

	// Used for indexed lookups of model access policies.
	ModelAccessPolicyHelper *modelaccesspolicy.Helper

	// Used for indexed lookups of message policies.
	MessagePolicyHelper *messagepolicy.Helper

	// Used for indexed lookups of skill access rules.
	SkillAccessRuleHelper *skillaccessrule.Helper

	WebhookHelper *mcp.WebhookHelper

	// Used for loading and running MCP servers with GPTScript.
	MCPLoader *mcp.SessionManager

	// Global token storage client for MCP OAuth
	MCPOAuthTokenStorage mcp.GlobalTokenStore

	// OAuth configuration
	OAuthServerConfig handlers.OAuthAuthorizationServerConfig

	// Local Kubernetes configuration for deployment monitoring
	LocalK8sConfig     *rest.Config
	MCPServerNamespace string

	// Parsed settings from Helm for k8s to pass to controller
	// PodSchedulingSettingsFromHelm contains affinity, tolerations, resources, runtimeClassName
	// when explicitly set via Helm. If non-nil, SetViaHelm=true and UI cannot modify these.
	PodSchedulingSettingsFromHelm *v1.K8sSettingsSpec
	// PSASettingsFromHelm contains Pod Security Admission settings, always sourced from
	// environment/Helm config and not modifiable via UI.
	PSASettingsFromHelm *v1.PodSecurityAdmissionSettings

	DisableUpdateCheck                   bool
	DisableLegacyChat                    bool
	MCPRuntimeBackend                    string
	MCPRemoteShimBaseImage               string
	MCPHTTPWebhookBaseImage              string
	RegistryNoAuth                       bool
	AutonomousToolUseEnabled             bool
	NanobotIntegration                   bool
	MessagePoliciesEnabled               bool
	MCPServerSearchImage                 string
	NanobotAgentImage                    string
	SingleUserIdleServerShutdownInterval time.Duration
	MultiUserIdleServerShutdownInterval  time.Duration
	AgentIdleServerShutdownInterval      time.Duration

	// Published artifact blob storage
	ArtifactBlobStore  blob.BlobStore
	ArtifactBlobBucket string
}

func New

func New(ctx context.Context, config Config) (*Services, error)

Jump to

Keyboard shortcuts

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