vault backup: 2026-05-01 16:30:05
This commit is contained in:
25
Работа/Обновление версий gateway.md
Normal file
25
Работа/Обновление версий gateway.md
Normal file
@@ -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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user