rdev/internal/domain/errors.go
jordan 9a1309a0c5 feat: fix composable monorepo CI builds + health endpoint improvements
Composable monorepo CI fixes:
- Add empty go.sum.tmpl files for pkg, service, worker, and cli components
- Fix Dockerfile.tmpl glob patterns (COPY go.work.sum* is invalid in Kaniko)
- Add deps step to CI that runs go work sync and go mod tidy before builds
- Fix scalar-go dependency version (v0.1.2 doesn't exist, use v0.13.0)

Health endpoint improvements:
- Add registry health check (zot OCI /v2/ endpoint)
- Add health metrics for CI, registry, and Git
- Add /health/ci endpoint for Woodpecker health

Visual verification scaffolding:
- Add Playwright pod and scripts ConfigMap
- Add vision.md and implementation breakdown plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 18:46:51 -07:00

86 lines
3.0 KiB
Go

package domain
import "errors"
// Domain errors - these are business-level errors that should be translated
// to appropriate HTTP status codes or gRPC error codes by the presentation layer.
var (
// Generic errors
ErrNotFound = errors.New("not found")
// Project errors
ErrProjectNotFound = errors.New("project not found")
ErrProjectNotRunning = errors.New("project is not running")
ErrInvalidProjectName = errors.New("invalid project name")
// Template errors
ErrTemplateNotFound = errors.New("template not found")
// Command errors
ErrCommandNotFound = errors.New("command not found")
ErrCommandTimeout = errors.New("command timed out")
ErrCommandCancelled = errors.New("command was cancelled")
ErrLimitExceeded = errors.New("concurrent command limit exceeded")
ErrInvalidCommand = errors.New("invalid command")
ErrCommandSanitization = errors.New("command failed sanitization")
// Agent errors
ErrInvalidAgentProvider = errors.New("invalid agent provider")
ErrPromptRequired = errors.New("prompt is required")
ErrInvalidTimeout = errors.New("timeout cannot be negative")
// Credential errors
ErrCredentialNotFound = errors.New("credential not found")
// Work queue errors
ErrWorkTaskNotFound = errors.New("work task not found")
// Worker pool errors
ErrWorkerNotFound = errors.New("worker not found")
ErrWorkerIDRequired = errors.New("worker ID is required")
ErrWorkerHostnameRequired = errors.New("worker hostname is required")
// Build errors
ErrBuildNotFound = errors.New("build not found")
// API Key errors
ErrKeyNotFound = errors.New("api key not found")
ErrKeyRevoked = errors.New("api key has been revoked")
ErrKeyExpired = errors.New("api key has expired")
ErrKeyInvalid = errors.New("invalid api key format")
// Authorization errors
ErrUnauthorized = errors.New("unauthorized")
ErrForbidden = errors.New("forbidden")
ErrInsufficientScope = errors.New("insufficient scope")
ErrIPNotAllowed = errors.New("ip address not allowed")
// Rate limiting errors
ErrRateLimited = errors.New("rate limit exceeded")
// Webhook errors
ErrWebhookNotFound = errors.New("webhook not found")
ErrInvalidWebhook = errors.New("invalid webhook configuration")
// Domain errors
ErrDuplicateDomain = errors.New("domain already exists")
ErrDomainNotFound = errors.New("domain not found")
// Component errors
ErrInvalidComponentName = errors.New("invalid component name")
ErrInvalidComponentType = errors.New("invalid component type")
ErrDuplicateComponent = errors.New("component already exists")
ErrComponentNotFound = errors.New("component not found")
// Audit errors
ErrAuditNotFound = errors.New("audit log entry not found")
// Operation errors
ErrOperationNotFound = errors.New("operation not found")
// Infrastructure errors (should typically be wrapped)
ErrDatabaseConnection = errors.New("database connection error")
ErrKubernetesError = errors.New("kubernetes error")
ErrRegistryUnavailable = errors.New("container registry unavailable")
)