queryRecorder

package
v0.4.16 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MaxQueries is the maximum number of queries to keep
	MaxQueries = 1000
)
View Source
const ReplayLogMessage = "query replay record"

ReplayLogMessage is the message on every replay record line, for log pipeline filtering.

Variables

This section is empty.

Functions

This section is empty.

Types

type QueryInfo

type QueryInfo struct {
	Query string              `json:"query"`
	Count int                 `json:"count"`
	Devs  map[string]struct{} `json:"devs"`
	// contains filtered or unexported fields
}

QueryInfo contains information about a recorded query

type QueryRecorder

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

QueryRecorder tracks unique raw queries that have been seen

func New

func New() *QueryRecorder

New creates a new QueryRecorder instance

func (*QueryRecorder) Add

func (qr *QueryRecorder) Add(query string, devID string)

Add records a new query or updates an existing one

func (*QueryRecorder) GetQueries

func (qr *QueryRecorder) GetQueries() []QueryInfo

GetQueries returns a copy of all recorded queries

func (*QueryRecorder) Handler

func (qr *QueryRecorder) Handler() http.Handler

Handler returns an HTTP handler that serves the list of recorded queries

type QueryRecordingExtension

type QueryRecordingExtension struct {
	Recorder *QueryRecorder
}

QueryRecordingExtension creates a GraphQL extension that records queries

func (QueryRecordingExtension) ExtensionName

func (QueryRecordingExtension) ExtensionName() string

func (QueryRecordingExtension) InterceptResponse

func (QueryRecordingExtension) Validate

type ReplayLogger added in v0.4.13

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

ReplayLogger is a GraphQL extension that emits one structured log line per operation submitted by an allowlisted developer. Each line carries the raw query, its variables, and the caller's identity so the request can be replayed against another environment.

func NewReplayLogger added in v0.4.13

func NewReplayLogger(developers string) (*ReplayLogger, error)

NewReplayLogger parses a comma-separated list of developer license addresses into a ReplayLogger. Returns nil if the list is empty, meaning recording is disabled.

func (*ReplayLogger) ExtensionName added in v0.4.13

func (*ReplayLogger) ExtensionName() string

func (*ReplayLogger) InterceptResponse added in v0.4.13

func (r *ReplayLogger) InterceptResponse(ctx context.Context, next graphql.ResponseHandler) *graphql.Response

func (*ReplayLogger) Validate added in v0.4.13

Jump to

Keyboard shortcuts

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