models

package
v2.0.0-alpha56 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

README

Models Package Documentation

This package defines all the Go structs used for storing the captured data. It is designed as an independent module.

Documentation

Index

Constants

View Source
const (
	NoSqlDB        string = "NO_SQL_DB"
	SqlDB          string = "SQL_DB"
	GRPC           string = "GRPC"
	HttpClient     string = "HTTP_CLIENT"
	TestSetPattern string = "test-set-"
	String         string = "string"
)
View Source
const (
	TypeDecimal    byte = 0x00
	TypeTiny       byte = 0x01
	TypeShort      byte = 0x02
	TypeLong       byte = 0x03
	TypeFloat      byte = 0x04
	TypeDouble     byte = 0x05
	TypeNull       byte = 0x06
	TypeTimestamp  byte = 0x07
	TypeLongLong   byte = 0x08
	TypeInt24      byte = 0x09
	TypeDate       byte = 0x0a
	TypeTime       byte = 0x0b
	TypeDateTime   byte = 0x0c
	TypeYear       byte = 0x0d
	TypeNewDate    byte = 0x0e
	TypeVarChar    byte = 0x0f
	TypeBit        byte = 0x10
	TypeNewDecimal byte = 0xf6
	TypeEnum       byte = 0xf7
	TypeSet        byte = 0xf8
	TypeTinyBlob   byte = 0xf9
	TypeMediumBlob byte = 0xfa
	TypeLongBlob   byte = 0xfb
	TypeBlob       byte = 0xfc
	TypeVarString  byte = 0xfd
	TypeString     byte = 0xfe
	TypeGeometry   byte = 0xff
)
View Source
const (
	HeaderSize         = 1024
	OKPacketResulSet   = 0x00
	EOFPacketResultSet = 0xfe
	LengthEncodedInt   = 0xfb
)
View Source
const (
	OK               = 0x00
	ERR              = 0xff
	LocalInFile      = 0xfb
	EOF         byte = 0xfe
)
View Source
const (
	AuthMoreData                                 byte = 0x01
	CachingSha2PasswordRequestPublicKey               = 2
	CachingSha2PasswordFastAuthSuccess                = 3
	CachingSha2PasswordPerformFullAuthentication      = 4
)
View Source
const (
	CLIENT_LONG_PASSWORD CapabilityFlags = 1 << iota
	CLIENT_FOUND_ROWS
	CLIENT_LONG_FLAG
	CLIENT_CONNECT_WITH_DB
	CLIENT_NO_SCHEMA
	CLIENT_COMPRESS
	CLIENT_ODBC
	CLIENT_LOCAL_FILES
	CLIENT_IGNORE_SPACE
	CLIENT_PROTOCOL_41
	CLIENT_INTERACTIVE
	CLIENT_SSL = 0x00000800
	CLIENT_IGNORE_SIGPIPE
	CLIENT_TRANSACTIONS
	CLIENT_RESERVED
	CLIENT_SECURE_CONNECTION
	CLIENT_MULTI_STATEMENTS = 1 << (iota + 2)
	CLIENT_MULTI_RESULTS
	CLIENT_PS_MULTI_RESULTS
	CLIENT_PLUGIN_AUTH
	CLIENT_CONNECT_ATTRS
	CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA
	CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
	CLIENT_SESSION_TRACK
	CLIENT_DEPRECATE_EOF
)
View Source
const (
	MODE_RECORD Mode     = "record"
	MODE_TEST   Mode     = "test"
	MODE_OFF    Mode     = "off"
	KCTX        KctxType = "KeployContext"
	KTime       KctxType = "KeployTime"
)
View Source
const (
	HTTP           Kind     = "Http"
	GENERIC        Kind     = "Generic"
	SQL            Kind     = "SQL"
	Postgres       Kind     = "Postgres"
	GRPC_EXPORT    Kind     = "gRPC"
	Mongo          Kind     = "Mongo"
	BodyTypeUtf8   BodyType = "utf-8"
	BodyTypeBinary BodyType = "binary"
	BodyTypePlain  BodyType = "PLAIN"
	BodyTypeJSON   BodyType = "JSON"
	BodyTypeError  BodyType = "ERROR"
)
View Source
const (
	MaxPacketSize = 1<<24 - 1
)
View Source
const ProtocolVersionNumber uint32 = 196608 // Replace with actual version number if different
View Source
const V1Beta1 = Version("api.keploy.io/v1beta1")

Variables

View Source
var FailingColorScheme = pp.ColorScheme{
	Bool:            pp.Cyan | pp.Bold,
	Integer:         pp.Blue | pp.Bold,
	Float:           pp.Magenta | pp.Bold,
	String:          pp.Red,
	StringQuotation: pp.Red | pp.Bold,
	EscapedChar:     pp.Magenta | pp.Bold,
	FieldName:       pp.Yellow,
	PointerAdress:   pp.Blue | pp.Bold,
	Nil:             pp.Cyan | pp.Bold,
	Time:            pp.Blue | pp.Bold,
	StructName:      pp.White,
	ObjectLength:    pp.Blue,
}
View Source
var HighlightFailingString = color.New(color.FgRed).SprintFunc()
View Source
var HighlightPassingString = color.New(color.FgGreen).SprintFunc()
View Source
var HighlightString = color.New(orangeColorSGR...).SprintFunc()
View Source
var (
	PassThroughHosts = []string{"dc.services.visualstudio.com"}
)
View Source
var PassingColorScheme = pp.ColorScheme{
	String:          pp.Green,
	StringQuotation: pp.Green | pp.Bold,
	FieldName:       pp.White,
	Integer:         pp.Blue | pp.Bold,
	StructName:      pp.NoColor,
	Bool:            pp.Cyan | pp.Bold,
	Float:           pp.Magenta | pp.Bold,
	EscapedChar:     pp.Magenta | pp.Bold,
	PointerAdress:   pp.Blue | pp.Bold,
	Nil:             pp.Cyan | pp.Bold,
	Time:            pp.Blue | pp.Bold,
	ObjectLength:    pp.Blue,
}

