deployerrors

package
v0.19.1020 Latest Latest
Warning

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

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

Documentation

Overview

Package deployerrors holds the typed CompositeError implementations produced by component deploy (plan + apply) flows. It lives next to the installs domain that consumes it rather than in a central error catalog: each domain owns the custom errors it knows how to produce and parse.

Index

Constants

View Source
const AWSPermissionErrorType compositeerrors.Type = "terraform.aws_permission"

AWSPermissionErrorType is the discriminator for AWS IAM permission failures surfaced from a terraform plan/apply during a component deploy.

View Source
const ComponentBuildUnavailableErrorType compositeerrors.Type = "deploy.component_build_unavailable"

ComponentBuildUnavailableErrorType is the discriminator for a deploy that cannot proceed because the component it targets has no deployable build.

Variables

This section is empty.

Functions

func Parse

Parse inspects raw terraform plan/apply error output and returns a typed AWSPermissionError when it recognises an AWS IAM permission failure. It returns nil when there is no confident match, so callers fall back to the existing plain-string status description.

Types

type AWSPermissionError

type AWSPermissionError struct {
	// Action is the IAM action the caller lacked, e.g. "ec2:CreateVpc",
	// "s3:CreateBucket".
	Action string `json:"action"`

	// Resource is the ARN (or wildcard) the call targeted, when known.
	Resource string `json:"resource,omitempty"`

	// Principal is the IAM principal ARN the call was made as, when known.
	Principal string `json:"principal,omitempty"`

	// AWSErrorCode is the API error code we matched on (AccessDenied,
	// UnauthorizedOperation, AccessDeniedException, AuthorizationError).
	AWSErrorCode string `json:"aws_error_code,omitempty"`

	// RawMessage is the AWS-emitted error line we extracted the fields from.
	RawMessage string `json:"raw_message,omitempty"`
}

AWSPermissionError is the typed payload for an AWS API call that failed with AccessDenied / UnauthorizedOperation because the deploy's IAM principal is missing a permission. It implements compositeerrors.CompositeError so it can be returned like any error and frozen onto the owning deploy row.

func (*AWSPermissionError) Error

func (e *AWSPermissionError) Error() string

Error returns the one-line headline shown to users.

func (*AWSPermissionError) Sections

func (e *AWSPermissionError) Sections() []compositeerrors.Section

Sections returns the structured detail rendered in the dashboard: what AWS said, the principal/resource context, and a copy-pasteable IAM policy statement granting the missing action.

func (*AWSPermissionError) Severity

func (*AWSPermissionError) Type

type ComponentBuildUnavailableError added in v0.19.1014

type ComponentBuildUnavailableError struct {
	Reason ComponentBuildUnavailableReason `json:"reason"`

	ComponentID   string `json:"component_id,omitempty"`
	ComponentName string `json:"component_name,omitempty"`

	BuildID                string `json:"build_id,omitempty"`
	BuildStatus            string `json:"build_status,omitempty"`
	BuildStatusDescription string `json:"build_status_description,omitempty"`
}

ComponentBuildUnavailableError is the typed payload for a deploy that cannot run because its component build is unavailable. It implements compositeerrors.CompositeError so it can be frozen onto the owning deploy row and rendered in the dashboard, guiding the user to (re)build the component.

func (*ComponentBuildUnavailableError) Error added in v0.19.1014

func (*ComponentBuildUnavailableError) Sections added in v0.19.1014

func (*ComponentBuildUnavailableError) Severity added in v0.19.1014

func (*ComponentBuildUnavailableError) Type added in v0.19.1014

type ComponentBuildUnavailableReason added in v0.19.1014

type ComponentBuildUnavailableReason string

ComponentBuildUnavailableReason describes why the build could not be deployed.

const (
	// ComponentBuildUnavailableReasonFailed means the latest build for the
	// component is in a terminal failure state (error / policy_failed).
	ComponentBuildUnavailableReasonFailed ComponentBuildUnavailableReason = "failed"

	// ComponentBuildUnavailableReasonMissing means no build exists for the
	// component yet, so there is no artifact to deploy.
	ComponentBuildUnavailableReasonMissing ComponentBuildUnavailableReason = "missing"
)

Jump to

Keyboard shortcuts

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