Documentation
¶
Overview ¶
package failure defines shared error reasons, retry policies, and safe messages. commands, logs, and APIs choose how to present them.
Index ¶
- func Describe(err error) (Reason, Definition, bool)
- func HelpURL(reason Reason, caseID string) string
- func KnownCase(err error) string
- func SafeMessage(err error, fallback Reason) string
- func Wrap(operation Operation, reason Reason, cause error) error
- func WrapSetting(operation Operation, reason Reason, setting Setting, cause error) error
- type Case
- type Class
- type ClientEntry
- type Definition
- type Error
- type Operation
- type Reason
- type Retry
- type Setting
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Describe ¶
func Describe(err error) (Reason, Definition, bool)
Describe returns authored text for the outermost typed failure.
func SafeMessage ¶
SafeMessage returns authored output; raw provider and database text stays in the cause.
Types ¶
type Case ¶
type Case struct {
ID string `json:"id"`
Description string `json:"description"`
Action string `json:"action"`
DiagramDetail string `json:"diagram_detail"`
}
Case is authored, non-sensitive guidance for an identified failure condition.
type Class ¶
type Class string
Class groups reasons for retry and transport decisions. a class is not a replacement for the more specific Reason.
type ClientEntry ¶
type ClientEntry struct {
Code Reason `json:"code"`
Slug string `json:"slug"`
Class Class `json:"class"`
Message string `json:"message"`
Action string `json:"action"`
Cases []Case `json:"cases,omitempty"`
}
ClientEntry is the public, code-owned description of one client failure.
func ClientReasons ¶
func ClientReasons() []ClientEntry
ClientReasons returns every client failure in stable code order.
type Definition ¶
Definition is safe copy for one reason. causes and input values must not be interpolated into Message or Action.
func DefinitionFor ¶
func DefinitionFor(reason Reason) (Definition, bool)
DefinitionFor reports the text and retry policy for one known reason.
type Error ¶
type Error struct {
// contains filtered or unexported fields
}
Error keeps internal operation context and the original cause. presentation uses DefinitionFor instead of parsing Error().
type Operation ¶
type Operation string
Operation names the work being attempted, not a package or error string.
type Reason ¶
type Reason string
Reason identifies one actionable failure. ids remain stable when they are exposed to machine clients; a changed meaning needs a new reason.
const ( ConnectionTLSRejected Reason = "TNL_CLIENT_CONNECTION_TLS_REJECTED" ConnectionCleanupFailed Reason = "TNL_CLIENT_CONNECTION_CLEANUP_FAILED" ConnectionPortInUse Reason = "TNL_CLIENT_CONNECTION_PORT_IN_USE" ConnectionTeamBinding Reason = "TNL_CLIENT_CONNECTION_TEAM_BINDING" ConnectionTransportMissing Reason = "TNL_CLIENT_CONNECTION_TRANSPORT_MISSING" ConnectionHandleInvalid Reason = "TNL_CLIENT_CONNECTION_HANDLE_INVALID" ConnectionExpired Reason = "TNL_CLIENT_CONNECTION_EXPIRED" ConnectionRequestInvalid Reason = "TNL_CLIENT_CONNECTION_REQUEST_INVALID" TargetDiscoveryInvalid Reason = "TNL_CLIENT_TARGET_DISCOVERY_INVALID" TargetDiscoveryDenied Reason = "TNL_CLIENT_TARGET_DISCOVERY_DENIED" TargetDiscoveryAuthentication Reason = "TNL_CLIENT_TARGET_DISCOVERY_AUTHENTICATION" TargetDiscoveryNotFound Reason = "TNL_CLIENT_TARGET_DISCOVERY_NOT_FOUND" TargetDiscoveryNotReady Reason = "TNL_CLIENT_TARGET_DISCOVERY_NOT_READY" TargetDiscoveryMetadata Reason = "TNL_CLIENT_TARGET_DISCOVERY_METADATA" TargetDiscoveryChanged Reason = "TNL_CLIENT_TARGET_DISCOVERY_CHANGED" TargetDiscoveryStale Reason = "TNL_CLIENT_TARGET_DISCOVERY_STALE" AWSBootstrapInvalid Reason = "TNL_CLIENT_AWS_BOOTSTRAP_INVALID" AWSBootstrapScope Reason = "TNL_CLIENT_AWS_BOOTSTRAP_SCOPE" AWSBootstrapStateLost Reason = "TNL_CLIENT_AWS_BOOTSTRAP_STATE_LOST" AWSBootstrapSecretConflict Reason = "TNL_CLIENT_AWS_BOOTSTRAP_SECRET_CONFLICT" AWSBootstrapVersionConflict Reason = "TNL_CLIENT_AWS_BOOTSTRAP_VERSION_CONFLICT" AWSBootstrapDenied Reason = "TNL_CLIENT_AWS_BOOTSTRAP_DENIED" AWSBootstrapAuthentication Reason = "TNL_CLIENT_AWS_BOOTSTRAP_AUTHENTICATION" AWSBootstrapThrottled Reason = "TNL_CLIENT_AWS_BOOTSTRAP_THROTTLED" InvalidControlURL Reason = "TNL_CLIENT_INVALID_CONTROL_URL" InvalidControlPort Reason = "TNL_CLIENT_INVALID_CONTROL_PORT" InvalidAuthorityURL Reason = "TNL_CLIENT_INVALID_AUTHORITY_URL" InvalidTarget Reason = "TNL_CLIENT_INVALID_TARGET" TargetTLSRejected Reason = "TNL_CLIENT_TARGET_TLS_REJECTED" MissingTarget Reason = "TNL_CLIENT_MISSING_TARGET" InvalidCommand Reason = "TNL_CLIENT_INVALID_COMMAND" AppReadinessTimeout Reason = "TNL_CLIENT_APP_READINESS_TIMEOUT" AppCursorExpired Reason = "TNL_CLIENT_APP_CURSOR_EXPIRED" AppConfigurationConflict Reason = "TNL_CLIENT_APP_CONFIGURATION_CONFLICT" AppRemoteService Reason = "TNL_CLIENT_APP_REMOTE_SERVICE" NamedPublishOverrides Reason = "TNL_CLIENT_NAMED_PUBLISH_OVERRIDES" NamedPublishSession Reason = "TNL_CLIENT_NAMED_PUBLISH_SESSION" NamedPublishTeam Reason = "TNL_CLIENT_NAMED_PUBLISH_TEAM" AppOwnerConflict Reason = "TNL_CLIENT_APP_OWNER_CONFLICT" PublisherSelectionInvalid Reason = "TNL_CLIENT_PUBLISHER_SELECTION_INVALID" PublisherGrantMismatch Reason = "TNL_CLIENT_PUBLISHER_GRANT_MISMATCH" PublisherSavedPolicy Reason = "TNL_CLIENT_PUBLISHER_SAVED_POLICY" PublisherEnrollmentInput Reason = "TNL_CLIENT_PUBLISHER_ENROLLMENT_INPUT" PublisherNamespaceOptions Reason = "TNL_CLIENT_PUBLISHER_NAMESPACE_OPTIONS" PublisherInstallOptions Reason = "TNL_CLIENT_PUBLISHER_INSTALL_OPTIONS" PublisherInstallInspection Reason = "TNL_CLIENT_PUBLISHER_INSTALL_INSPECTION" InitFailed Reason = "TNL_CLIENT_INIT_FAILED" ServiceNotConfigured Reason = "TNL_CLIENT_SERVICE_NOT_CONFIGURED" InvalidTunnelFlags Reason = "TNL_CLIENT_INVALID_TUNNEL_FLAGS" ConnectModeInvalid Reason = "TNL_CLIENT_CONNECT_MODE_INVALID" ConnectStdioProtocolInvalid Reason = "TNL_CLIENT_CONNECT_STDIO_PROTOCOL_INVALID" ConnectProtocolMismatch Reason = "TNL_CLIENT_CONNECT_PROTOCOL_MISMATCH" ConnectAccessRequired Reason = "TNL_CLIENT_CONNECT_ACCESS_REQUIRED" DemoTargetNotAllowed Reason = "TNL_CLIENT_DEMO_TARGET_NOT_ALLOWED" DemoConfigNotUsed Reason = "TNL_CLIENT_DEMO_CONFIG_NOT_USED" DemoURLManaged Reason = "TNL_CLIENT_DEMO_URL_MANAGED" DemoMustBeEphemeral Reason = "TNL_CLIENT_DEMO_MUST_BE_EPHEMERAL" ProjectConfigMissing Reason = "TNL_CLIENT_PROJECT_CONFIG_MISSING" ClientStateLocked Reason = "TNL_CLIENT_STATE_LOCKED" PublisherIdentityStateInvalid Reason = "TNL_CLIENT_PUBLISHER_IDENTITY_STATE_INVALID" PublisherCertificateStateMissing Reason = "TNL_CLIENT_PUBLISHER_CERTIFICATE_STATE_MISSING" PublisherEnrollmentRequired Reason = "TNL_CLIENT_PUBLISHER_ENROLLMENT_REQUIRED" InstalledPublishRunPending Reason = "TNL_CLIENT_INSTALLED_PUBLISH_RUN_PENDING" PublisherInstallSourceInvalid Reason = "TNL_CLIENT_PUBLISHER_INSTALL_SOURCE_INVALID" ServiceNotInstalled Reason = "TNL_CLIENT_SERVICE_NOT_INSTALLED" InstalledPublisherSelectionMissing Reason = "TNL_CLIENT_INSTALLED_PUBLISHER_SELECTION_MISSING" InstalledTargetMissing Reason = "TNL_CLIENT_INSTALLED_TARGET_MISSING" InstalledJobAmbiguous Reason = "TNL_CLIENT_INSTALLED_JOB_AMBIGUOUS" DetachedNotFound Reason = "TNL_CLIENT_DETACHED_NOT_FOUND" DetachedStartFailed Reason = "TNL_CLIENT_DETACHED_START_FAILED" GuestSessionInvalid Reason = "TNL_CLIENT_GUEST_SESSION_INVALID" TeamNotFound Reason = "TNL_CLIENT_TEAM_NOT_FOUND" TeamSelectionAmbiguous Reason = "TNL_CLIENT_TEAM_SELECTION_AMBIGUOUS" DomainNotAvailable Reason = "TNL_CLIENT_DOMAIN_NOT_AVAILABLE" DomainNotReady Reason = "TNL_CLIENT_DOMAIN_NOT_READY" CustomDomainsDisabled Reason = "TNL_CLIENT_CUSTOM_DOMAINS_DISABLED" MemberHostnameDepthExceeded Reason = "TNL_CLIENT_MEMBER_HOSTNAME_DEPTH_EXCEEDED" InvalidDomainName Reason = "TNL_CLIENT_INVALID_DOMAIN_NAME" ProjectConfigInvalid Reason = "TNL_CLIENT_PROJECT_CONFIG_INVALID" ObservabilityConfigInvalid Reason = "TNL_CLIENT_OBSERVABILITY_CONFIG_INVALID" PublisherDeploymentInvalid Reason = "TNL_CLIENT_PUBLISHER_DEPLOYMENT_INVALID" PublisherDeploymentMetadataInvalid Reason = "TNL_CLIENT_PUBLISHER_DEPLOYMENT_METADATA_INVALID" PublisherDeploymentWriteFailed Reason = "TNL_CLIENT_PUBLISHER_DEPLOYMENT_WRITE_FAILED" AliasOwned Reason = "TNL_CLIENT_ALIAS_OWNED" AliasReceiverUnready Reason = "TNL_CLIENT_ALIAS_RECEIVER_UNREADY" AliasNotSelected Reason = "TNL_CLIENT_ALIAS_NOT_SELECTED" AliasPolicyConflict Reason = "TNL_CLIENT_ALIAS_POLICY_CONFLICT" WebhookOwned Reason = "TNL_CLIENT_WEBHOOK_OWNED" WebhookReceiverUnready Reason = "TNL_CLIENT_WEBHOOK_RECEIVER_UNREADY" WebhookNotSelected Reason = "TNL_CLIENT_WEBHOOK_NOT_SELECTED" IntegrationURLNotReady Reason = "TNL_CLIENT_INTEGRATION_URL_NOT_READY" IntegrationURLLeaseExpired Reason = "TNL_CLIENT_INTEGRATION_URL_LEASE_EXPIRED" WebhookNoReadyReceivers Reason = "TNL_CLIENT_WEBHOOK_NO_READY_RECEIVERS" WebhookOwnerMissing Reason = "TNL_CLIENT_WEBHOOK_OWNER_MISSING" WebhookOwnerUnready Reason = "TNL_CLIENT_WEBHOOK_OWNER_UNREADY" WebhookPolicyConflict Reason = "TNL_CLIENT_WEBHOOK_POLICY_CONFLICT" InitPackageManager Reason = "TNL_CLIENT_INIT_PACKAGE_MANAGER" InitFramework Reason = "TNL_CLIENT_INIT_FRAMEWORK" InvalidSetupInput Reason = "TNL_CLIENT_INVALID_SETUP_INPUT" FeedbackInputInvalid Reason = "TNL_CLIENT_FEEDBACK_INPUT_INVALID" PreviewNotSaved Reason = "TNL_CLIENT_PREVIEW_NOT_SAVED" PreviewStateConflict Reason = "TNL_CLIENT_PREVIEW_STATE_CONFLICT" BrowserOpenFailed Reason = "TNL_CLIENT_BROWSER_OPEN_FAILED" TransportFallback Reason = "TNL_CLIENT_TRANSPORT_FALLBACK" Authentication Reason = "TNL_CLIENT_AUTHENTICATION_REQUIRED" AuthRecoveryRequired Reason = "TNL_CLIENT_AUTH_RECOVERY_REQUIRED" AuthWaitTimeout Reason = "TNL_CLIENT_AUTH_WAIT_TIMEOUT" AuthOperationNotFound Reason = "TNL_CLIENT_AUTH_OPERATION_NOT_FOUND" AuthCancelled Reason = "TNL_CLIENT_AUTH_CANCELLED" AuthDenied Reason = "TNL_CLIENT_AUTH_DENIED" AuthExpired Reason = "TNL_CLIENT_AUTH_EXPIRED" ServerResourceNotFound Reason = "TNL_CLIENT_SERVER_RESOURCE_NOT_FOUND" ServerConflict Reason = "TNL_CLIENT_SERVER_CONFLICT" ServerDenied Reason = "TNL_CLIENT_SERVER_DENIED" ServerRateLimited Reason = "TNL_CLIENT_SERVER_RATE_LIMITED" GuestTrialExhausted Reason = "TNL_CLIENT_GUEST_TRIAL_EXHAUSTED" GuestDemoOnly Reason = "TNL_CLIENT_GUEST_DEMO_ONLY" GuestIssuanceLimited Reason = "TNL_CLIENT_GUEST_ISSUANCE_LIMITED" GuestSignInRequired Reason = "TNL_CLIENT_GUEST_SIGN_IN_REQUIRED" GuestIPChanged Reason = "TNL_CLIENT_GUEST_IP_CHANGED" ServerResponseInvalid Reason = "TNL_CLIENT_SERVER_RESPONSE_INVALID" ServerRequestInvalid Reason = "TNL_CLIENT_SERVER_REQUEST_INVALID" DNSPending Reason = "TNL_CLIENT_DNS_PENDING" RelayLeaseStale Reason = "relay.lease_stale" InvalidRole Reason = "server.invalid_role" ServerConfigInvalid Reason = "server.config_invalid" ServerListenAddressInvalid Reason = "server.listen_address_invalid" ServerDatabaseURLInvalid Reason = "server.database_url_invalid" ServerStorageKeyInvalid Reason = "server.storage_key_invalid" ServerACMEInvalid Reason = "server.acme_invalid" ServerOIDCInvalid Reason = "server.oidc_invalid" ServerDNSConfigInvalid Reason = "server.dns_config_invalid" ServerUsageConfigInvalid Reason = "server.usage_config_invalid" ServerEmailConfigInvalid Reason = "server.email_config_invalid" ServerWebsiteConfigInvalid Reason = "server.website_config_invalid" ServerClusterSecretInvalid Reason = "server.cluster_secret_invalid" ServerConfigFileInvalid Reason = "server.config_file_invalid" ServerCommandInvalid Reason = "server.command_invalid" DirectDatabaseURLMissing Reason = "server.direct_database_url_missing" ServerMigrationFailed Reason = "server.migration_failed" ServerStartupFailed Reason = "server.startup_failed" ServerWorkerFailed Reason = "server.worker_failed" ServerIngressFailed Reason = "server.ingress_failed" ServerRelayFailed Reason = "server.relay_failed" ServerConnectionFailed Reason = "server.connection_failed" ServerCertificateFailed Reason = "server.certificate_failed" ServerCertificateRejected Reason = "server.certificate_rejected" ServerDNSFailed Reason = "server.dns_failed" ServerDNSConflict Reason = "server.dns_conflict" ServerUsageDeliveryFailed Reason = "server.usage_delivery_failed" ServerEmailDeliveryFailed Reason = "server.email_delivery_failed" ServerEmailLeaseStale Reason = "server.email_lease_stale" ServerStoredStateInvalid Reason = "server.stored_state_invalid" ServerAPIInternal Reason = "server.api_internal" BenchmarkInputInvalid Reason = "benchmark.input_invalid" BenchmarkMeasurementFailed Reason = "benchmark.measurement_failed" Unexpected Reason = "internal.unexpected" )
const ( ServerDiagnosticsBusy Reason = "server.diagnostics_busy" )
const ServerControlConnectionFailed Reason = "server.control_connection_failed"
type Retry ¶
type Retry uint8
Retry describes whether retrying the same operation can make progress.
type Setting ¶
type Setting string
Setting is a code-owned configuration field name. its value is never stored with an error or printed by an output adapter.
const ( SettingDatabaseURL Setting = "TNLD_DATABASE_URL" SettingDatabaseDirectURL Setting = "TNLD_DATABASE_DIRECT_URL" SettingStorageKey Setting = "TNLD_STORAGE_KEY" SettingMetricsListen Setting = "TNLD_METRICS_LISTEN" SettingControlListen Setting = "TNLD_CONTROL_LISTEN" SettingPrivateControlListen Setting = "TNLD_PRIVATE_CONTROL_LISTEN" SettingPrivateControlCert Setting = "TNLD_PRIVATE_CONTROL_TLS_CERTIFICATE_FILE" SettingPrivateControlKey Setting = "TNLD_PRIVATE_CONTROL_TLS_PRIVATE_KEY_FILE" SettingIngressListen Setting = "TNLD_INGRESS_LISTEN" SettingIngressUDPListen Setting = "TNLD_INGRESS_UDP_LISTEN" SettingRelayTCPListen Setting = "TNLD_RELAY_TCP_LISTEN" SettingRelayUDPListen Setting = "TNLD_RELAY_UDP_LISTEN" SettingInternalRelayListen Setting = "TNLD_INTERNAL_RELAY_LISTEN" SettingDNSServer Setting = "TNLD_DNS_SERVER" SettingEmailURL Setting = "TNLD_EMAIL_URL" SettingWebhookSecret Setting = "TNLD_WEBHOOK_SECRET" SettingWebServiceSecret Setting = "TNLD_WEB_SERVICE_SECRET" SettingOIDCIssuer Setting = "TNLD_OIDC_ISSUER" )
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
cataloggen
command
|
|
|
Code generated by scripts/generate/diagnostic-codes.ts.
|
Code generated by scripts/generate/diagnostic-codes.ts. |
|
Package problemtype defines canonical API problem type URIs.
|
Package problemtype defines canonical API problem type URIs. |