Functions

func SetMode

func SetMode(m Mode) error

SetMode sets the keploy SDK mode error is returned if the mode is invalid

func SetTestMode

func SetTestMode()

SetTestMode sets the keploy SDK mode to MODE_TEST

func SetVersion

func SetVersion(V1 string)

Types

type AuthSwitchRequestPacket

type AuthSwitchRequestPacket struct {
	StatusTag      byte   `yaml:"status_tag"`
	PluginName     string `yaml:"plugin_name"`
	PluginAuthData string `yaml:"plugin_authdata"`
}

type AuthSwitchResponsePacket

type AuthSwitchResponsePacket struct {
	AuthResponseData string `yaml:"auth_response_data"`
}

type Backend

type Backend struct {
	PacketTypes         []string                     `json:"header,omitempty" yaml:"header,omitempty,flow"`
	Identfier           string                       `json:"identifier,omitempty" yaml:"identifier,omitempty"`
	Length              uint32                       `json:"length,omitempty" yaml:"length,omitempty"`
	Payload             string                       `json:"payload,omitempty" yaml:"payload,omitempty"`
	Bind                pgproto3.Bind                `yaml:"-"`
	Binds               []pgproto3.Bind              `json:"bind,omitempty" yaml:"bind,omitempty"`
	CancelRequest       pgproto3.CancelRequest       `json:"cancel_request,omitempty" yaml:"cancel_request,omitempty"`
	Close               pgproto3.Close               `json:"close,omitempty" yaml:"close,omitempty"`
	CopyFail            pgproto3.CopyFail            `json:"copy_fail,omitempty" yaml:"copy_fail,omitempty"`
	CopyData            pgproto3.CopyData            `json:"copy_data,omitempty" yaml:"copy_data,omitempty"`
	CopyDone            pgproto3.CopyDone            `json:"copy_done,omitempty" yaml:"copy_done,omitempty"`
	Describe            pgproto3.Describe            `json:"describe,omitempty" yaml:"describe,omitempty"`
	Execute             pgproto3.Execute             `yaml:"-"`
	Executes            []pgproto3.Execute           `json:"execute,omitempty" yaml:"execute,omitempty"`
	Flush               pgproto3.Flush               `json:"flush,omitempty" yaml:"flush,omitempty"`
	FunctionCall        pgproto3.FunctionCall        `json:"function_call,omitempty" yaml:"function_call,omitempty"`
	GssEncRequest       pgproto3.GSSEncRequest       `json:"gss_enc_request,omitempty" yaml:"gss_enc_request,omitempty"`
	Parse               pgproto3.Parse               `yaml:"-"`
	Parses              []pgproto3.Parse             `json:"parse,omitempty" yaml:"parse,omitempty"`
	Query               pgproto3.Query               `json:"query,omitempty" yaml:"query,omitempty"`
	SSlRequest          pgproto3.SSLRequest          `json:"ssl_request,omitempty" yaml:"ssl_request,omitempty"`
	StartupMessage      pgproto3.StartupMessage      `json:"startup_message,omitempty" yaml:"startup_message,omitempty"`
	Sync                pgproto3.Sync                `json:"sync,omitempty" yaml:"sync,omitempty"`
	Terminate           pgproto3.Terminate           `json:"terminate,omitempty" yaml:"terminate,omitempty"`
	SASLInitialResponse pgproto3.SASLInitialResponse `json:"sasl_initial_response,omitempty" yaml:"sasl_initial_response,omitempty"`
	SASLResponse        pgproto3.SASLResponse        `json:"sasl_response,omitempty" yaml:"sasl_response,omitempty"`
	PasswordMessage     pgproto3.PasswordMessage     `json:"password_message,omitempty" yaml:"password_message,omitempty"`
	MsgType             byte                         `json:"msg_type,omitempty" yaml:"msg_type,omitempty"`
	PartialMsg          bool                         `json:"partial_msg,omitempty" yaml:"partial_msg,omitempty"`
	AuthType            int32                        `json:"auth_type" yaml:"auth_type"`
	BodyLen             int                          `json:"body_len,omitempty" yaml:"body_len,omitempty"`
}

PG Request Packet Transcoder

type BodyResult

type BodyResult struct {
	Normal   bool     `json:"normal" bson:"normal" yaml:"normal"`
	Type     BodyType `json:"type" bson:"type" yaml:"type"`
	Expected string   `json:"expected" bson:"expected" yaml:"expected"`
	Actual   string   `json:"actual" bson:"actual" yaml:"actual"`
}

type BodyType

type BodyType string

type BoundParameter

