internal

package
v0.19.771 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2026 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	worker.Config `config:",squash"`

	// configs for starting and introspecting service
	GitRef         string   `config:"git_ref" validate:"required"`
	Version        string   `config:"version" validate:"required"`
	MetricsTags    []string `config:"metrics_tags"`
	DisableMetrics bool     `config:"disable_metrics"`

	ServiceName       string `config:"service_name" validate:"required"`
	ServiceType       string `config:"service_type" validate:"required"`
	ServiceDeployment string `config:"service_deployment"`

	RootDomain string `config:"root_domain"` // for all services

	HTTPPort               string `config:"http_port" validate:"required"`
	InternalHTTPPort       string `config:"internal_http_port" validate:"required"`
	RunnerHTTPPort         string `config:"runner_http_port" validate:"required"`
	AuthHTTPPort           string `config:"auth_http_port" validate:"required"`
	AdminDashboardHTTPPort string `config:"admin_dashboard_http_port" validate:"required"`

	GracefulShutdownTimeout time.Duration `config:"graceful_shutdown_timeout" validate:"required"`

	// psql connection parameters
	DBName       string `config:"db_name" validate:"required"`
	DBHost       string `config:"db_host" validate:"required"`
	DBPort       string `config:"db_port" validate:"required"`
	DBSSLMode    string `config:"db_ssl_mode" validate:"required"`
	DBPassword   string `config:"db_password"`
	DBUser       string `config:"db_user" validate:"required"`
	DBZapLog     bool   `config:"db_use_zap"`
	DBUseIAM     bool   `config:"db_use_iam"`
	DBRegion     string `config:"db_region" validate:"required"`
	DBLogQueries bool   `config:"db_log_queries"`

	// clickhouse connection parameters
	ClickhouseDBName         string        `config:"clickhouse_db_name" validate:"required"`
	ClickhouseDBHost         string        `config:"clickhouse_db_host" validate:"required"`
	ClickhouseDBUser         string        `config:"clickhouse_db_user" validate:"required"`
	ClickhouseDBPassword     string        `config:"clickhouse_db_password" validate:"required"`
	ClickhouseDBPort         string        `config:"clickhouse_db_port" validate:"required"`
	ClickhouseDBUseTLS       bool          `config:"clickhouse_db_use_tls"`
	ClickhouseDBReadTimeout  time.Duration `config:"clickhouse_db_read_timeout" validate:"required"`
	ClickhouseDBWriteTimeout time.Duration `config:"clickhouse_db_write_timeout" validate:"required"`
	ClickhouseDBDialTimeout  time.Duration `config:"clickhouse_db_dial_timeout" validate:"required"`

	// temporal configuration
	TemporalHost                          string `config:"temporal_host"  validate:"required"`
	TemporalStickyWorkflowCacheSize       int    `config:"temporal_sticky_workflow_cache_size"`
	TemporalDataConverterLargePayloadSize int    `config:"temporal_dataconverter_large_payload_size"`
	TemporalWorkflowFailurePanic          bool   `config:"temporal_workflow_failure_panic"`

	// github configuration
	GithubAppID            string `config:"github_app_id" validate:"required"`
	GithubAppKey           string `config:"github_app_key" validate:"required"`
	GithubAppKeySecretName string `config:"github_app_key_secret_name" validate:"required"`

	// base urls for filling in various fields on objects
	SandboxArtifactsBaseURL string `config:"sandbox_artifacts_base_url" validate:"required"`

	// middleware configuration
	Middlewares               []string `config:"middlewares"`
	InternalMiddlewares       []string `config:"internal_middlewares"`
	RunnerMiddlewares         []string `config:"runner_middlewares"`
	AuthMiddlewares           []string `config:"auth_middlewares"`
	AdminDashboardMiddlewares []string `config:"admin_dashboard_middlewares"`

	// Nuon Auth Config
	NuonAuthSessionKey     string   `config:"nuon_auth_session_key"`
	NuonAuthSessionTTL     int      `config:"nuon_auth_session_ttl"`
	NuonAuthAllowedDomains []string `config:"nuon_auth_allowed_domains"` // domains from which emails can register
	NuonAuthAllowAllUsers  bool     `config:"nuon_auth_allow_all_users"` // if true, any user with an allowedDomain can sign in

	// Nuon Auth: Default Provider ConfigS
	NuonAuthProviderType string `config:"nuon_auth_provider_type"` // NOTE: becomes required after auth is in GA
	NuonAuthClientID     string `config:"nuon_auth_client_id"`
	NuonAuthClientSecret string `config:"nuon_auth_client_secret"`
	NuonAuthIssuerURL    string `config:"nuon_auth_issuer_url"`
	NuonAuthRedirectURL  string `config:"nuon_auth_redirect_url"`

	// auth 0 config
	Auth0IssuerURL string `config:"auth0_issuer_url" validate:"required"`
	Auth0Audience  string `config:"auth0_audience" validate:"required"`
	Auth0ClientID  string `config:"auth0_client_id" validate:"required"`

	// links
	AppURL        string `config:"app_url" validate:"required"`
	RunnerAPIURL  string `config:"runner_api_url" validate:"required"`
	PublicAPIURL  string `config:"public_api_url" validate:"required"`
	AdminAPIURL   string `config:"admin_api_url" validate:"required"`
	TemporalUIURL string `config:"temporal_ui_url" validate:"required"`

	// flags for controlling the background workers
	ForceSandboxMode         bool          `config:"force_sandbox_mode"`
	SandboxModeSleep         time.Duration `config:"sandbox_mode_sleep" validate:"required"`
	SandboxModeEnableRunners bool          `config:"sandbox_mode_enable_runners"`

	// flags for controlling creation of integration users
	IntegrationGithubInstallID string `config:"integration_github_install_id" validate:"required"`

	// notifications configuration
	LoopsAPIKey             string `config:"loops_api_key" validate:"required"`
	InternalSlackWebhookURL string `config:"internal_slack_webhook_url" validate:"required"`
	DisableNotifications    bool   `config:"disable_notifications"`

	// configuration for runners
	RunnerContainerImageURL string `config:"runner_container_image_url" validate:"required"`
	RunnerContainerImageTag string `config:"runner_container_image_tag" validate:"required"`
	UseLocalRunners         bool   `config:"use_local_runners"`

	// cloudformation phone home
	AWSCloudFormationStackTemplateBucketRegion string `config:"aws_cloudformation_stack_template_bucket_region"`
	AWSCloudFormationStackTemplateBucket       string `config:"aws_cloudformation_stack_template_bucket"`
	AWSCloudFormationStackTemplateBaseURL      string `config:"aws_cloudformation_stack_template_base_url"`
	RunnerEnableSupport                        bool   `config:"runner_enable_support"`
	RunnerDefaultSupportIAMRole                string `config:"runner_default_support_iam_role_arn" validate:"required"`

	// configuration for managing AWS infra for orgs, apps and installs
	ManagementIAMRoleARN string `config:"management_iam_role_arn" validate:"required"`

	ManagementAccountID      string `config:"management_account_id" validate:"required"`
	ManagementECRRegistryID  string `config:"management_ecr_registry_id" validate:"required"`
	ManagementECRRegistryARN string `config:"management_ecr_registry_arn" validate:"required"`

	// configuration for org runners
	OrgRunnerK8sClusterID       string `config:"org_runner_k8s_cluster_id" validate:"required"`
	OrgRunnerK8sPublicEndpoint  string `config:"org_runner_k8s_public_endpoint" validate:"required"`
	OrgRunnerK8sCAData          string `config:"org_runner_k8s_ca_data" validate:"required"`
	OrgRunnerOIDCProviderURL    string `config:"org_runner_oidc_provider_url" validate:"required"`
	OrgRunnerOIDCProviderARN    string `config:"org_runner_oidc_provider_arn" validate:"required"`
	OrgRunnerRegion             string `config:"org_runner_region" validate:"required"`
	OrgRunnerSupportRoleARN     string `config:"org_runner_support_role_arn" validate:"required"`
	OrgRunnerHelmChartDir       string `config:"org_runner_helm_chart_dir" validate:"required"`
	OrgRunnerK8sIAMRoleARN      string `config:"org_runner_k8s_iam_role_arn" validate:"required"`
	OrgRunnerK8sUseDefaultCreds bool   `config:"org_runner_k8s_use_default_creds"`
	OrgRunnerInstanceType       string `config:"org_runner_instance_type" validate:"required"`

	// configuration for managing the public dns zone
	DNSManagementIAMRoleARN string `config:"dns_management_iam_role_arn" validate:"required"`
	DNSZoneID               string `config:"dns_zone_id" validate:"required"`
	DNSRootDomain           string `config:"dns_root_domain" validate:"required"`

	// analytics configuration
	SegmentWriteKey  string `config:"segment_write_key" validate:"required"`
	DisableAnalytics bool   `config:"disable_analytics"`

	MaxRequestSize     int64         `config:"max_request_size" validate:"required"`
	MaxRequestDuration time.Duration `config:"max_request_duration" validate:"required"`

	// Force debug mode for everything
	ForceDebugMode              bool `config:"force_debug_mode"`
	LogRequestBody              bool `config:"log_request_body"`
	EnableHttpBinDebugEndpoints bool `config:"enable_httpbin_debug_endpoints"`
	EnableEndpointAuditing      bool `config:"enable_endpoint_auditing"`
	EvaluationJourneyEnabled    bool `config:"evaluation_journey_enabled"`

	// chaos configuration
	ChaosRate   int           `config:"chaos_rate"`
	ChaosErrors []string      `config:"chaos_errors"`
	ChaosRoutes []string      `config:"chaos_routes"`
	ChaosSleep  time.Duration `config:"chaos_sleep"`

	// Action crons
	ActionCronsEnabled bool `config:"action_crons_enabled"`

	MinCLIVersion string `config:"min_cli_version"`

	EventLoopGeneralPurgeStaleDataCron        string        `config:"event_loop_general_purge_stale_data_cron"`
	EventLoopGeneralPurgeStaleDataDurationAgo time.Duration `config:"event_loop_general_purge_stale_data_duration_ago" validate:"required"`
}

func NewConfig

func NewConfig() (*Config, error)

Directories

Path Synopsis
app
admin-dashboard/components/icon
templui component icon - version: v1.3.0 installed by templui v1.3.0 📚 Documentation: https://templui.io/docs/components/icon
templui component icon - version: v1.3.0 installed by templui v1.3.0 📚 Documentation: https://templui.io/docs/components/icon
admin-dashboard/components/search
templ: version: v0.3.977
templ: version: v0.3.977
admin-dashboard/service/views
templ: version: v0.3.977
templ: version: v0.3.977
admin-dashboard/utils
templui util templui.go - version: v1.3.0 installed by templui v1.3.0
templui util templui.go - version: v1.3.0 installed by templui v1.3.0
log
org
pkg
api
ch
db
log

Jump to

Keyboard shortcuts

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