From ee2c612b62895ad867fb4c18a30e181f7acfb37f Mon Sep 17 00:00:00 2001 From: Daniil Date: Fri, 1 May 2026 16:30:05 +0300 Subject: [PATCH] vault backup: 2026-05-01 16:30:05 --- Работа/Обновление версий gateway.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Работа/Обновление версий gateway.md diff --git a/Работа/Обновление версий gateway.md b/Работа/Обновление версий gateway.md new file mode 100644 index 0000000..6d95d6b --- /dev/null +++ b/Работа/Обновление версий gateway.md @@ -0,0 +1,25 @@ +``` +ARD-1762: Миграция graphql-go-tools v1 → v2 + + 1. Nil pointer panic при WebSocket upgrade + - ws.HTTPUpgrader передавался как nil в NewGraphqlHTTPHandler + - Исправление: инициализация дефолтного &ws.HTTPUpgrader с Protocol: func(proto string) bool { return proto == "graphql-ws" } + + 2. Playground не работал + - v2 playground использует @graphiql/plugin-explorer который блокируется CORS при загрузке с CDN + - Исправление: написали кастомный initPlayground в application.go с GraphiQL v2 без проблемного плагина, убрали зависимость от v2/pkg/playground + + 3. WebSocket ws:// блокировался на HTTPS + - Playground формировал subscription endpoint с ws:// вместо wss:// на задеплоенном окружении + - Исправление: динамическое определение протокола по window.location.protocol + + 4. Пустой GraphQL запрос query {} + - PingApiGateway в tools/http/handler слал невалидный запрос без полей + - Исправление: заменили на query { __typename } + + 5. Заголовки авторизации не пробрасывались к subgraph'ам + - В v2 FederationEngineConfigFactory не передаёт клиентские заголовки к subgraph'ам (код закомментирован в библиотеке) + - WithAdditionalHttpHeaders кладёт заголовки в resolve.Context, но до http.Request subgraph'а они не доходили + - Исправление: кастомный headerForwardingTransport который перехватывает все запросы к subgraph'ам и добавляет Authorization / X-Service-Authorization из клиентского запроса, переданного через + context.WithValue +``` \ No newline at end of file