type BoundParameter struct {
	Type     byte   `yaml:"type"`
	Unsigned byte   `yaml:"unsigned"`
	Value    []byte `yaml:"value"`
}

type CapabilityFlags

type CapabilityFlags uint32

type ColumnDefinition

type ColumnDefinition struct {
	Catalog      string       `yaml:"catalog"`
	Schema       string       `yaml:"schema"`
	Table        string       `yaml:"table"`
	OrgTable     string       `yaml:"org_table"`
	Name         string       `yaml:"name"`
	OrgName      string       `yaml:"org_name"`
	NextLength   uint64       `yaml:"next_length"`
	CharacterSet uint16       `yaml:"character_set"`
	ColumnLength uint32       `yaml:"column_length"`
	ColumnType   byte         `yaml:"column_type"`
	Flags        uint16       `yaml:"flags"`
	Decimals     byte         `yaml:"decimals"`
	PacketHeader PacketHeader `yaml:"packet_header"`
}

type Config

type Config struct {
	Record Record `json:"record" yaml:"record"`
	Test   Test   `json:"test" yaml:"test"`
}

type DepMetaResult

type DepMetaResult struct {
	Normal   bool   `json:"normal" bson:"normal" yaml:"normal"`
	Key      string `json:"key" bson:"key" yaml:"key"`
	Expected string `json:"expected" bson:"expected" yaml:"expected"`
	Actual   string `json:"actual" bson:"actual" yaml:"actual"`
}

type DepResult

type DepResult struct {
	Name string          `json:"name" bson:"name" yaml:"name"`
	Type string          `json:"type" bson:"type" yaml:"type"`
	Meta []DepMetaResult `json:"meta" bson:"meta" yaml:"meta"`
}

type FieldType

type FieldType byte
const (
	FieldTypeDecimal FieldType = iota
	FieldTypeTiny
	FieldTypeShort
	FieldTypeLong
	FieldTypeFloat
	FieldTypeDouble
	FieldTypeNULL
	FieldTypeTimestamp
	FieldTypeLongLong
	FieldTypeInt24
	FieldTypeDate
	FieldTypeTime
	FieldTypeDateTime
	FieldTypeYear
	FieldTypeNewDate
	FieldTypeVarChar
	FieldTypeBit
)
const (
	FieldTypeJSON FieldType = iota + 0xf5
	FieldTypeNewDecimal
	FieldTypeEnum
	FieldTypeSet
	FieldTypeTinyBLOB
	FieldTypeMediumBLOB
	FieldTypeLongBLOB
	FieldTypeBLOB
	FieldTypeVarString
	FieldTypeString
	FieldTypeGeometry
)

type Filters

type Filters struct {
	ReqHeader  []string            `json:"req_header" yaml:"req_header"`
	URLMethods map[string][]string `json:"urlMethods" yaml:"urlMethods"`
}

func (*Filters) GetKind

func (filter *Filters) GetKind() string

type FormData

type FormData struct {
	Key    string   `json:"key" bson:"key" yaml:"key"`
	Values []string `json:"values" bson:"values,omitempty" yaml:"values,omitempty"`
	Paths  []string `json:"paths" bson:"paths,omitempty" yaml:"paths,omitempty"`
}

type Frontend

