service

package
v0.19.1069 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2026 License: AGPL-3.0 Imports: 63 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var StandardLabelColors = []string{
	"#2563eb", "#dc2626", "#16a34a", "#9333ea", "#ca8a04", "#0891b2",
	"#e11d48", "#4f46e5", "#059669", "#c026d3", "#d97706", "#0284c7",
	"#be123c", "#7c3aed", "#15803d", "#a21caf", "#b45309", "#0369a1",
	"#9f1239", "#6d28d9", "#166534", "#86198f", "#92400e", "#075985",
	"#881337", "#5b21b6", "#14532d", "#701a75", "#78350f", "#0c4a6e",
	"#6366f1", "#ef4444", "#22c55e", "#a855f7", "#eab308", "#06b6d4",
	"#f43f5e", "#818cf8", "#34d399", "#d946ef", "#f59e0b", "#0ea5e9",
	"#fb7185", "#a78bfa", "#4ade80", "#e879f9", "#fbbf24", "#38bdf8",
	"#f87171", "#c084fc", "#86efac", "#f0abfc", "#fcd34d", "#7dd3fc",
	"#fca5a5", "#d8b4fe", "#bbf7d0", "#f5d0fe", "#fde68a", "#bae6fd",
	"#3b82f6", "#f97316", "#8b5cf6", "#14b8a6",
}

Functions

func New

func New(params Params) *service

Types

type AdminAppComponentDetails added in v0.19.939

type AdminAppComponentDetails struct {
	*app.Component
}

type AdminAppConfigGraphRequest

type AdminAppConfigGraphRequest struct {
	ConfigID string
}

type AdminAppDetails added in v0.19.939

type AdminAppDetails struct {
	*app.App

	Components []AdminAppComponentDetails `json:"components,omitempty"`
}

type AdminTriggerAppBranchRunRequest added in v0.19.850

type AdminTriggerAppBranchRunRequest struct {
	Force bool `json:"force"`
}

type AppAWSIAMPolicyConfig

type AppAWSIAMPolicyConfig struct {
	ManagedPolicyName string `json:"managed_policy_name"`

	Name              string   `json:"name"`
	Contents          string   `json:"contents" swaggertype:"string" validate:"optional_json"`
	GCPPermissions    []string `json:"gcp_permissions,omitempty"`
	GCPPredefinedRole string   `json:"gcp_predefined_role,omitempty"`
}

type AppAWSIAMRoleConfig

type AppAWSIAMRoleConfig struct {
	Name                string `json:"name" validate:"required"`
	DisplayName         string `json:"display_name" validate:"required"`
	Description         string `json:"description" validate:"required"`
	PermissionsBoundary string `json:"permissions_boundary,omitempty" swaggertype:"string" validate:"optional_json"`
	CloudPlatform       string `json:"cloud_platform,omitempty" validate:"omitempty,oneof=aws gcp azure"`
	EnabledInStack      *bool  `json:"enabled_in_stack" swaggertype:"boolean" extensions:"x-nullable"`

	Policies []AppAWSIAMPolicyConfig `json:"policies" validate:"min=1,dive"`
}

type AppConfigDiffResponse added in v0.19.1012

type AppConfigDiffResponse struct {
	ConfigID    string           `json:"config_id"`
	OldConfigID string           `json:"old_config_id,omitempty"`
	Diff        *diff.Diff       `json:"diff"`
	Summary     diff.DiffSummary `json:"summary"`
	Changed     string           `json:"changed"`
}

type AppConfigTemplate

type AppConfigTemplate struct {
	Format   app.AppConfigVersion
	Type     AppConfigTemplateType
	Filename string
	Content  string
}

type AppConfigTemplateType

