grpcsec

package
v1.49.1 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2023 License: Apache-2.0, BSD-3-Clause, Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package grpcsec is the gRPC instrumentation API and contract for AppSec defining an abstract run-time representation of gRPC handlers. gRPC integrations must use this package to enable AppSec features for gRPC, which listens to this package's operation events.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetSecurityEventTags

func SetSecurityEventTags(span ddtrace.Span, events []json.RawMessage, md map[string][]string)

SetSecurityEventTags sets the AppSec-specific span tags when a security event occurred into the service entry span.

Types

type HandlerOperation

HandlerOperation represents a gRPC server handler operation. It must be created with StartHandlerOperation() and finished with its Finish() method. Security events observed during the operation lifetime should be added to the operation using its AddSecurityEvent() method.

func StartHandlerOperation

func StartHandlerOperation(ctx context.Context, args HandlerOperationArgs, parent dyngo.Operation) (context.Context, *HandlerOperation)

StartHandlerOperation starts an gRPC server handler operation, along with the given arguments and parent operation, and emits a start event up in the operation stack. When parent is nil, the operation is linked to the global root operation.

func (*HandlerOperation) Finish

Finish the gRPC handler operation, along with the given results, and emit a finish event up in the operation stack.

type HandlerOperationArgs

type HandlerOperationArgs struct {
	// Message received by the gRPC handler.
	// Corresponds to the address `grpc.server.request.metadata`.
	Metadata map[string][]string
	ClientIP instrumentation.NetaddrIP
}

HandlerOperationArgs is the grpc handler arguments.

type HandlerOperationRes

type HandlerOperationRes struct{}

HandlerOperationRes is the grpc handler results. Empty as of today.

type OnHandlerOperationFinish

type OnHandlerOperationFinish func(*HandlerOperation, HandlerOperationRes)

OnHandlerOperationFinish function type, called when an gRPC handler operation finishes.

func (OnHandlerOperationFinish) Call

func (f OnHandlerOperationFinish) Call(op dyngo.Operation, v interface{})

Call the underlying event listener function by performing the type-assertion on v whose type is the one returned by ListenedType().

func (OnHandlerOperationFinish) ListenedType

func (OnHandlerOperationFinish) ListenedType() reflect.Type

ListenedType returns the type a OnHandlerOperationFinish event listener listens to, which is the HandlerOperationRes type.

type OnHandlerOperationStart

type OnHandlerOperationStart func(*HandlerOperation, HandlerOperationArgs)

OnHandlerOperationStart function type, called when an gRPC handler operation starts.

func (OnHandlerOperationStart) Call

func (f OnHandlerOperationStart) Call(op dyngo.Operation, v interface{})

Call the underlying event listener function by performing the type-assertion on v whose type is the one returned by ListenedType().

func (OnHandlerOperationStart) ListenedType

func (OnHandlerOperationStart) ListenedType() reflect.Type

ListenedType returns the type a OnHandlerOperationStart event listener listens to, which is the HandlerOperationArgs type.

type OnReceiveOperationFinish

type OnReceiveOperationFinish func(ReceiveOperation, ReceiveOperationRes)

OnReceiveOperationFinish function type, called when a grpc receive operation finishes.

func (OnReceiveOperationFinish) Call

func (f OnReceiveOperationFinish) Call(op dyngo.Operation, v interface{})

Call the underlying event listener function by performing the type-assertion on v whose type is the one returned by ListenedType().

func (OnReceiveOperationFinish) ListenedType

func (OnReceiveOperationFinish) ListenedType() reflect.Type

ListenedType returns the type a OnHandlerOperationFinish event listener listens to, which is the HandlerOperationRes type.

type OnReceiveOperationStart

type OnReceiveOperationStart func(ReceiveOperation, ReceiveOperationArgs)

OnReceiveOperationStart function type, called when a gRPC receive operation starts.

func (OnReceiveOperationStart) Call

func (f OnReceiveOperationStart) Call(op dyngo.Operation, v interface{})

Call the underlying event listener function by performing the type-assertion on v whose type is the one returned by ListenedType().

func (OnReceiveOperationStart) ListenedType

func (OnReceiveOperationStart) ListenedType() reflect.Type

ListenedType returns the type a OnHandlerOperationStart event listener listens to, which is the HandlerOperationArgs type.

type ReceiveOperation

type ReceiveOperation struct {
	dyngo.Operation
}

ReceiveOperation type representing an gRPC server handler operation. It must be created with StartReceiveOperation() and finished with its Finish().

func StartReceiveOperation

func StartReceiveOperation(args ReceiveOperationArgs, parent dyngo.Operation) ReceiveOperation

StartReceiveOperation starts a receive operation of a gRPC handler, along with the given arguments and parent operation, and emits a start event up in the operation stack. When parent is nil, the operation is linked to the global root operation.

func (ReceiveOperation) Finish

func (op ReceiveOperation) Finish(res ReceiveOperationRes)

Finish the gRPC handler operation, along with the given results, and emits a finish event up in the operation stack.

type ReceiveOperationArgs

type ReceiveOperationArgs struct{}

ReceiveOperationArgs is the gRPC handler receive operation arguments Empty as of today.

type ReceiveOperationRes

type ReceiveOperationRes struct {
	// Message received by the gRPC handler.
	// Corresponds to the address `grpc.server.request.message`.
	Message interface{}
}

ReceiveOperationRes is the gRPC handler receive operation results which contains the message the gRPC handler received.

Jump to

Keyboard shortcuts

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