type Frontend struct {
	PacketTypes                     []string                                 `json:"header,omitempty" yaml:"header,omitempty,flow"`
	Identfier                       string                                   `json:"identifier,omitempty" yaml:"identifier,omitempty"`
	Length                          uint32                                   `json:"length,omitempty" yaml:"length,omitempty"`
	Payload                         string                                   `json:"payload,omitempty" yaml:"payload,omitempty"`
	AuthenticationOk                pgproto3.AuthenticationOk                `json:"authentication_ok,omitempty" yaml:"authentication_ok,omitempty"`
	AuthenticationCleartextPassword pgproto3.AuthenticationCleartextPassword `json:"authentication_cleartext_password,omitempty" yaml:"authentication_cleartext_password,omitempty"`
	AuthenticationMD5Password       pgproto3.AuthenticationMD5Password       `json:"authentication_md5_password,omitempty" yaml:"authentication_md5_password,omitempty"`
	AuthenticationGSS               pgproto3.AuthenticationGSS               `json:"authentication_gss,omitempty" yaml:"authentication_gss,omitempty"`
	AuthenticationGSSContinue       pgproto3.AuthenticationGSSContinue       `json:"authentication_gss_continue,omitempty" yaml:"authentication_gss_continue,omitempty"`
	AuthenticationSASL              pgproto3.AuthenticationSASL              `json:"authentication_sasl,omitempty" yaml:"authentication_sasl,omitempty"`
	AuthenticationSASLContinue      pgproto3.AuthenticationSASLContinue      `json:"authentication_sasl_continue,omitempty" yaml:"authentication_sasl_continue,omitempty,flow"`
	AuthenticationSASLFinal         pgproto3.AuthenticationSASLFinal         `json:"authentication_sasl_final,omitempty" yaml:"authentication_sasl_final,omitempty,flow"`
	BackendKeyData                  pgproto3.BackendKeyData                  `json:"backend_key_data,omitempty" yaml:"backend_key_data,omitempty"`
	BindComplete                    pgproto3.BindComplete                    `yaml:"-"`
	BindCompletes                   []pgproto3.BindComplete                  `json:"bind_complete,omitempty" yaml:"bind_complete,omitempty"`
	CloseComplete                   pgproto3.CloseComplete                   `json:"close_complete,omitempty" yaml:"close_complete,omitempty"`
	CommandComplete                 pgproto3.CommandComplete                 `yaml:"-"`
	CommandCompletes                []pgproto3.CommandComplete               `json:"command_complete,omitempty" yaml:"command_complete,omitempty"`
	CopyBothResponse                pgproto3.CopyBothResponse                `json:"copy_both_response,omitempty" yaml:"copy_both_response,omitempty"`
	CopyData                        pgproto3.CopyData                        `json:"copy_data,omitempty" yaml:"copy_data,omitempty"`
	CopyInResponse                  pgproto3.CopyInResponse                  `json:"copy_in_response,omitempty" yaml:"copy_in_response,omitempty"`
	CopyOutResponse                 pgproto3.CopyOutResponse                 `json:"copy_out_response,omitempty" yaml:"copy_out_response,omitempty"`
	CopyDone                        pgproto3.CopyDone                        `json:"copy_done,omitempty" yaml:"copy_done,omitempty"`
	DataRow                         pgproto3.DataRow                         `yaml:"-"`
	DataRows                        []pgproto3.DataRow                       `json:"data_row,omitempty" yaml:"data_row,omitempty,flow"`
	EmptyQueryResponse              pgproto3.EmptyQueryResponse              `json:"empty_query_response,omitempty" yaml:"empty_query_response,omitempty"`
	ErrorResponse                   pgproto3.ErrorResponse                   `json:"error_response,omitempty" yaml:"error_response,omitempty"`
	FunctionCallResponse            pgproto3.FunctionCallResponse            `json:"function_call_response,omitempty" yaml:"function_call_response,omitempty"`
	NoData                          pgproto3.NoData                          `json:"no_data,omitempty" yaml:"no_data,omitempty"`
	NoticeResponse                  pgproto3.NoticeResponse                  `json:"notice_response,omitempty" yaml:"notice_response,omitempty"`
	NotificationResponse            pgproto3.NotificationResponse            `json:"notification_response,omitempty" yaml:"notification_response,omitempty"`
	ParameterDescription            pgproto3.ParameterDescription            `json:"parameter_description,omitempty" yaml:"parameter_description,omitempty"`
	ParameterStatus                 pgproto3.ParameterStatus                 `yaml:"-"`
	ParameterStatusCombined         []pgproto3.ParameterStatus               `json:"parameter_status,omitempty" yaml:"parameter_status,omitempty"`
	ParseComplete                   pgproto3.ParseComplete                   `yaml:"-"`
	ParseCompletes                  []pgproto3.ParseComplete                 `json:"parse_complete,omitempty" yaml:"parse_complete,omitempty"`
	ReadyForQuery                   pgproto3.ReadyForQuery                   `json:"ready_for_query,omitempty" yaml:"ready_for_query,omitempty"`
	RowDescription                  pgproto3.RowDescription                  `json:"row_description,omitempty" yaml:"row_description,omitempty,flow"`
	PortalSuspended                 pgproto3.PortalSuspended                 `json:"portal_suspended,omitempty" yaml:"portal_suspended,omitempty"`
	MsgType                         byte                                     `json:"msg_type,omitempty" yaml:"msg_type,omitempty"`
	AuthType                        int32                                    `json:"auth_type" yaml:"auth_type"`
	// AuthMechanism                   string                                   `json:"auth_mechanism,omitempty" yaml:"auth_mechanism,omitempty"`
	BodyLen int `json:"body_len,omitempty" yaml:"body_len,omitempty"`
}

type GenericPayload

type GenericPayload struct {
	Origin  OriginType     `json:"Origin,omitempty" yaml:"origin"`
	Message []OutputBinary `json:"Message,omitempty" yaml:"message"`
}

type GlobalNoise

type GlobalNoise map[string]map[string][]string

type Globalnoise

type Globalnoise struct {
	Global   GlobalNoise  `json:"global" yaml:"global"`
	Testsets TestsetNoise `json:"test-sets" yaml:"test-sets"`
}

type GrpcHeaders

type GrpcHeaders struct {
	PseudoHeaders   map[string]string `json:"pseudo_headers" yaml:"pseudo_headers"`
	OrdinaryHeaders map[string]string `json:"ordinary_headers" yaml:"ordinary_headers"`
}

type GrpcLengthPrefixedMessage

type GrpcLengthPrefixedMessage struct {
	CompressionFlag uint   `json:"compression_flag" yaml:"compression_flag"`
	MessageLength   uint32 `json:"message_length" yaml:"message_length"`
	DecodedData     string `json:"decoded_data" yaml:"decoded_data"`
}

type GrpcReq

type GrpcReq struct {
	Headers GrpcHeaders               `json:"headers" yaml:"headers"`
	Body    GrpcLengthPrefixedMessage `json:"body" yaml:"body"`
}

type GrpcResp

type GrpcResp struct {
	Headers  GrpcHeaders               `json:"headers" yaml:"headers"`
	Body     GrpcLengthPrefixedMessage `json:"body" yaml:"body"`
	Trailers GrpcHeaders               `json:"trailers" yaml:"trailers"`
}

type GrpcStream

