spiceerrors

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const Domain = "authzed.com"

Domain is the domain used for all errors.

Variables

This section is empty.

Functions

func AppendDetailsMetadata added in v0.0.3

func AppendDetailsMetadata(err error, key MetadataKey, value string) error

AppendDetailsMetadata appends the key-value pair to the error details metadata. If the error is nil or is not a status error, it is returned as is.

func CombineMetadata

func CombineMetadata(withMetadata WithMetadata, metadata map[string]string) map[string]string

CombineMetadata combines the metadata found on an existing error with that given.

func DebugAssert added in v0.0.3

func DebugAssert(condition func() bool, format string, args ...any)

DebugAssert is a no-op in non-CI builds

func ForReason

func ForReason(reason v1.ErrorReason, metadata map[string]string) *errdetails.ErrorInfo

ForReason returns an ErrorInfo block for a specific error reason as defined in the V1 API.

func GetDetails added in v0.0.3

func GetDetails[T protoiface.MessageV1](err error) (T, bool)

GetDetails returns the details of the error if they are of the provided type, if any.

func IsInTests

func IsInTests() bool

IsInTests returns true if go test is running Based on: https://stackoverflow.com/a/58945030

func MustBugf

func MustBugf(format string, args ...any) error

MustBugf returns an error representing a bug in the system. Will panic if run under testing.

func MustPanic

func MustPanic(format string, args ...any)

MustPanic is a special function for panicing when necessary to violate the linter.

func RequireReason

func RequireReason(t testing.TB, reason v1.ErrorReason, err error, expectedMetadataKeys ...string)

RequireReason asserts that an error is a gRPC error and returns the expected reason in the ErrorInfo. TODO(jschorr): Move into grpcutil.

func SetFinalizerForDebugging added in v0.0.3

func SetFinalizerForDebugging[T any](obj interface{}, finalizer func(obj T))

SetFinalizerForDebugging is a no-op in non-CI builds

func WithAdditionalDetails added in v0.0.3

func WithAdditionalDetails(err error, key MetadataKey, value string) bool

WithAdditionalDetails adds an additional details field to the error if it is possible.

func WithCodeAndDetails

func WithCodeAndDetails(err error, code codes.Code, details ...protoiface.MessageV1) *status.Status

WithCodeAndDetails returns a gRPC status message containing the error's message, the given status code and any supplied details.

func WithCodeAndDetailsAsError

func WithCodeAndDetailsAsError(err error, code codes.Code, details ...protoiface.MessageV1) error

WithCodeAndDetailsAsError returns an error containing the error's message, the given status code and any supplied details.

func WithCodeAndReason

func WithCodeAndReason(err error, code codes.Code, reason v1.ErrorReason) error

WithCodeAndReason returns a new error which wraps the existing error with a gRPC code and a reason block.

func WithReplacedDetails added in v0.0.3

func WithReplacedDetails[T protoiface.MessageV1](err error, toReplace T) error

WithReplacedDetails replaces the details of the error with the provided details. If the error is nil or is not a status error, it is returned as is. If the error does not have the details to replace, the provided details are appended.

Types

type ErrorBuilder

type ErrorBuilder struct {
	// contains filtered or unexported fields
}

ErrorBuilder is a fluent-style builder for TerminationError

func NewTerminationErrorBuilder

func NewTerminationErrorBuilder(err error) *ErrorBuilder

NewTerminationErrorBuilder returns a new ErrorBuilder for a termination.TerminationError.

func (*ErrorBuilder) Component

func (eb *ErrorBuilder) Component(component string) *ErrorBuilder

Component specifies the component in SpiceDB that

func (*ErrorBuilder) Error

func (eb *ErrorBuilder) Error() TerminationError

TerminationError returns the built termination TerminationError

func (*ErrorBuilder) ExitCode

func (eb *ErrorBuilder) ExitCode(exitCode int) *ErrorBuilder

ExitCode defines the ExitCode to be used upon process termination. Defaults to 1 if not specified.

func (*ErrorBuilder) Metadata

