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 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:"5173"`
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 `` /* 135-byte string literal not displayed */
WorkspaceProviderType string `` /* 129-byte string literal not displayed */
HelperModel string `usage:"The model used to generate names and descriptions" default:"gpt-4.1-mini"`
EmailServerName string `usage:"The name of the email server to display for email receivers"`
EnableSMTPServer bool `usage:"Enable SMTP server to receive emails" default:"false" env:"OBOT_ENABLE_SMTP_SERVER"`
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"`
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:""`
// 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"`
GeminiConfig
GatewayConfig
EncryptionConfig
OtelOptions
AuditConfig
RateLimiterConfig
MCPConfig
services.Config
}
type EncryptionConfig ¶ added in v0.8.0
type EncryptionConfig encryption.Options
type GatewayConfig ¶
type GeminiConfig ¶ added in v0.7.0
type OAuthAuthorizationServerConfig ¶ added in v0.8.0
type OAuthAuthorizationServerConfig struct {
// Issuer is the authorization server's issuer identifier, which is a URL that uses the "https" scheme
// and has no query or fragment components. REQUIRED.
Issuer string `json:"issuer"`
// AuthorizationEndpoint is the URL of the authorization server's authorization endpoint.
// REQUIRED unless no grant types are supported that use the authorization endpoint.
AuthorizationEndpoint string `json:"authorization_endpoint"`
// TokenEndpoint is the URL of the authorization server's token endpoint.
// REQUIRED unless only the implicit grant type is supported.
TokenEndpoint string `json:"token_endpoint"`
// JWKSURI is the URL of the authorization server's JWK Set document.
// OPTIONAL.
JWKSURI string `json:"jwks_uri,omitempty"`
// RegistrationEndpoint is the URL of the authorization server's OAuth 2.0 Dynamic Client Registration endpoint.
// OPTIONAL.
RegistrationEndpoint string `json:"registration_endpoint,omitempty"`
// ScopesSupported is a JSON array containing a list of the OAuth 2.0 scope values that this authorization server supports.
// RECOMMENDED.
ScopesSupported []string `json:"scopes_supported,omitempty"`
// ResponseTypesSupported is a JSON array containing a list of the OAuth 2.0 response_type values that this authorization server supports.
// REQUIRED.
ResponseTypesSupported []string `json:"response_types_supported"`
// ResponseModesSupported is a JSON array containing a list of the OAuth 2.0 response_mode values that this authorization server supports.
// OPTIONAL. Default is ["query", "fragment"].
ResponseModesSupported []string `json:"response_modes_supported,omitempty"`
// GrantTypesSupported is a JSON array containing a list of the OAuth 2.0 grant type values that this authorization server supports.
// OPTIONAL. Default is ["authorization_code", "implicit"].
GrantTypesSupported []string `json:"grant_types_supported,omitempty"`
// TokenEndpointAuthMethodsSupported is a JSON array containing a list of client authentication methods supported by this token endpoint.
// OPTIONAL. Default is "client_secret_basic".
TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported,omitempty"`
// TokenEndpointAuthSigningAlgValuesSupported is a JSON array containing a list of the JWS signing algorithms supported by the token endpoint.
// OPTIONAL. Required if "private_key_jwt" or "client_secret_jwt" authentication methods are specified.
TokenEndpointAuthSigningAlgValuesSupported []string `json:"token_endpoint_auth_signing_alg_values_supported,omitempty"`
// ServiceDocumentation is the URL of a page containing human-readable information that developers might want or need to know.
// OPTIONAL.
ServiceDocumentation string `json:"service_documentation,omitempty"`
// UILocalesSupported is a JSON array of language tag values from BCP 47 for the user interface.
// OPTIONAL.
UILocalesSupported []string `json:"ui_locales_supported,omitempty"`
// OPPolicyURI is the URL that the authorization server provides to read about the authorization server's requirements.
// OPTIONAL.
OPPolicyURI string `json:"op_policy_uri,omitempty"`
// OPTosURI is the URL that the authorization server provides to read about the authorization server's terms of service.
// OPTIONAL.
OPTosURI string `json:"op_tos_uri,omitempty"`
// RevocationEndpoint is the URL of the authorization server's OAuth 2.0 revocation endpoint.
// OPTIONAL.
RevocationEndpoint string `json:"revocation_endpoint,omitempty"`
// RevocationEndpointAuthMethodsSupported is a JSON array containing a list of client authentication methods supported by this revocation endpoint.
// OPTIONAL. Default is "client_secret_basic".
RevocationEndpointAuthMethodsSupported []string `json:"revocation_endpoint_auth_methods_supported,omitempty"`
// IntrospectionEndpoint is the URL of the authorization server's OAuth 2.0 introspection endpoint.
// OPTIONAL.
IntrospectionEndpoint string `json:"introspection_endpoint,omitempty"`
// IntrospectionEndpointAuthMethodsSupported is a JSON array containing a list of client authentication methods supported by this introspection endpoint.
// OPTIONAL.
IntrospectionEndpointAuthMethodsSupported []string `json:"introspection_endpoint_auth_methods_supported,omitempty"`
// IntrospectionEndpointAuthSigningAlgValuesSupported is a JSON array containing a list of the JWS signing algorithms supported by the introspection endpoint.
// OPTIONAL. Required if "private_key_jwt" or "client_secret_jwt" authentication methods are specified.
IntrospectionEndpointAuthSigningAlgValuesSupported []string `json:"introspection_endpoint_auth_signing_alg_values_supported,omitempty"`
// CodeChallengeMethodsSupported is a JSON array containing a list of PKCE code challenge methods supported by this authorization server.
// OPTIONAL. If omitted, the authorization server does not support PKCE.
CodeChallengeMethodsSupported []string `json:"code_challenge_methods_supported,omitempty"`
}
OAuthAuthorizationServerConfig represents the response from /.well-known/oauth-authorization-server as defined in RFC 8414 (OAuth 2.0 Authorization Server Metadata)
type OtelOptions ¶ added in v0.8.0
type RateLimiterConfig ¶ added in v0.8.0
type RateLimiterConfig ratelimiter.Options
type Services ¶
type Services struct {
ToolRegistryURLs []string
WorkspaceProviderType string
ServerURL string
EmailServerName string
DevUIPort int
UserUIPort int
Events *events.Emitter
StorageClient storage.Client
Router *router.Router
GPTClient *gptscript.GPTScript
Invoker *invoke.Invoker
TokenServer *jwt.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
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
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 OAuthAuthorizationServerConfig
}
Click to show internal directories.
Click to hide internal directories.