From 8cc54d8c867b62218a14c414c431cb0a11993124 Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Sat, 25 Jan 2025 19:23:16 +0100 Subject: [PATCH 1/6] feat: add normalizedQuery to query plan and request info to trace --- router/core/graphql_prehandler.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/router/core/graphql_prehandler.go b/router/core/graphql_prehandler.go index 9eca52b126..84e18dd901 100644 --- a/router/core/graphql_prehandler.go +++ b/router/core/graphql_prehandler.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "crypto/ecdsa" + "encoding/json" "fmt" "net/http" "strconv" @@ -350,6 +351,16 @@ func (h *PreHandler) Handler(next http.Handler) http.Handler { art.SetRequestTracingStats(r.Context(), traceOptions, traceTimings) + if traceOptions.Enable { + reqData := &resolve.RequestData{ + Method: r.Method, + URL: r.URL.String(), + Headers: r.Header, + Body: json.RawMessage(body), + } + r = r.WithContext(resolve.SetRequest(r.Context(), reqData)) + } + ww := middleware.NewWrapResponseWriter(w, r.ProtoMajor) // The request context needs to be updated with the latest request to ensure that the context is up to date @@ -770,6 +781,11 @@ func (h *PreHandler) handleOperation(req *http.Request, variablesParser *astjson if (h.queryPlansEnabled && requestContext.operation.executionOptions.IncludeQueryPlanInResponse) || h.alwaysIncludeQueryPlan { + switch p := requestContext.operation.preparedPlan.preparedPlan.(type) { + case *plan.SynchronousResponsePlan: + p.Response.Fetches.NormalizedQuery = operationKit.parsedOperation.NormalizedRepresentation + } + if h.queryPlansLoggingEnabled { switch p := requestContext.operation.preparedPlan.preparedPlan.(type) { case *plan.SynchronousResponsePlan: From c1240e25263ea13196f34b5b67da4733d70e7549 Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Mon, 27 Jan 2025 12:11:15 +0100 Subject: [PATCH 2/6] fix: use structured body data --- router/core/graphql_prehandler.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/router/core/graphql_prehandler.go b/router/core/graphql_prehandler.go index 84e18dd901..e56059d86d 100644 --- a/router/core/graphql_prehandler.go +++ b/router/core/graphql_prehandler.go @@ -352,11 +352,16 @@ func (h *PreHandler) Handler(next http.Handler) http.Handler { art.SetRequestTracingStats(r.Context(), traceOptions, traceTimings) if traceOptions.Enable { + var bodyData resolve.BodyData + err := json.Unmarshal(body, &bodyData) + if err != nil { + requestLogger.Warn("Failed to unmarshal body data in data trace", zap.Error(err)) + } reqData := &resolve.RequestData{ Method: r.Method, URL: r.URL.String(), Headers: r.Header, - Body: json.RawMessage(body), + Body: &bodyData, } r = r.WithContext(resolve.SetRequest(r.Context(), reqData)) } From fd15f5290778eebb1b9cbb61b5000d656fedecd3 Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Mon, 27 Jan 2025 12:58:41 +0100 Subject: [PATCH 3/6] fix: avoid reparsing body --- router/core/context.go | 4 +++- router/core/graphql_prehandler.go | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/router/core/context.go b/router/core/context.go index 716b3dfb82..9f58c7fec0 100644 --- a/router/core/context.go +++ b/router/core/context.go @@ -476,7 +476,9 @@ type operationContext struct { internalHash uint64 // remapVariables is a map of variables that have been remapped to the new names remapVariables map[string]string - // Content is the content of the operation + // RawContent is the raw content of the operation + rawContent string + // Content is the normalized content of the operation content string variables *astjson.Value files []httpclient.File diff --git a/router/core/graphql_prehandler.go b/router/core/graphql_prehandler.go index e56059d86d..ad83f6571a 100644 --- a/router/core/graphql_prehandler.go +++ b/router/core/graphql_prehandler.go @@ -352,16 +352,15 @@ func (h *PreHandler) Handler(next http.Handler) http.Handler { art.SetRequestTracingStats(r.Context(), traceOptions, traceTimings) if traceOptions.Enable { - var bodyData resolve.BodyData - err := json.Unmarshal(body, &bodyData) - if err != nil { - requestLogger.Warn("Failed to unmarshal body data in data trace", zap.Error(err)) - } reqData := &resolve.RequestData{ Method: r.Method, URL: r.URL.String(), Headers: r.Header, - Body: &bodyData, + Body: &resolve.BodyData{ + Query: requestContext.operation.rawContent, + OperationName: requestContext.operation.name, + Variables: json.RawMessage(requestContext.operation.variables.String()), + }, } r = r.WithContext(resolve.SetRequest(r.Context(), reqData)) } @@ -628,6 +627,7 @@ func (h *PreHandler) handleOperation(req *http.Request, variablesParser *astjson requestContext.telemetry.addCommonAttribute(operationHashAttribute) httpOperation.routerSpan.SetAttributes(operationHashAttribute) + requestContext.operation.rawContent = operationKit.parsedOperation.Request.Query requestContext.operation.content = operationKit.parsedOperation.NormalizedRepresentation requestContext.operation.variables, err = variablesParser.ParseBytes(operationKit.parsedOperation.Request.Variables) if err != nil { From 9a7f0e568e8826aa34a825772e75e96ad1998d84 Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Mon, 27 Jan 2025 15:46:15 +0100 Subject: [PATCH 4/6] fix: remove usage of BodyData by pointer --- router/core/graphql_prehandler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/router/core/graphql_prehandler.go b/router/core/graphql_prehandler.go index ad83f6571a..e608fc2889 100644 --- a/router/core/graphql_prehandler.go +++ b/router/core/graphql_prehandler.go @@ -356,7 +356,7 @@ func (h *PreHandler) Handler(next http.Handler) http.Handler { Method: r.Method, URL: r.URL.String(), Headers: r.Header, - Body: &resolve.BodyData{ + Body: resolve.BodyData{ Query: requestContext.operation.rawContent, OperationName: requestContext.operation.name, Variables: json.RawMessage(requestContext.operation.variables.String()), From e4b069f266250460c8686ae71e4cd012b22ebdea Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Mon, 27 Jan 2025 16:49:08 +0100 Subject: [PATCH 5/6] fix: update graphql-go-tools version, updated tests --- demo/go.mod | 2 +- demo/go.sum | 4 +-- router-tests/go.mod | 2 +- router-tests/go.sum | 4 +-- .../fixtures/query_plans/only_query_plan.json | 3 +- .../query_plan_with_trace_no_data.json | 33 ++++++++++++++++++- .../query_plans/response_with_query_plan.json | 3 +- ...sponse_with_query_plan_operation_name.json | 3 +- ...plan_operation_name_sanitized_no_data.json | 33 ++++++++++++++++++- router-tests/testdata/tracing.json | 23 +++++++++++++ router/go.mod | 2 +- router/go.sum | 4 +-- 12 files changed, 102 insertions(+), 14 deletions(-) diff --git a/demo/go.mod b/demo/go.mod index 75d3d9e174..8d13f022cd 100644 --- a/demo/go.mod +++ b/demo/go.mod @@ -15,7 +15,7 @@ require ( github.com/wundergraph/cosmo/composition-go v0.0.0-20240124120900-5effe48a4a1d github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e github.com/wundergraph/cosmo/router-tests v0.0.0-20241213115435-a249dba8c52a - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.141 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 go.opentelemetry.io/otel v1.28.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.23.1 diff --git a/demo/go.sum b/demo/go.sum index 530e7d38d6..734a7fbc70 100644 --- a/demo/go.sum +++ b/demo/go.sum @@ -309,8 +309,8 @@ github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e h1:ee4fu7 github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e/go.mod h1:ImqCvxvvNOy1UxbuTnFtin/CDBFHoFqrZly3rC2z+e0= github.com/wundergraph/cosmo/router-tests v0.0.0-20241213115435-a249dba8c52a h1:GVLe85f5g+G0IOorDBBNTfm5Ua9DO0vuVY7ReSTOEbQ= github.com/wundergraph/cosmo/router-tests v0.0.0-20241213115435-a249dba8c52a/go.mod h1:I+SFviFnd3BHlPmYn+ckmzQyDB9+/c8RZJo4t6VQAds= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.141 h1:lPwwEJRYYuJflv7fhgwaWKt6FKRdX5CJ1Yp6RWzzKDA= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.141/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 h1:3JuBmRux6YB/UZgh6COvgLXzQhMIsdHV7A02NsYdAVE= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= diff --git a/router-tests/go.mod b/router-tests/go.mod index 4a2e17a62c..cfc7f7c858 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -26,7 +26,7 @@ require ( github.com/twmb/franz-go/pkg/kadm v1.11.0 github.com/wundergraph/cosmo/demo v0.0.0-20250119174948-4b991294658e github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 go.opentelemetry.io/otel v1.28.0 go.opentelemetry.io/otel/sdk v1.28.0 go.opentelemetry.io/otel/sdk/metric v1.28.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index 37ce26c9e7..1276798b36 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -358,8 +358,8 @@ github.com/vektah/gqlparser/v2 v2.5.16 h1:1gcmLTvs3JLKXckwCwlUagVn/IlV2bwqle0vJ0 github.com/vektah/gqlparser/v2 v2.5.16/go.mod h1:1lz1OeCqgQbQepsGxPVywrjdBHW2T08PUS3pJqepRww= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083 h1:8/D7f8gKxTBjW+SZK4mhxTTBVpxcqeBgWF1Rfmltbfk= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083/go.mod h1:eOTL6acwctsN4F3b7YE+eE2t8zcJ/doLm9sZzsxxxrE= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144 h1:dkCHwG7ku5RzOWHcaDDG6cj/RXMZW7Q1spVKlLElAp4= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 h1:3JuBmRux6YB/UZgh6COvgLXzQhMIsdHV7A02NsYdAVE= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/router-tests/testdata/fixtures/query_plans/only_query_plan.json b/router-tests/testdata/fixtures/query_plans/only_query_plan.json index 41f16fb856..861575f3c3 100644 --- a/router-tests/testdata/fixtures/query_plans/only_query_plan.json +++ b/router-tests/testdata/fixtures/query_plans/only_query_plan.json @@ -123,7 +123,8 @@ } ] } - ] + ], + "normalizedQuery": "query Requires {products {__typename ... on Consultancy {lead {__typename id derivedMood} isLeadAvailable}}}" } } } \ No newline at end of file diff --git a/router-tests/testdata/fixtures/query_plans/query_plan_with_trace_no_data.json b/router-tests/testdata/fixtures/query_plans/query_plan_with_trace_no_data.json index 9048cadb2f..3c44055d74 100644 --- a/router-tests/testdata/fixtures/query_plans/query_plan_with_trace_no_data.json +++ b/router-tests/testdata/fixtures/query_plans/query_plan_with_trace_no_data.json @@ -123,7 +123,8 @@ } ] } - ] + ], + "normalizedQuery": "query Requires {products {__typename ... on Consultancy {lead {__typename id derivedMood} isLeadAvailable}}}" }, "trace": { "version": "1", @@ -214,6 +215,36 @@ ] } ] + }, + "request": { + "method": "POST", + "url": "/graphql", + "headers": { + "Accept-Encoding": [ + "identity" + ], + "Content-Length": [ + "294" + ], + "User-Agent": [ + "Go-http-client/1.1" + ], + "X-Wg-Include-Query-Plan": [ + "true" + ], + "X-Wg-Skip-Loader": [ + "true" + ], + "X-Wg-Trace": [ + "true", + "enable_predictable_debug_timings" + ] + }, + "body": { + "query": "query Requires {\n\t\t\t\t\t products {\n\t\t\t\t\t\t__typename\n\t\t\t\t\t\t... on Consultancy {\n\t\t\t\t\t\t lead {\n\t\t\t\t\t\t\t__typename\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tderivedMood\n\t\t\t\t\t\t }\n\t\t\t\t\t\t isLeadAvailable\n\t\t\t\t\t\t}\n\t\t\t\t\t }\n\t\t\t\t\t}", + "operationName": "Requires", + "variables": {} + } } } } diff --git a/router-tests/testdata/fixtures/query_plans/response_with_query_plan.json b/router-tests/testdata/fixtures/query_plans/response_with_query_plan.json index 6f1af4886c..ca6e02d15f 100644 --- a/router-tests/testdata/fixtures/query_plans/response_with_query_plan.json +++ b/router-tests/testdata/fixtures/query_plans/response_with_query_plan.json @@ -141,7 +141,8 @@ } ] } - ] + ], + "normalizedQuery": "query Requires {products {__typename ... on Consultancy {lead {__typename id derivedMood} isLeadAvailable}}}" } } } \ No newline at end of file diff --git a/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name.json b/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name.json index 324fbd40a5..e6a11cd172 100644 --- a/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name.json +++ b/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name.json @@ -141,7 +141,8 @@ } ] } - ] + ], + "normalizedQuery": "query Requires {products {__typename ... on Consultancy {lead {__typename id derivedMood} isLeadAvailable}}}" } } } \ No newline at end of file diff --git a/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name_sanitized_no_data.json b/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name_sanitized_no_data.json index ff0b9f53f5..7160cac07b 100644 --- a/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name_sanitized_no_data.json +++ b/router-tests/testdata/fixtures/query_plans/response_with_query_plan_operation_name_sanitized_no_data.json @@ -123,7 +123,8 @@ } ] } - ] + ], + "normalizedQuery": "query Requires {products {__typename ... on Consultancy {lead {__typename id derivedMood} isLeadAvailable}}}" }, "trace": { "version": "1", @@ -214,6 +215,36 @@ ] } ] + }, + "request": { + "method": "POST", + "url": "/graphql", + "headers": { + "Accept-Encoding": [ + "identity" + ], + "Content-Length": [ + "294" + ], + "User-Agent": [ + "Go-http-client/1.1" + ], + "X-Wg-Include-Query-Plan": [ + "true" + ], + "X-Wg-Skip-Loader": [ + "true" + ], + "X-Wg-Trace": [ + "true", + "enable_predictable_debug_timings" + ] + }, + "body": { + "query": "query Requires {\n\t\t\t\t\t products {\n\t\t\t\t\t\t__typename\n\t\t\t\t\t\t... on Consultancy {\n\t\t\t\t\t\t lead {\n\t\t\t\t\t\t\t__typename\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tderivedMood\n\t\t\t\t\t\t }\n\t\t\t\t\t\t isLeadAvailable\n\t\t\t\t\t\t}\n\t\t\t\t\t }\n\t\t\t\t\t}", + "operationName": "Requires", + "variables": {} + } } } } diff --git a/router-tests/testdata/tracing.json b/router-tests/testdata/tracing.json index 1bcbd4ac9c..ff47debcfa 100644 --- a/router-tests/testdata/tracing.json +++ b/router-tests/testdata/tracing.json @@ -2010,6 +2010,29 @@ } } ] + }, + "request": { + "method": "POST", + "url": "/graphql", + "headers": { + "Accept-Encoding": [ + "identity" + ], + "Content-Length": [ + "596" + ], + "User-Agent": [ + "Go-http-client/1.1" + ], + "X-Wg-Trace": [ + "true", + "enable_predictable_debug_timings" + ] + }, + "body": { + "query": "{\n employees {\n id\n details {\n forename\n surname\n hasChildren\n }\n role {\n title\n departments\n }\n hobbies {\n ... on Exercise {\n category\n }\n ... on Flying {\n planeModels\n yearsOfExperience\n }\n ... on Gaming {\n name\n genres\n yearsOfExperience\n }\n ... on Programming {\n languages\n }\n ... on Travelling {\n countriesLived {\n\t\t language\n\t\t}\n }\n ... on Other {\n name\n }\n }\n }\n}", + "variables": {} + } } } } diff --git a/router/go.mod b/router/go.mod index 48b89278b6..22ec2b6473 100644 --- a/router/go.mod +++ b/router/go.mod @@ -34,7 +34,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index e6907b1d01..20017ce3ce 100644 --- a/router/go.sum +++ b/router/go.sum @@ -274,8 +274,8 @@ github.com/vektah/gqlparser/v2 v2.5.16 h1:1gcmLTvs3JLKXckwCwlUagVn/IlV2bwqle0vJ0 github.com/vektah/gqlparser/v2 v2.5.16/go.mod h1:1lz1OeCqgQbQepsGxPVywrjdBHW2T08PUS3pJqepRww= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083 h1:8/D7f8gKxTBjW+SZK4mhxTTBVpxcqeBgWF1Rfmltbfk= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083/go.mod h1:eOTL6acwctsN4F3b7YE+eE2t8zcJ/doLm9sZzsxxxrE= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144 h1:dkCHwG7ku5RzOWHcaDDG6cj/RXMZW7Q1spVKlLElAp4= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 h1:3JuBmRux6YB/UZgh6COvgLXzQhMIsdHV7A02NsYdAVE= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= From 7ea9bc6cef49d5d74f17e64b792905b001d6fe76 Mon Sep 17 00:00:00 2001 From: Alessandro Pagnin Date: Mon, 27 Jan 2025 16:52:38 +0100 Subject: [PATCH 6/6] fix: update go.sum --- demo/go.sum | 4 ++-- router-tests/go.sum | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/go.sum b/demo/go.sum index c4457ed1ca..33ab57ca5e 100644 --- a/demo/go.sum +++ b/demo/go.sum @@ -312,8 +312,8 @@ github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e h1:ee4fu7 github.com/wundergraph/cosmo/router v0.0.0-20250119174948-4b991294658e/go.mod h1:ImqCvxvvNOy1UxbuTnFtin/CDBFHoFqrZly3rC2z+e0= github.com/wundergraph/cosmo/router-tests v0.0.0-20241213115435-a249dba8c52a h1:GVLe85f5g+G0IOorDBBNTfm5Ua9DO0vuVY7ReSTOEbQ= github.com/wundergraph/cosmo/router-tests v0.0.0-20241213115435-a249dba8c52a/go.mod h1:I+SFviFnd3BHlPmYn+ckmzQyDB9+/c8RZJo4t6VQAds= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.141 h1:lPwwEJRYYuJflv7fhgwaWKt6FKRdX5CJ1Yp6RWzzKDA= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.141/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 h1:3JuBmRux6YB/UZgh6COvgLXzQhMIsdHV7A02NsYdAVE= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= diff --git a/router-tests/go.sum b/router-tests/go.sum index 927499adc0..24dcdf1c6c 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -361,8 +361,8 @@ github.com/vektah/gqlparser/v2 v2.5.21 h1:Zw1rG2dr1pRR4wqwbVq4d6+xk2f4ut/yo+hwr4 github.com/vektah/gqlparser/v2 v2.5.21/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083 h1:8/D7f8gKxTBjW+SZK4mhxTTBVpxcqeBgWF1Rfmltbfk= github.com/wundergraph/astjson v0.0.0-20250106123708-be463c97e083/go.mod h1:eOTL6acwctsN4F3b7YE+eE2t8zcJ/doLm9sZzsxxxrE= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144 h1:dkCHwG7ku5RzOWHcaDDG6cj/RXMZW7Q1spVKlLElAp4= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.144/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145 h1:3JuBmRux6YB/UZgh6COvgLXzQhMIsdHV7A02NsYdAVE= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.145/go.mod h1:B7eV0Qh8Lop9QzIOQcsvKp3S0ejfC6mgyWoJnI917yQ= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=