type AppConfigTemplateType string
const (
	// not used
	AppConfigTemplateTypeAwsECS       AppConfigTemplateType = "aws-ecs"
	AppConfigTemplateTypeAwsECSBYOVPC AppConfigTemplateType = "aws-ecs-byovpc"
	AppConfigTemplateTypeAwsEKS       AppConfigTemplateType = "aws-eks"
	AppConfigTemplateTypeAwsEKSBYOVPC AppConfigTemplateType = "aws-eks-byovpc"
	AppConfigTemplateTypeAzureAKS     AppConfigTemplateType = "azure-aks"

	// flat app template
	AppConfigTemplateTypeFlat AppConfigTemplateType = "flat"

	// with sources app template
	AppConfigTemplateTypeTopLevel          AppConfigTemplateType = "top-level"
	AppConfigTemplateTypeInstaller         AppConfigTemplateType = "installer"
	AppConfigTemplateTypeRunner            AppConfigTemplateType = "runner"
	AppConfigTemplateTypeSandbox           AppConfigTemplateType = "sandbox"
	AppConfigTemplateTypeInputs            AppConfigTemplateType = "inputs"
	AppConfigTemplateTypeTerraform         AppConfigTemplateType = "terraform"
	AppConfigTemplateTypeTerraformInfra    AppConfigTemplateType = "terraformInfra"
	AppConfigTemplateTypeHelm              AppConfigTemplateType = "helm"
	AppConfigTemplateTypeDockerBuild       AppConfigTemplateType = "docker-build"
	AppConfigTemplateTypeJob               AppConfigTemplateType = "job"
	AppConfigTemplateTypeContainerImage    AppConfigTemplateType = "container-image"
	AppConfigTemplateTypeECRContainerImage AppConfigTemplateType = "ecr-container-image"
)

type AppGroupRequest

type AppGroupRequest struct {
	DisplayName string `json:"display_name" validate:"required"`
	Description string `json:"description" validate:"required"`
	Index       int    `json:"index" validate:"required"`
}

type AppInputRequest

type AppInputRequest struct {
	DisplayName string `json:"display_name" validate:"required"`
	Description string `json:"description" validate:"required"`
	Default     string `json:"default"`
	Required    bool   `json:"required"`
	Sensitive   bool   `json:"sensitive"`
	Group       string `json:"group" validate:"required"`
	Index       int    `json:"index" validate:"required"`

	// New, optional fields
	Type   string             `json:"type"`
	Source app.AppInputSource `json:"source"`
}

type AppKubernetesContext added in v0.19.1025

type AppKubernetesContext struct {
	Name string `json:"name" validate:"required"`
	// Component is the name of the peer terraform_module or pulumi component
	// that emits cluster connection details as outputs.
	Component string `json:"component" validate:"required"`
}

type AppLabelKeySummary added in v0.19.1038

type AppLabelKeySummary struct {
	Key          string   `json:"key"`
	Color        string   `json:"color"`
	DefaultColor string   `json:"default_color"`
	IsOverride   bool     `json:"is_override"`
	Values       []string `json:"values"`
	EntityTypes  []string `json:"entity_types"`
	UsageCount   int      `json:"usage_count"`
}

type AppLabelsResponse added in v0.19.1038

type AppLabelsResponse struct {
	Labels        []AppLabelKeySummary `json:"labels"`
	LabelColors   map[string]string    `json:"label_colors"`
	DefaultColors []string             `json:"default_colors"`
}

type AppPolicyConfig

type AppPolicyConfig struct {
	Type        config.AppPolicyType   `json:"type" validate:"required"`
	Engine      config.AppPolicyEngine `json:"engine,omitempty"`
	Name        string                 `json:"name,omitempty"`
	Description string                 `json:"description,omitempty"`
	Contents    string                 `json:"contents" validate:"required" swaggertype:"string"`
	Components  []string               `json:"components,omitempty"`
}

type AppSecretConfig

