Documentation ¶
Index ¶
- Constants
- func AppendDetailsMetadata(err error, key MetadataKey, value string) error
- func CombineMetadata(withMetadata WithMetadata, metadata map[string]string) map[string]string
- func DebugAssert(condition func() bool, format string, args ...any)
- func ForReason(reason v1.ErrorReason, metadata map[string]string) *errdetails.ErrorInfo
- func GetDetails[T protoiface.MessageV1](err error) (T, bool)
- func IsInTests() bool
- func MustBugf(format string, args ...any) error
- func MustPanic(format string, args ...any)
- func RequireReason(t testing.TB, reason v1.ErrorReason, err error, expectedMetadataKeys ...string)
- func SetFinalizerForDebugging[T any](obj interface{}, finalizer func(obj T))
- func WithAdditionalDetails(err error, key MetadataKey, value string) bool
- func WithCodeAndDetails(err error, code codes.Code, details ...protoiface.MessageV1) *status.Status
- func WithCodeAndDetailsAsError(err error, code codes.Code, details ...protoiface.MessageV1) error
- func WithCodeAndReason(err error, code codes.Code, reason v1.ErrorReason) error
- func WithReplacedDetails[T protoiface.MessageV1](err error, toReplace T) error
- type ErrorBuilder
- func (eb *ErrorBuilder) Component(component string) *ErrorBuilder
- func (eb *ErrorBuilder) Error() TerminationError
- func (eb *ErrorBuilder) ExitCode(exitCode int) *ErrorBuilder
- func (eb *ErrorBuilder) Metadata(key, value string) *ErrorBuilder
- func (eb *ErrorBuilder) Timestamp(timestamp time.Time) *ErrorBuilder
- type ErrorWithAdditionalDetails
- type ErrorWithSource
- type HasMetadata
- type MetadataKey
- type SourcePosition
- type SupportsAdditionalMetadata
- type TerminationError
- type WithMetadata
Constants ¶
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
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 ¶
MustBugf returns an error representing a bug in the system. Will panic if run under testing.
func RequireReason ¶
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 ¶
WithCodeAndDetails returns a gRPC status message containing the error's message, the given status code and any supplied details.
func WithCodeAndDetailsAsError ¶
WithCodeAndDetailsAsError returns an error containing the error's message, the given status code and any supplied details.
func WithCodeAndReason ¶
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