type GrpcStream struct {
	StreamID uint32
	GrpcReq  GrpcReq
	GrpcResp GrpcResp
}

GrpcStream is a helper function to combine the request-response model in a single struct.

func NewGrpcStream

func NewGrpcStream(streamID uint32) GrpcStream

NewGrpcStream returns a GrpcStream with all the nested maps initialised.

type Header struct {
	Key   string   `json:"key" bson:"key" yaml:"key"`
	Value []string `json:"value" bson:"value" yaml:"value"`
}

type HeaderResult

type HeaderResult struct {
	Normal   bool   `json:"normal" bson:"normal" yaml:"normal"`
	Expected Header `json:"expected" bson:"expected" yaml:"expected"`
	Actual   Header `json:"actual" bson:"actual" yaml:"actual"`
}

type HttpReq

type HttpReq struct {
	Method     Method            `json:"method" yaml:"method"`
	ProtoMajor int               `json:"proto_major" yaml:"proto_major"` // e.g. 1
	ProtoMinor int               `json:"proto_minor" yaml:"proto_minor"` // e.g. 0
	URL        string            `json:"url" yaml:"url"`
	URLParams  map[string]string `json:"url_params" yaml:"url_params,omitempty"`
	Header     map[string]string `json:"header" yaml:"header"`
	Body       string            `json:"body" yaml:"body"`
	BodyType   string            `json:"body_type" yaml:"body_type"`
	Binary     string            `json:"binary" yaml:"binary,omitempty"`
	Form       []FormData        `json:"form" yaml:"form,omitempty"`
	Timestamp  time.Time         `json:"timestamp" yaml:"timestamp"`
	Host       string            `json:"host" yaml:"host"`
}

type HttpResp

type HttpResp struct {
	StatusCode    int               `json:"status_code" yaml:"status_code"` // e.g. 200
	Header        map[string]string `json:"header" yaml:"header"`
	Body          string            `json:"body" yaml:"body"`
	BodyType      string            `json:"body_type" yaml:"body_type"`
	StatusMessage string            `json:"status_message" yaml:"status_message"`
	ProtoMajor    int               `json:"proto_major" yaml:"proto_major"`
	ProtoMinor    int               `json:"proto_minor" yaml:"proto_minor"`
	Binary        string            `json:"binary" yaml:"binary,omitempty"`
	Timestamp     time.Time         `json:"timestamp" yaml:"timestamp"`
}

type IntResult

type IntResult struct {
	Normal   bool `json:"normal" bson:"normal" yaml:"normal"`
	Expected int  `json:"expected" bson:"expected" yaml:"expected"`
	Actual   int  `json:"actual" bson:"actual" yaml:"actual"`
}

type KctxType

type KctxType string

type Kind

type Kind string

type Method

type Method string

type Mock

type Mock struct {
	Version Version  `json:"Version,omitempty"`
	Name    string   `json:"Name,omitempty"`
	Kind    Kind     `json:"Kind,omitempty"`
	Spec    MockSpec `json:"Spec,omitempty"`
	Id      string   `json:"Id,omitempty"`
}

func (*Mock) GetKind

func (m *Mock) GetKind() string

type MockSpec

