v0.7.1
🚀 Features
feat: Pass remote-mcp mcp-session-id header along to GraphQL request - @damassi PR #236
This adds support for passing the mcp-session-id header through from remote-mcp via the MCP client config. This header originates from the underlying @modelcontextprotocol/sdk library, invoked from remote-mcp.
With this change it is possible to correlate requests from MCP clients through to the final GraphQL server destination.
🐛 Fixes
fix: Valid token fails validation with multiple audiences - @DaleSeo PR #244
Valid tokens are failing validation with the following error when the JWT tokens contain an audience claim as an array.
JSON error: invalid type: sequence, expected a string at line 1 column 97
According to RFC 7519 Section 4.1.3, the audience claim can be either a single string or an array of strings. However, our implementation assumes it will always be a string, which is causing this JSON parsing error.
This fix updates the Claims struct to use Vec<String> instead of String for the aud field, along with a custom deserializer to handle both string and array formats.
fix: Add custom deserializer to handle APOLLO_UPLINK_ENDPOINTS environment variable parsing - @swcollard PR #220
The APOLLO_UPLINK_ENDPOINTS environment variables has historically been a comma separated list of URL strings.
The move to yaml configuration allows us to more directly define the endpoints as a Vec.
This fix introduces a custom deserializer for the apollo_uplink_endpoints config field that can handle both the environment variable comma separated string, and the yaml-based list.