func (eb *ErrorBuilder) Metadata(key, value string) *ErrorBuilder

Metadata adds a new key-value pair of metadata to the termination TerminationError being built

func (*ErrorBuilder) Timestamp

func (eb *ErrorBuilder) Timestamp(timestamp time.Time) *ErrorBuilder

Timestamp defines the time of the error. Defaults to time.Now().UTC() if not specified.

type ErrorWithAdditionalDetails added in v0.0.3

type ErrorWithAdditionalDetails struct {

	// AdditionalDetails is a map of additional details for the error.
	AdditionalDetails map[string]string
	// contains filtered or unexported fields
}

ErrorWithAdditionalDetails is an error that includes additional details.

func NewErrorWithAdditionalDetails added in v0.0.3

func NewErrorWithAdditionalDetails(err error) *ErrorWithAdditionalDetails

func (*ErrorWithAdditionalDetails) AddToDetails added in v0.0.3

func (err *ErrorWithAdditionalDetails) AddToDetails(details map[string]string) map[string]string

func (*ErrorWithAdditionalDetails) Unwrap added in v0.0.3

func (err *ErrorWithAdditionalDetails) Unwrap() error

Unwrap returns the inner, wrapped error.

func (*ErrorWithAdditionalDetails) WithAdditionalDetails added in v0.0.3

func (err *ErrorWithAdditionalDetails) WithAdditionalDetails(key string, value string)

type ErrorWithSource

type ErrorWithSource struct {

	// SourceCodeString is the input source code string for the error.
	SourceCodeString string

	// LineNumber is the (1-indexed) line number of the error, or 0 if unknown.
	LineNumber uint64

	// ColumnPosition is the (1-indexed) column position of the error, or 0 if
	// unknown.
	ColumnPosition uint64
	// contains filtered or unexported fields
}

ErrorWithSource is an error that includes the source text and position information.

func AsErrorWithSource

func AsErrorWithSource(err error) (*ErrorWithSource, bool)

AsErrorWithSource returns the error as an ErrorWithSource, if applicable.

func NewErrorWithSource

func NewErrorWithSource(err error, sourceCodeString string, oneIndexedLineNumber uint64, oneIndexedColumnPosition uint64) *ErrorWithSource

NewErrorWithSource creates and returns a new ErrorWithSource.

func (*ErrorWithSource) Unwrap

func (err *ErrorWithSource) Unwrap() error

Unwrap returns the inner, wrapped error.

type HasMetadata

type HasMetadata interface {
	// DetailsMetadata returns the metadata for details for this error.
	DetailsMetadata() map[string]string
}

HasMetadata indicates that the error has metadata defined.

type MetadataKey added in v0.0.3

type MetadataKey string

MetadataKey is the type used to represent the keys of the metadata map in the error details.

const DebugTraceErrorDetailsKey MetadataKey = "debug_trace_proto_text"

DebugTraceErrorDetailsKey is the key used to store the debug trace in the error details. The value is expected to be a string containing the proto text of a DebugInformation message.

type SourcePosition

type SourcePosition struct {
	// LineNumber is the 1-indexed line number in the input source.
	LineNumber int

	// ColumnPosition is the 1-indexed column position in the input source.
	ColumnPosition int
}

SourcePosition is a position in the input source.

type SupportsAdditionalMetadata added in v0.0.3

type SupportsAdditionalMetadata interface {
	WithAdditionalDetails(key MetadataKey, value string)
}

type TerminationError

type TerminationError struct {
	Component   string            `json:"component"`
	Timestamp   time.Time         `json:"timestamp"`
	ErrorString string            `json:"error"`
	Metadata    map[string]string `json:"metadata"`
	// contains filtered or unexported fields
}

TerminationError represents an error that captures contextual information to make available on process termination. The error will be marshalled as JSON and serialized into a file-path specified via CLI arguments

func (TerminationError) ExitCode

func (e TerminationError) ExitCode() int

ExitCode returns the exit code to be returned on process termination

type WithMetadata

type WithMetadata interface {
	DetailsMetadata() map[string]string
}

Jump to

Keyboard shortcuts

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