type MockSpec struct {
	Metadata map[string]string `json:"Metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// for GenericSpec
	GenericRequests  []GenericPayload `json:"RequestBin,omitempty"`
	GenericResponses []GenericPayload `json:"ResponseBin,omitempty"`
	// for HttpSpec
	HttpReq  *HttpReq  `json:"Req,omitempty"`
	HttpResp *HttpResp `json:"Res,omitempty"`
	Created  int64     `json:"Created,omitempty"`
	// for MongoSpec
	// MongoRequestHeader  *MongoHeader    `json:"RequestHeader,omitempty"`
	// MongoResponseHeader *MongoHeader    `json:"ResponseHeader,omitempty"`
	// MongoRequest        interface{}     `json:"MongoRequest,omitempty"`
	// MongoResponse       interface{}     `json:"MongoResponse,omitempty"`
	MongoRequests  []MongoRequest  `json:"MongoRequests,omitempty"`
	MongoResponses []MongoResponse `json:"MongoResponses,omitempty"`

	PostgresRequests  []Backend  `json:"postgresRequests,omitempty"`
	PostgresResponses []Frontend `json:"postgresResponses,omitempty"`

	//for grpc
	GRPCReq  *GrpcReq  `json:"gRPCRequest,omitempty"`
	GRPCResp *GrpcResp `json:"grpcResponse,omitempty"`
	//for MySql
	MySqlRequests  []MySQLRequest  `json:"MySqlRequests,omitempty"`
	MySqlResponses []MySQLResponse `json:"MySqlResponses,omitempty"`

	ReqTimestampMock time.Time `json:"ReqTimestampMock,omitempty"`
	ResTimestampMock time.Time `json:"ResTimestampMock,omitempty"`
}

type Mode

type Mode string

Mode represents the mode at which the SDK is operating MODE_RECORD is for recording API calls to generate testcases MODE_TEST is for testing the application on previous recorded testcases MODE_OFF disables keploy SDK automatically from the application

func GetMode

func GetMode() Mode

GetMode returns the mode of the keploy SDK

func (Mode) Valid

func (m Mode) Valid() bool

Valid checks if the provided mode is valid

type MongoHeader

type MongoHeader struct {
	Length     int32              `json:"length" yaml:"length"`
	RequestID  int32              `json:"requestId" yaml:"requestId"`
	ResponseTo int32              `json:"responseTo" yaml:"responseTo"`
	Opcode     wiremessage.OpCode `json:"Opcode" yaml:"Opcode"`
}

type MongoOpMessage

type MongoOpMessage struct {
	FlagBits int      `json:"flagBits" yaml:"flagBits"`
	Sections []string `json:"sections" yaml:"sections"`
	Checksum int      `json:"checksum" yaml:"checksum"`
}

type MongoOpQuery

type MongoOpQuery struct {
	Flags                int32  `json:"flags" yaml:"flags"`                       // bit values of query options
	FullCollectionName   string `json:"collection_name" yaml:"collection_name"`   // "dbname.collectionname"
	NumberToSkip         int32  `json:"number_to_skip" yaml:"number_to_skip"`     // number of documents to skip
	NumberToReturn       int32  `json:"number_to_return" yaml:"number_to_return"` // number of documents to return in the first OP_REPLY batch
	Query                string `json:"query" yaml:"query"`                       // query object.  See below for details.
	ReturnFieldsSelector string `json:"return_fields_selector" yaml:"return_fields_selector"`
}

type MongoOpReply

type MongoOpReply struct {
	ResponseFlags  int32    `json:"response_flags" yaml:"response_flags"`   // bit values - see details below
	CursorID       int64    `json:"cursor_id" yaml:"cursor_id"`             // cursor ID if client needs to do get more's
	StartingFrom   int32    `json:"starting_from" yaml:"starting_from"`     // where in the cursor this reply is starting
	NumberReturned int32    `json:"number_returned" yaml:"number_returned"` // number of documents in the reply
	Documents      []string `json:"documents" yaml:"documents"`             // documents
}

type MongoRequest

type MongoRequest struct {
	Header    *MongoHeader `json:"header,omitempty"`
	Message   interface{}  `json:"message,omitempty"`
	ReadDelay int64        `json:"read_delay,omitempty"`
}

type MongoResponse

type MongoResponse struct {
	Header    *MongoHeader `json:"header,omitempty"`
	Message   interface{}  `json:"message,omitempty"`
	ReadDelay int64        `json:"read_delay,omitempty"`
}

type MySQLCOM_STMT_RESET

type MySQLCOM_STMT_RESET struct {
	StatementID uint32 `yaml:"statement_id"`
}

type MySQLCOM_STMT_SEND_LONG_DATA

type MySQLCOM_STMT_SEND_LONG_DATA struct {
	StatementID uint32 `yaml:"statement_id"`
	ParameterID uint16 `yaml:"parameter_id"`
	Data        []byte `yaml:"data"`
}

type MySQLComChangeUserPacket

type MySQLComChangeUserPacket struct {
	User         string `yaml:"user"`
	Auth         []byte `yaml:"auth"`
	Db           string `yaml:"db"`
	CharacterSet uint8  `yaml:"character_set"`
	AuthPlugin   string `yaml:"auth_plugin"`
}

type MySQLComStmtClosePacket

type MySQLComStmtClosePacket struct {
	StatementID uint32
}

type MySQLComStmtExecute

type MySQLComStmtExecute struct {
	StatementID    uint32           `yaml:"statement_id"`
	Flags          byte             `yaml:"flags"`
	IterationCount uint32           `yaml:"iteration_count"`
	NullBitmap     []byte           `yaml:"null_bitmap"`
	ParamCount     uint16           `yaml:"param_count"`
	Parameters     []BoundParameter `yaml:"parameters"`
}

type MySQLComStmtFetchPacket

type MySQLComStmtFetchPacket struct {
	StatementID uint32 `yaml:"statement_id"`
	RowCount    uint32 `yaml:"row_count"`
	Info        string `yaml:"info"`
}

type MySQLComStmtPreparePacket

type MySQLComStmtPreparePacket struct {
	Query string
}

type MySQLERRPacket

type MySQLERRPacket struct {
	Header         byte   `yaml:"header"`
	ErrorCode      uint16 `yaml:"error_code"`
	SQLStateMarker string `yaml:"sql_state_marker"`
	SQLState       string `yaml:"sql_state"`
	ErrorMessage   string `yaml:"error_message"`
}

type MySQLHandshakeResponse

type MySQLHandshakeResponse struct {
	CapabilityFlags uint32   `yaml:"capability_flags"`
	MaxPacketSize   uint32   `yaml:"max_packet_size"`
	CharacterSet    uint8    `yaml:"character_set"`
	Reserved        [23]byte `yaml:"reserved"`
	Username        string   `yaml:"username"`
	AuthData        []byte   `yaml:"auth_data"`
	Database        string   `yaml:"database"`
	AuthPluginName  string   `yaml:"auth_plugin_name"`
}

type MySQLHandshakeResponseOk

type MySQLHandshakeResponseOk struct {
	PacketIndicator string        `yaml:"packet_indicator"`
	PluginDetails   PluginDetails `yaml:"plugin_details"`
	RemainingBytes  []byte        `yaml:"remaining_bytes"`
}

type MySQLHandshakeV10Packet

type MySQLHandshakeV10Packet struct {
	ProtocolVersion uint8  `yaml:"protocol_version"`
	ServerVersion   string `yaml:"server_version"`
	ConnectionID    uint32 `yaml:"connection_id"`
	AuthPluginData  []byte `yaml:"auth_plugin_data"`
	CapabilityFlags uint32 `yaml:"capability_flags"`
	CharacterSet    uint8  `yaml:"character_set"`
	StatusFlags     uint16 `yaml:"status_flags"`
	AuthPluginName  string `yaml:"auth_plugin_name"`
}

type MySQLOKPacket

type MySQLOKPacket struct {
	AffectedRows uint64 `json:"affected_rows,omitempty" yaml:"affected_rows"`
	LastInsertID uint64 `json:"last_insert_id,omitempty" yaml:"last_insert_id"`
	StatusFlags  uint16 `json:"status_flags,omitempty" yaml:"status_flags"`
	Warnings     uint16 `json:"warnings,omitempty" yaml:"warnings"`
	Info         string `json:"info,omitempty" yaml:"info"`
}

type MySQLPacketHeader

type MySQLPacketHeader struct {
	PacketLength uint32 `json:"packet_length" yaml:"packet_length"`
	PacketNumber uint8  `json:"packet_number" yaml:"packet_number"`
	PacketType   string `json:"packet_type" yaml:"packet_type"`
}

type MySQLQueryPacket

type MySQLQueryPacket struct {
	Command byte   `yaml:"command"`
	Query   string `yaml:"query"`
}

type MySQLRequest

type MySQLRequest struct {
	Header    *MySQLPacketHeader `json:"header" yaml:"header"`
	Message   interface{}        `json:"message" yaml:"message"`
	ReadDelay int64              `json:"read_delay,omitempty"`
}

type MySQLResponse

type MySQLResponse struct {
	Header    *MySQLPacketHeader `json:"header" yaml:"header"`
	Message   interface{}        `json:"message" yaml:"message"`
	ReadDelay int64              `json:"read_delay,omitempty"`
}

type MySQLResultSet

type MySQLResultSet struct {
	Columns             []*ColumnDefinition `yaml:"columns"`
	Rows                []*Row              `yaml:"rows"`
	EOFPresent          bool                `yaml:"eofPresent"`
	PaddingPresent      bool                `yaml:"paddingPresent"`
	EOFPresentFinal     bool                `yaml:"eofPresentFinal"`
	PaddingPresentFinal bool                `yaml:"paddingPresentFinal"`
	OptionalPadding     bool                `yaml:"optionalPadding"`
	OptionalEOFBytes    []byte              `yaml:"optionalEOFBytes"`
	EOFAfterColumns     []byte              `yaml:"eofAfterColumns"`
}

type MySQLStmtPrepareOk

type MySQLStmtPrepareOk struct {
	Status       byte               `yaml:"status"`
	StatementID  uint32             `yaml:"statement_id"`
	NumColumns   uint16             `yaml:"num_columns"`
	NumParams    uint16             `yaml:"num_params"`
	WarningCount uint16             `yaml:"warning_count"`
	ColumnDefs   []ColumnDefinition `yaml:"column_definitions"`
	ParamDefs    []ColumnDefinition `yaml:"param_definitions"`
}

type Noise

type Noise map[string][]string

type OriginType

type OriginType string
const (
	FromServer OriginType = "server"
	FromClient OriginType = "client"
)

type OutputBinary

type OutputBinary struct {
	Type string `json:"type" yaml:"type"`
	Data string `json:"data" yaml:"data"`
}

OutputBinary store the encoded binary output of the egress calls as base64-encoded strings

type PacketHeader

type PacketHeader struct {
	PacketLength     uint8 `yaml:"packet_length"`
	PacketSequenceId uint8 `yaml:"packet_sequence_id"`
}

type PluginDetails

type PluginDetails struct {
	Type    string `yaml:"type"`
	Message string `yaml:"message"`
}

type Record

type Record struct {
	Path             string        `json:"path" yaml:"path"`
	Command          string        `json:"command" yaml:"command"`
	ProxyPort        uint32        `json:"proxyport" yaml:"proxyport"`
	ContainerName    string        `json:"containerName" yaml:"containerName"`
	NetworkName      string        `json:"networkName" yaml:"networkName"`
	Delay            uint64        `json:"delay" yaml:"delay"`
	BuildDelay       time.Duration `json:"buildDelay" yaml:"buildDelay"`
	PassThroughPorts []uint        `json:"passThroughPorts" yaml:"passThroughPorts"`
	Filters          Filters       `json:"filters" yaml:"filters"`
}

type RegularPacket

type RegularPacket struct {
	Identifier byte
	Length     uint32
	Payload    []byte
}

type Result

type Result struct {
	StatusCode    IntResult      `json:"status_code" bson:"status_code" yaml:"status_code"`
	HeadersResult []HeaderResult `json:"headers_result" bson:"headers_result" yaml:"headers_result"`
	BodyResult    []BodyResult   `json:"body_result" bson:"body_result" yaml:"body_result"`
	DepResult     []DepResult    `json:"dep_result" bson:"dep_result" yaml:"dep_result"`
}

type Row

type Row struct {
	Header  RowHeader             `yaml:"header"`
	Columns []RowColumnDefinition `yaml:"row_column_definition"`
}

type RowColumnDefinition

type RowColumnDefinition struct {
	Type  FieldType   `yaml:"type"`
	Name  string      `yaml:"name"`
	Value interface{} `yaml:"value"`
}

type RowHeader

type RowHeader struct {
	PacketLength     uint8 `yaml:"packet_length"`
	PacketSequenceId uint8 `yaml:"packet_sequence_id"`
}

type StartupPacket

type StartupPacket struct {
	Length          uint32
	ProtocolVersion uint32
}

type TeleEvent

type TeleEvent struct {
	InstallationID string                 `json:"installationId"`
	EventType      string                 `json:"eventType"`
	Meta           map[string]interface{} `json:"meta"`
	CreatedAt      int64                  `json:"createdAt"`
	TeleCheck      bool                   `json:"tele_check"`
	OS             string                 `json:"os"`
	KeployVersion  string                 `json:"keploy_version"`
	Arch           string                 `json:"arch"`
}

type Test

type Test struct {
	Path               string              `json:"path" yaml:"path"`
	Command            string              `json:"command" yaml:"command"`
	ProxyPort          uint32              `json:"proxyport" yaml:"proxyport"`
	ContainerName      string              `json:"containerName" yaml:"containerName"`
	NetworkName        string              `json:"networkName" yaml:"networkName"`
	Tests              map[string][]string `json:"tests" yaml:"tests"`
	GlobalNoise        Globalnoise         `json:"globalNoise" yaml:"globalNoise"`
	Delay              uint64              `json:"delay" yaml:"delay"`
	BuildDelay         time.Duration       `json:"buildDelay" yaml:"buildDelay"`
	ApiTimeout         uint64              `json:"apiTimeout" yaml:"apiTimeout"`
	PassThroughPorts   []uint              `json:"passThroughPorts" yaml:"passThroughPorts"`
	WithCoverage       bool                `json:"withCoverage" yaml:"withCoverage"`             // boolean to capture the coverage in test
	CoverageReportPath string              `json:"coverageReportPath" yaml:"coverageReportPath"` // directory path to store the coverage files
}

type TestCase

type TestCase struct {
	Version  Version             `json:"version"`
	Kind     Kind                `json:"kind"`
	Name     string              `json:"name"`
	Created  int64               `json:"created"`
	Updated  int64               `json:"updated"`
	Captured int64               `json:"captured"`
	HttpReq  HttpReq             `json:"http_req"`
	HttpResp HttpResp            `json:"http_resp"`
	AllKeys  map[string][]string `json:"all_keys"`
	GrpcResp GrpcResp            `json:"grpcResp"`
	GrpcReq  GrpcReq             `json:"grpcReq"`
	Anchors  map[string][]string `json:"anchors"`
	Noise    map[string][]string `json:"noise"`
	Mocks    []*Mock             `json:"mocks"`
	Type     string              `json:"type"`
}

func (*TestCase) GetKind

func (tc *TestCase) GetKind() string

type TestReport

type TestReport struct {
	Version Version      `json:"version" yaml:"version"`
	Name    string       `json:"name" yaml:"name"`
	Status  string       `json:"status" yaml:"status"`
	Success int          `json:"success" yaml:"success"`
	Failure int          `json:"failure" yaml:"failure"`
	Total   int          `json:"total" yaml:"total"`
	Tests   []TestResult `json:"tests" yaml:"tests,omitempty"`
	TestSet string       `json:"testSet" yaml:"test_set"`
}

func (*TestReport) GetKind

func (tr *TestReport) GetKind() string

type TestResult

type TestResult struct {
	Kind         Kind       `json:"kind" yaml:"kind"`
	Name         string     `json:"name" yaml:"name"`
	Status       TestStatus `json:"status" yaml:"status"`
	Started      int64      `json:"started" yaml:"started"`
	Completed    int64      `json:"completed" yaml:"completed"`
	TestCasePath string     `json:"testCasePath" yaml:"test_case_path"`
	MockPath     string     `json:"mockPath" yaml:"mock_path"`
	TestCaseID   string     `json:"testCaseID" yaml:"test_case_id"`
	Req          HttpReq    `json:"req" yaml:"req,omitempty"`
	Res          HttpResp   `json:"resp" yaml:"resp,omitempty"`
	Noise        Noise      `json:"noise" yaml:"noise,omitempty"`
	Result       Result     `json:"result" yaml:"result"`
}

func (*TestResult) GetKind

func (tr *TestResult) GetKind() string

type TestRunStatus

type TestRunStatus string
const (
	TestRunStatusRunning      TestRunStatus = "RUNNING"
	TestRunStatusFailed       TestRunStatus = "FAILED"
	TestRunStatusPassed       TestRunStatus = "PASSED"
	TestRunStatusAppHalted    TestRunStatus = "APP_HALTED"
	TestRunStatusUserAbort    TestRunStatus = "USER_ABORT"
	TestRunStatusFaultUserApp TestRunStatus = "APP_FAULT"
)

type TestStatus

type TestStatus string
const (
	TestStatusPending TestStatus = "PENDING"
	TestStatusRunning TestStatus = "RUNNING"
	TestStatusFailed  TestStatus = "FAILED"
	TestStatusPassed  TestStatus = "PASSED"
)

type TestsetNoise

type TestsetNoise map[string]map[string]map[string][]string

type Version

type Version string

func GetVersion

func GetVersion() (V1 Version)

Jump to

Keyboard shortcuts

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