Documentation ¶
Index ¶
- Constants
- Variables
- func CodeToString(c Code) string
- func CustomMatcher(key string) (string, bool)
- func GetHeader(ctx context.Context, header string) string
- func GetNonGRPCGatewayHeader(ctx context.Context, header string) string
- func IsTxSupported(ctx context.Context) bool
- func MarshalStatus(status *spb.Status) ([]byte, error)
- func ToGRPCCode(code Code) codes.Code
- func ToHTTPCode(code Code) int
- type CollationType
- type CustomDecoder
- type CustomMarshaler
- func (c *CustomMarshaler) ContentType(v interface{}) string
- func (c *CustomMarshaler) Marshal(v interface{}) ([]byte, error)
- func (c *CustomMarshaler) NewDecoder(r io.Reader) runtime.Decoder
- func (c *CustomMarshaler) NewEncoder(w io.Writer) runtime.Encoder
- func (c *CustomMarshaler) Unmarshal(data []byte, v interface{}) error
- type Metadata
- type Request
- type RequestWithProject
- type RequestWithProjectAndCollection
- type Response
- type SearchHitMetadata
- type TigrisError
- func (e *TigrisError) As(i any) bool
- func (e *TigrisError) Error() string
- func (e *TigrisError) GRPCStatus() *status.Status
- func (e *TigrisError) RetryDelay() time.Duration
- func (e *TigrisError) WithDetails(details ...proto.Message) *TigrisError
- func (e *TigrisError) WithRetry(d time.Duration) *TigrisError
- type Validator
Constants ¶
const ( // HeaderRequestTimeout is an end-to-end request header that indicates the maximum time that a client is // prepared to await a response. The value of the header is in seconds. A client is allowed to send fractional // values. For ex, 0.1 means 100milliseconds. HeaderRequestTimeout = "Request-Timeout" HeaderAccept = "Accept" HeaderAccessControlAllowOrigin = "Access-Control-Allow-Origin" HeaderAuthorization = "authorization" SetCookie = "Set-Cookie" Cookie = "Cookie" HeaderPrefix = "Tigris-" HeaderTxID = "Tigris-Tx-Id" HeaderTxOrigin = "Tigris-Tx-Origin" HeaderSchemaSignOff = "Tigris-Schema-Sign-Off" HeaderBypassAuthCache = "Tigris-Bypass-Auth-Cache" // #nosec G101 HeaderReadSearchDataFromStorage = "Tigris-Search-Read-From-Storage" )
const ( HealthMethodName = "/HealthAPI/Health" InsertMethodName = apiMethodPrefix + "Insert" ReplaceMethodName = apiMethodPrefix + "Replace" UpdateMethodName = apiMethodPrefix + "Update" DeleteMethodName = apiMethodPrefix + "Delete" ReadMethodName = apiMethodPrefix + "Read" IndexCollection = apiMethodPrefix + "IndexCollection" SearchIndexCollectionMethodName = apiMethodPrefix + "BuildSearchIndex" SearchMethodName = apiMethodPrefix + "Search" SubscribeMethodName = apiMethodPrefix + "Subscribe" EventsMethodName = apiMethodPrefix + "Events" CommitTransactionMethodName = apiMethodPrefix + "CommitTransaction" RollbackTransactionMethodName = apiMethodPrefix + "RollbackTransaction" CreateOrUpdateCollectionMethodName = apiMethodPrefix + "CreateOrUpdateCollection" DropCollectionMethodName = apiMethodPrefix + "DropCollection" DropDatabaseMethodName = apiMethodPrefix + "DropDatabase" ListDatabasesMethodName = apiMethodPrefix + "ListDatabases" ListCollectionsMethodName = apiMethodPrefix + "ListCollections" DescribeDatabaseMethodName = apiMethodPrefix + "DescribeDatabase" DescribeCollectionMethodName = apiMethodPrefix + "DescribeCollection" ObservabilityMethodPrefix = "/tigrisdata.observability.v1.Observability/" ManagementMethodPrefix = "/tigrisdata.management.v1.Management/" CreateNamespaceMethodName = ManagementMethodPrefix + "CreateNamespace" ListNamespaceMethodName = ManagementMethodPrefix + "ListNamespaces" DeleteNamespaceMethodName = ManagementMethodPrefix + "DeleteNamespace" AuthMethodPrefix = "/tigrisdata.auth.v1.Auth/" GetAccessTokenMethodName = AuthMethodPrefix + "GetAccessToken" )
const CollationKey string = "collation"
Variables ¶
var SupportedCollations = [...]string{ CaseInsensitive: "ci", CaseSensitive: "cs", CollationSortKey: "csk", }
Functions ¶
func CodeToString ¶
func CodeToString(c Code) string
CodeToString convert Tigris error code into string representation.
func CustomMatcher ¶
func GetNonGRPCGatewayHeader ¶
func IsTxSupported ¶
func MarshalStatus ¶
MarshalStatus marshal status object.
func ToGRPCCode ¶
ToGRPCCode converts Tigris error code to GRPC code Extended codes converted to 'Unknown' GRPC code.
func ToHTTPCode ¶
func ToHTTPCode(code Code) int
ToHTTPCode converts Tigris' code to HTTP status code Used to customize HTTP codes returned by GRPC-gateway.
Types ¶
type CollationType ¶
type CollationType uint8
const ( Undefined CollationType = iota CaseInsensitive CaseSensitive CollationSortKey )
func ToCollationType ¶
func ToCollationType(userCollation string) CollationType
type CustomDecoder ¶
type CustomDecoder struct {
// contains filtered or unexported fields
}
func (CustomDecoder) Decode ¶
func (f CustomDecoder) Decode(dst interface{}) error
type CustomMarshaler ¶
type CustomMarshaler struct {
JSONBuiltin *runtime.JSONBuiltin
}
CustomMarshaler is a marshaler to customize the response. Currently, it is only used to marshal custom error message otherwise it just uses the inbuilt mux marshaller.
func (*CustomMarshaler) ContentType ¶
func (c *CustomMarshaler) ContentType(v interface{}) string
func (*CustomMarshaler) Marshal ¶
func (c *CustomMarshaler) Marshal(v interface{}) ([]byte, error)
func (*CustomMarshaler) NewDecoder ¶
func (c *CustomMarshaler) NewDecoder(r io.Reader) runtime.Decoder
func (*CustomMarshaler) NewEncoder ¶
func (c *CustomMarshaler) NewEncoder(w io.Writer) runtime.Encoder
func (*CustomMarshaler) Unmarshal ¶
func (c *CustomMarshaler) Unmarshal(data []byte, v interface{}) error
type Metadata ¶
type Metadata struct { CreatedAt *time.Time `json:"created_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"` DeletedAt *time.Time `json:"deleted_at,omitempty"` }
func CreateMDFromResponseMD ¶
func CreateMDFromResponseMD(x *ResponseMetadata) Metadata
type RequestWithProject ¶
type SearchHitMetadata ¶
type SearchHitMetadata struct { CreatedAt *time.Time `json:"created_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"` Match *Match `json:"match,omitempty"` }
func CreateMDFromSearchMD ¶
func CreateMDFromSearchMD(x *SearchHitMeta) *SearchHitMetadata
type TigrisError ¶
type TigrisError struct { // Contains Tigris extended error code. // Codes upto Code_UNAUTHENTICATED are identical to GRPC error codes Code Code `json:"code,omitempty"` // A developer-facing error message. Message string `json:"message,omitempty"` // Contains extended error information. // For example retry information. Details []proto.Message `json:"details,omitempty"` }
TigrisError is our Tigris HTTP counterpart of grpc status. All the APIs should use this Error to return as a user facing error. TigrisError will return grpcStatus to the muxer so that grpc client can see grpcStatus as the final output. For HTTP clients see the **MarshalStatus** method where we are returning the response by not the grpc code as that is not needed for HTTP clients.
func Errorf ¶
func Errorf(c Code, format string, a ...interface{}) *TigrisError
Errorf constructs TigrisError. This is the only error server code should return.
func FromErrorDetails ¶
func FromErrorDetails(e *ErrorDetails) *TigrisError
FromErrorDetails construct TigrisError from the ErrorDetails, which contains extended code, retry information, etc...
func FromStatusError ¶
func FromStatusError(err error) *TigrisError
FromStatusError parses GRPC status from error into TigrisError. This is used by the client code.
func UnmarshalStatus ¶
func UnmarshalStatus(b []byte) *TigrisError
UnmarshalStatus reconstruct TigrisError from HTTP error JSON body. This is used by the client.
func (*TigrisError) As ¶
func (e *TigrisError) As(i any) bool
As is used by runtime.DefaultHTTPErrorHandler to override HTTP status code.
func (*TigrisError) Error ¶
func (e *TigrisError) Error() string
Error to return the underlying error message.
func (*TigrisError) GRPCStatus ¶
func (e *TigrisError) GRPCStatus() *status.Status
GRPCStatus converts the TigrisError and return status.Status. This is used to return grpc status to the grpc clients.
func (*TigrisError) RetryDelay ¶
func (e *TigrisError) RetryDelay() time.Duration
RetryDelay retrieves retry delay if it's attached to the error.
func (*TigrisError) WithDetails ¶
func (e *TigrisError) WithDetails(details ...proto.Message) *TigrisError
WithDetails a helper method for adding details to the TigrisError.
func (*TigrisError) WithRetry ¶
func (e *TigrisError) WithRetry(d time.Duration) *TigrisError
WithRetry attached retry information to the error.