type AppSecretConfig struct {
	Name        string `json:"name" validate:"interpolated_name,required"`
	DisplayName string `json:"display_name" validate:"required"`
	Description string `json:"description" validate:"required"`

	Required     bool   `json:"required"`
	AutoGenerate bool   `json:"auto_generate"`
	Format       string `json:"format"`
	Default      string `json:"default"`

	KubernetesSync            bool   `json:"kubernetes_sync"`
	KubernetesSecretNamespace string `json:"kubernetes_secret_namespace"`
	KubernetesSecretName      string `json:"kubernetes_secret_name" validate:"omitempty,hostname_rfc1123"`

	KubernetesSyncTargets []KubernetesSyncTarget `json:"kubernetes_sync_targets" validate:"dive"`
}

type CreateAppBranchConfigRequest added in v0.19.850

type CreateAppBranchConfigRequest struct {
	vcshelpers.VCSConfigRequest

	InstallGroups []InstallGroupRequest `json:"install_groups"`
}

func (*CreateAppBranchConfigRequest) Validate added in v0.19.850

type CreateAppBranchRequest

type CreateAppBranchRequest struct {
	Name      string `json:"name" validate:"required,min=1"`
	ManagedBy string `json:"managed_by,omitempty"`
}

func (*CreateAppBranchRequest) Validate

type CreateAppBreakGlassConfigRequest

type CreateAppBreakGlassConfigRequest struct {
	Roles []AppAWSIAMRoleConfig `json:"roles" validate:"required"`

	AppConfigID string `json:"app_config_id" validate:"required"`
}

func (*CreateAppBreakGlassConfigRequest) Validate

type CreateAppConfigRequest

type CreateAppConfigRequest struct {
	Readme     string `json:"readme,omitempty"`
	CLIVersion string `json:"cli_version,omitempty"`

	// IntermediateConfigJSON is the serialized intermediate config (parsed nuon.toml).
	// When provided, stored on the AppConfig for diffing in PR previews.
	IntermediateConfigJSON string `json:"intermediate_config_json,omitempty"`

	// AppBranchID optionally links this config to an app branch.
	// When set, triggers an app branch run after sync.
	AppBranchID string `json:"app_branch_id,omitempty"`
	// PlanOnly creates a preview run (plan without apply). Only used with AppBranchID.
	PlanOnly bool `json:"plan_only,omitempty"`

	// SkipNotification suppresses the app-config-synced signal emission.
	// Used when creating a config as part of app deletion cleanup.
	SkipNotification bool `json:"skip_notification,omitempty"`
}

func (*CreateAppConfigRequest) Validate

type CreateAppInputConfigRequest

type CreateAppInputConfigRequest struct {
	AppConfigID string                     `json:"app_config_id"`
	Inputs      map[string]AppInputRequest `json:"inputs" validate:"required"`
	Groups      map[string]AppGroupRequest `json:"groups" validate:"required"`
}

func (*CreateAppInputConfigRequest) Validate

type CreateAppKubernetesContextsConfigRequest added in v0.19.1025

type CreateAppKubernetesContextsConfigRequest struct {
	AppConfigID string `json:"app_config_id" validate:"required"`

	Contexts []AppKubernetesContext `json:"contexts" validate:"dive"`
}

func (*CreateAppKubernetesContextsConfigRequest) Validate added in v0.19.1025

type CreateAppOperationRoleConfigRequest added in v0.19.807

type CreateAppOperationRoleConfigRequest struct {
	AppConfigID string                     `json:"app_config_id" validate:"required"`
	Rules       []OperationRoleRuleRequest `json:"rules" validate:"required,dive"`
}

func (*CreateAppOperationRoleConfigRequest) Validate added in v0.19.807

type CreateAppPermissionsConfigRequest

type CreateAppPermissionsConfigRequest struct {
	ProvisionRole   AppAWSIAMRoleConfig `json:"provision_role" validate:"required"`
	DeprovisionRole AppAWSIAMRoleConfig `json:"deprovision_role" validate:"required"`
	MaintenanceRole AppAWSIAMRoleConfig `json:"maintenance_role" validate:"required"`

	BreakGlassRoles *[]AppAWSIAMRoleConfig `json:"break_glass_roles"`
	CustomRoles     *[]AppAWSIAMRoleConfig `json:"custom_roles"`

	AppConfigID string `json:"app_config_id" validate:"required"`
}

func (*CreateAppPermissionsConfigRequest) Validate

type CreateAppPoliciesConfigRequest

type CreateAppPoliciesConfigRequest struct {
	AppConfigID string `json:"app_config_id" validate:"required"`

	Policies []AppPolicyConfig `json:"policies"`
}

func (*CreateAppPoliciesConfigRequest) Validate

type CreateAppRequest

type CreateAppRequest struct {
	Name            string `json:"name" validate:"required,entity_name"`
	Description     string `json:"description"`
	DisplayName     string `json:"display_name"`
	SlackWebhookURL string `json:"slack_webhook_url"`
}

func (*CreateAppRequest) Validate

func (c *CreateAppRequest) Validate(v *validator.Validate) error

type CreateAppRunnerConfigRequest

type CreateAppRunnerConfigRequest struct {
	Type          app.AppRunnerType                 `json:"type" validate:"required"`
	EnvVars       map[string]*string                `json:"env_vars"`
	HelmDriver    app.AppRunnerConfigHelmDriverType `json:"helm_driver"`
	InitScriptURL string                            `json:"init_script_url"`
	InstanceType  string                            `json:"instance_type"`
	RunnerAPIURL  string                            `json:"runner_api_url"`
	PublicAPIURL  string                            `json:"public_api_url"`

	AppConfigID string `json:"app_config_id"`
}

func (*CreateAppRunnerConfigRequest) Validate

type CreateAppSandboxConfigRequest

type CreateAppSandboxConfigRequest struct {
	vcshelpers.VCSConfigRequest

	Type                         string  `json:"type,omitempty"`
	TerraformVersion             string  `json:"terraform_version,omitempty"`
	Runtime                      string  `json:"runtime,omitempty"`
	PulumiVersion                string  `json:"pulumi_version,omitempty"`
	DriftSchedule                *string `json:"drift_schedule,omitempty" validate:"omitempty,cron_schedule"`
	MaxAutoRetries               *int    `json:"max_auto_retries,omitempty"`
	SkipNoops                    *bool   `json:"skip_noops,omitempty"`
	AutoApproveOnPoliciesPassing *bool   `json:"auto_approve_on_policies_passing,omitempty"`

	VariablesFiles []string           `json:"variables_files,omitempty"`
	Variables      map[string]*string `json:"variables" validate:"required"`
	EnvVars        map[string]*string `json:"env_vars" validate:"required"`
	PulumiConfig   map[string]*string `json:"pulumi_config,omitempty"`

	OperationRoles map[app.OperationType]*string `json:"operation_roles,omitempty"`

	References []string `json:"references"`

	AppConfigID string `json:"app_config_id"`
}

func (*CreateAppSandboxConfigRequest) Validate

type CreateAppSecretRequest

type CreateAppSecretRequest struct {
	Name  string `json:"name" validate:"required,entity_name"`
	Value string `json:"value" validate:"required"`
}

func (*CreateAppSecretRequest) Validate

type CreateAppSecretsConfigRequest

type CreateAppSecretsConfigRequest struct {
	AppConfigID string `json:"app_config_id" validate:"required"`

	Secrets []AppSecretConfig `json:"secrets" validate:"dive"`
}

func (*CreateAppSecretsConfigRequest) Validate

type CreateAppStackConfigRequest

type CreateAppStackConfigRequest struct {
	Type        app.StackType `json:"type" validate:"required"`
	Description string        `json:"description" validate:"required"`
	Name        string        `json:"name" validate:"required"`

	RunnerNestedTemplateURL string `json:"runner_nested_template_url"`
	VPCNestedTemplateURL    string `json:"vpc_nested_template_url"`

	CustomNestedStacks []config.CustomNestedStack `json:"custom_nested_stacks"`

	AppConfigID string `json:"app_config_id" validate:"required"`
}

func (*CreateAppStackConfigRequest) Validate

type InstallGroupRequest added in v0.19.850

type InstallGroupRequest struct {
	Name           string   `json:"name" validate:"required,min=1"`
	Order          int      `json:"order" validate:"min=0"`
	InstallIDs     []string `json:"install_ids"`
	UseForPreviews bool     `json:"use_for_previews"`

	// LabelSelector dynamically resolves installs at deploy time.
	// Mutually exclusive with InstallIDs.
	LabelSelector *labels.Selector `json:"label_selector,omitempty"`
}

type KubernetesSyncTarget added in v0.19.986

type KubernetesSyncTarget struct {
	Namespaces []string `json:"namespaces" validate:"required,min=1,dive,hostname_rfc1123"`
	Name       string   `json:"name" validate:"required,hostname_rfc1123"`
	Key        string   `json:"key" validate:"required"`
}

type OperationRoleRuleRequest added in v0.19.807

type OperationRoleRuleRequest struct {
	Principal string            `json:"principal" validate:"required"`
	Operation app.OperationType `json:"operation" validate:"required"`
	Role      string            `json:"role" validate:"required"`
}

type Params

type Params struct {
	fx.In

	V               *validator.Validate
	DB              *gorm.DB `name:"psql"`
	MW              metrics.Writer
	L               *zap.Logger
	Cfg             *internal.Config
	VcsHelpers      *vcshelpers.Helpers
	Helpers         *appshelpers.Helpers
	InstallsHelpers *installshelpers.Helpers
	AccountsHelpers *accountshelpers.Helpers
	FeaturesClient  *features.Features
	QueueClient     *queueclient.Client
	EndpointAudit   *api.EndpointAudit
	TemporalClient  temporalclient.Client
	BlobService     blobstore.Service
}

type ReprovisionAppRequest

type ReprovisionAppRequest struct{}

type RestartAppRequest

type RestartAppRequest struct{}

type TriggerAppBranchRunRequest added in v0.19.850

type TriggerAppBranchRunRequest struct {
	ConfigID    string `json:"config_id"`     // optional - use latest if not provided
	Force       bool   `json:"force"`         // force run even if no changes detected
	PlanOnly    bool   `json:"plan_only"`     // plan-only preview mode (no apply)
	AppConfigID string `json:"app_config_id"` // optional - use pre-existing app config (skips VCS fetch + config parse)
	SkipBuilds  bool   `json:"skip_builds"`   // skip builds step (e.g. rollback to existing config with existing builds)
}

func (*TriggerAppBranchRunRequest) Validate added in v0.19.850

type UpdateAppBranchRequest added in v0.19.850

type UpdateAppBranchRequest struct {
	Name string `json:"name" validate:"required,min=1"`
}

func (*UpdateAppBranchRequest) Validate added in v0.19.850

type UpdateAppConfigInstallsRequest

type UpdateAppConfigInstallsRequest struct {
	UpdateAll  bool
	InstallIDs []string
}

func (*UpdateAppConfigInstallsRequest) Validate

type UpdateAppConfigRequest

type UpdateAppConfigRequest struct {
	Status            app.AppConfigStatus `json:"status"`
	StatusDescription string              `json:"status_description"`
	State             string              `json:"state"`
	ComponentIDs      []string            `json:"component_ids"`
}

func (*UpdateAppConfigRequest) Validate

type UpdateAppRequest

type UpdateAppRequest struct {
	Name            string            `json:"name"`
	Description     string            `json:"description"`
	DisplayName     string            `json:"display_name"`
	SlackWebhookURL *string           `json:"slack_webhook_url"`
	ConfigRepo      *string           `json:"config_repo"`
	ConfigDirectory *string           `json:"config_directory"`
	LabelColors     map[string]string `json:"label_colors,omitempty"`
}

func (*UpdateAppRequest) Validate

func (c *UpdateAppRequest) Validate(v *validator.Validate) error

Source Files

Jump to

Keyboard shortcuts

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