@apollo/gateway 0.48.1 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/dist/__generated__/graphqlTypes.d.ts +4 -0
- package/dist/__generated__/graphqlTypes.d.ts.map +1 -1
- package/dist/__generated__/graphqlTypes.js.map +1 -1
- package/dist/config.d.ts +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/executeQueryPlan.d.ts.map +1 -1
- package/dist/executeQueryPlan.js +4 -3
- package/dist/executeQueryPlan.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -8
- package/dist/index.js.map +1 -1
- package/dist/schema-helper/index.js +5 -1
- package/dist/schema-helper/index.js.map +1 -1
- package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +1 -1
- package/dist/supergraphManagers/LegacyFetcher/index.js.map +1 -1
- package/dist/supergraphManagers/LocalCompose/index.js.map +1 -1
- package/dist/supergraphManagers/UplinkFetcher/index.d.ts +3 -1
- package/dist/supergraphManagers/UplinkFetcher/index.d.ts.map +1 -1
- package/dist/supergraphManagers/UplinkFetcher/index.js +20 -4
- package/dist/supergraphManagers/UplinkFetcher/index.js.map +1 -1
- package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts +3 -2
- package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts.map +1 -1
- package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js +9 -3
- package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js.map +1 -1
- package/package.json +6 -6
- package/src/__generated__/graphqlTypes.ts +11 -2
- package/src/__tests__/CucumberREADME.md +1 -0
- package/src/__tests__/build-query-plan-fragmentization.feature +10 -0
- package/src/__tests__/build-query-plan.feature +84 -16
- package/src/__tests__/buildQueryPlan.test.ts +272 -1
- package/src/__tests__/gateway/lifecycle-hooks.test.ts +3 -3
- package/src/__tests__/gateway/reporting.test.ts +5 -0
- package/src/__tests__/gateway/supergraphSdl.test.ts +3 -3
- package/src/__tests__/integration/abstract-types.test.ts +3 -3
- package/src/__tests__/integration/configuration.test.ts +0 -11
- package/src/__tests__/integration/requires.test.ts +1 -1
- package/src/__tests__/integration/value-types.test.ts +1 -1
- package/src/config.ts +11 -6
- package/src/executeQueryPlan.ts +4 -0
- package/src/index.ts +12 -6
- package/src/supergraphManagers/UplinkFetcher/__tests__/loadSupergraphSdlFromStorage.test.ts +41 -0
- package/src/supergraphManagers/UplinkFetcher/index.ts +37 -18
- package/src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts +9 -1
|
@@ -12,6 +12,8 @@ class UplinkFetcher {
|
|
|
12
12
|
this.timerRef = null;
|
|
13
13
|
this.errorReportingEndpoint = (_a = process.env.APOLLO_OUT_OF_BAND_REPORTER_ENDPOINT) !== null && _a !== void 0 ? _a : undefined;
|
|
14
14
|
this.fetchCount = 0;
|
|
15
|
+
this.minDelayMs = null;
|
|
16
|
+
this.earliestFetchTime = null;
|
|
15
17
|
this.config = options;
|
|
16
18
|
this.state = { phase: 'initialized' };
|
|
17
19
|
}
|
|
@@ -22,7 +24,12 @@ class UplinkFetcher {
|
|
|
22
24
|
}
|
|
23
25
|
let initialSupergraphSdl = null;
|
|
24
26
|
try {
|
|
25
|
-
|
|
27
|
+
const result = await this.updateSupergraphSdl();
|
|
28
|
+
initialSupergraphSdl = (result === null || result === void 0 ? void 0 : result.supergraphSdl) || null;
|
|
29
|
+
if (result === null || result === void 0 ? void 0 : result.minDelaySeconds) {
|
|
30
|
+
this.minDelayMs = 1000 * (result === null || result === void 0 ? void 0 : result.minDelaySeconds);
|
|
31
|
+
this.earliestFetchTime = new Date(Date.now() + this.minDelayMs);
|
|
32
|
+
}
|
|
26
33
|
}
|
|
27
34
|
catch (e) {
|
|
28
35
|
this.logUpdateFailure(e);
|
|
@@ -54,6 +61,7 @@ class UplinkFetcher {
|
|
|
54
61
|
compositionId: (_a = this.compositionId) !== null && _a !== void 0 ? _a : null,
|
|
55
62
|
maxRetries: this.config.maxRetries,
|
|
56
63
|
roundRobinSeed: this.fetchCount++,
|
|
64
|
+
earliestFetchTime: this.earliestFetchTime,
|
|
57
65
|
});
|
|
58
66
|
if (!result) {
|
|
59
67
|
return null;
|
|
@@ -61,7 +69,8 @@ class UplinkFetcher {
|
|
|
61
69
|
else {
|
|
62
70
|
this.compositionId = result.id;
|
|
63
71
|
await ((_b = this.healthCheck) === null || _b === void 0 ? void 0 : _b.call(this, result.supergraphSdl));
|
|
64
|
-
|
|
72
|
+
const { supergraphSdl, minDelaySeconds } = result;
|
|
73
|
+
return { supergraphSdl, minDelaySeconds };
|
|
65
74
|
}
|
|
66
75
|
}
|
|
67
76
|
beginPolling() {
|
|
@@ -75,7 +84,12 @@ class UplinkFetcher {
|
|
|
75
84
|
const pollingPromise = (0, resolvable_1.default)();
|
|
76
85
|
this.state.pollingPromise = pollingPromise;
|
|
77
86
|
try {
|
|
78
|
-
const
|
|
87
|
+
const result = await this.updateSupergraphSdl();
|
|
88
|
+
const maybeNewSupergraphSdl = (result === null || result === void 0 ? void 0 : result.supergraphSdl) || null;
|
|
89
|
+
if (result === null || result === void 0 ? void 0 : result.minDelaySeconds) {
|
|
90
|
+
this.minDelayMs = 1000 * (result === null || result === void 0 ? void 0 : result.minDelaySeconds);
|
|
91
|
+
this.earliestFetchTime = new Date(Date.now() + this.minDelayMs);
|
|
92
|
+
}
|
|
79
93
|
if (maybeNewSupergraphSdl) {
|
|
80
94
|
(_a = this.update) === null || _a === void 0 ? void 0 : _a.call(this, maybeNewSupergraphSdl);
|
|
81
95
|
}
|
|
@@ -86,7 +100,9 @@ class UplinkFetcher {
|
|
|
86
100
|
pollingPromise.resolve();
|
|
87
101
|
}
|
|
88
102
|
this.poll();
|
|
89
|
-
}, this.
|
|
103
|
+
}, this.minDelayMs
|
|
104
|
+
? Math.max(this.minDelayMs, this.config.fallbackPollIntervalInMs)
|
|
105
|
+
: this.config.fallbackPollIntervalInMs);
|
|
90
106
|
}
|
|
91
107
|
logUpdateFailure(e) {
|
|
92
108
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/index.ts"],"names":[],"mappings":";;;;;;AAEA,qEAA6C;AAG7C,iFAA8E;AAkB9E,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { fetch } from 'apollo-server-env';
|
|
2
2
|
import { SupergraphSdlUpdate } from '../../config';
|
|
3
|
-
export declare const SUPERGRAPH_SDL_QUERY = "#graphql\n query SupergraphSdl($apiKey: String!, $ref: String!, $ifAfterId: ID) {\n routerConfig(ref: $ref, apiKey: $apiKey, ifAfterId: $ifAfterId) {\n __typename\n ... on RouterConfigResult {\n id\n supergraphSdl: supergraphSDL\n }\n ... on FetchError {\n code\n message\n }\n }\n }\n";
|
|
3
|
+
export declare const SUPERGRAPH_SDL_QUERY = "#graphql\n query SupergraphSdl($apiKey: String!, $ref: String!, $ifAfterId: ID) {\n routerConfig(ref: $ref, apiKey: $apiKey, ifAfterId: $ifAfterId) {\n __typename\n ... on RouterConfigResult {\n id\n supergraphSdl: supergraphSDL\n minDelaySeconds\n }\n ... on FetchError {\n code\n message\n }\n }\n }\n";
|
|
4
4
|
export declare class UplinkFetcherError extends Error {
|
|
5
5
|
constructor(message: string);
|
|
6
6
|
}
|
|
7
|
-
export declare function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, roundRobinSeed, }: {
|
|
7
|
+
export declare function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, roundRobinSeed, earliestFetchTime, }: {
|
|
8
8
|
graphRef: string;
|
|
9
9
|
apiKey: string;
|
|
10
10
|
endpoints: string[];
|
|
@@ -13,6 +13,7 @@ export declare function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoin
|
|
|
13
13
|
compositionId: string | null;
|
|
14
14
|
maxRetries: number;
|
|
15
15
|
roundRobinSeed: number;
|
|
16
|
+
earliestFetchTime: Date | null;
|
|
16
17
|
}): Promise<SupergraphSdlUpdate | null>;
|
|
17
18
|
export declare function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorReportingEndpoint, fetcher, compositionId, }: {
|
|
18
19
|
graphRef: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadSupergraphSdlFromStorage.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"loadSupergraphSdlFromStorage.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,eAAO,MAAM,oBAAoB,wXAehC,CAAC;AAoBF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAA;CAC/B,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAuBvC;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,OAAO,EACP,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAyFvC"}
|
|
@@ -14,6 +14,7 @@ exports.SUPERGRAPH_SDL_QUERY = `#graphql
|
|
|
14
14
|
... on RouterConfigResult {
|
|
15
15
|
id
|
|
16
16
|
supergraphSdl: supergraphSDL
|
|
17
|
+
minDelaySeconds
|
|
17
18
|
}
|
|
18
19
|
... on FetchError {
|
|
19
20
|
code
|
|
@@ -31,7 +32,7 @@ class UplinkFetcherError extends Error {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
exports.UplinkFetcherError = UplinkFetcherError;
|
|
34
|
-
async function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, roundRobinSeed, }) {
|
|
35
|
+
async function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, roundRobinSeed, earliestFetchTime, }) {
|
|
35
36
|
return (0, async_retry_1.default)(() => loadSupergraphSdlFromStorage({
|
|
36
37
|
graphRef,
|
|
37
38
|
apiKey,
|
|
@@ -41,6 +42,11 @@ async function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, error
|
|
|
41
42
|
compositionId,
|
|
42
43
|
}), {
|
|
43
44
|
retries: maxRetries,
|
|
45
|
+
onRetry: async () => {
|
|
46
|
+
const delayMS = earliestFetchTime ? earliestFetchTime.getTime() - Date.now() : 0;
|
|
47
|
+
if (delayMS > 0)
|
|
48
|
+
await new Promise(resolve => setTimeout(resolve, delayMS));
|
|
49
|
+
}
|
|
44
50
|
});
|
|
45
51
|
}
|
|
46
52
|
exports.loadSupergraphSdlFromUplinks = loadSupergraphSdlFromUplinks;
|
|
@@ -108,8 +114,8 @@ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorR
|
|
|
108
114
|
}
|
|
109
115
|
const { routerConfig } = response.data;
|
|
110
116
|
if (routerConfig.__typename === 'RouterConfigResult') {
|
|
111
|
-
const { id, supergraphSdl, } = routerConfig;
|
|
112
|
-
return { id, supergraphSdl: supergraphSdl };
|
|
117
|
+
const { id, supergraphSdl, minDelaySeconds, } = routerConfig;
|
|
118
|
+
return { id, supergraphSdl: supergraphSdl, minDelaySeconds };
|
|
113
119
|
}
|
|
114
120
|
else if (routerConfig.__typename === 'FetchError') {
|
|
115
121
|
const { code, message } = routerConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadSupergraphSdlFromStorage.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA6D;AAE7D,8DAAgC;AAEhC,2DAAwE;AAI3D,QAAA,oBAAoB,GAAgB
|
|
1
|
+
{"version":3,"file":"loadSupergraphSdlFromStorage.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apollo/gateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.0",
|
|
4
4
|
"description": "Apollo Gateway",
|
|
5
5
|
"author": "Apollo <packages@apollographql.com>",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"apollo"
|
|
19
19
|
],
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=12.13.0 <
|
|
21
|
+
"node": ">=12.13.0 <18.0"
|
|
22
22
|
},
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"publishConfig": {
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@apollo/core-schema": "^0.2.0",
|
|
29
|
-
"@apollo/federation": "^0.
|
|
30
|
-
"@apollo/query-planner": "^0.
|
|
29
|
+
"@apollo/federation": "^0.36.0",
|
|
30
|
+
"@apollo/query-planner": "^0.10.0",
|
|
31
31
|
"@josephg/resolvable": "^1.0.1",
|
|
32
32
|
"@opentelemetry/api": "^1.0.1",
|
|
33
|
-
"@types/node-fetch": "2.
|
|
33
|
+
"@types/node-fetch": "2.6.1",
|
|
34
34
|
"apollo-reporting-protobuf": "^0.8.0 || ^3.0.0",
|
|
35
35
|
"apollo-server-caching": "^0.7.0 || ^3.0.0",
|
|
36
36
|
"apollo-server-core": "^2.23.0 || ^3.0.0",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"graphql": "^15.8.0 || ^16.0.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "60defe7f8eb227325462d1a90d0ab1a9f21f13ea"
|
|
51
51
|
}
|
|
@@ -41,6 +41,8 @@ export type FetchError = {
|
|
|
41
41
|
__typename?: 'FetchError';
|
|
42
42
|
code: FetchErrorCode;
|
|
43
43
|
message: Scalars['String'];
|
|
44
|
+
/** Minimum delay before the next fetch should occur, in seconds. */
|
|
45
|
+
minDelaySeconds: Scalars['Float'];
|
|
44
46
|
};
|
|
45
47
|
|
|
46
48
|
export enum FetchErrorCode {
|
|
@@ -111,16 +113,23 @@ export type RouterConfigResponse = FetchError | RouterConfigResult | Unchanged;
|
|
|
111
113
|
|
|
112
114
|
export type RouterConfigResult = {
|
|
113
115
|
__typename?: 'RouterConfigResult';
|
|
116
|
+
/** Variant-unique identifier. */
|
|
114
117
|
id: Scalars['ID'];
|
|
115
118
|
/** Messages that should be reported back to the operators of this router, eg through logs and/or monitoring. */
|
|
116
119
|
messages: Array<Message>;
|
|
117
|
-
/**
|
|
120
|
+
/** Minimum delay before the next fetch should occur, in seconds. */
|
|
121
|
+
minDelaySeconds: Scalars['Float'];
|
|
122
|
+
/** The configuration as core schema. */
|
|
118
123
|
supergraphSDL: Scalars['String'];
|
|
119
124
|
};
|
|
120
125
|
|
|
126
|
+
/** Response indicating the router configuration available is not newer than the one passed in `ifAfterId`. */
|
|
121
127
|
export type Unchanged = {
|
|
122
128
|
__typename?: 'Unchanged';
|
|
129
|
+
/** Variant-unique identifier for the configuration that remains in place. */
|
|
123
130
|
id: Scalars['ID'];
|
|
131
|
+
/** Minimum delay before the next fetch should occur, in seconds. */
|
|
132
|
+
minDelaySeconds: Scalars['Float'];
|
|
124
133
|
};
|
|
125
134
|
|
|
126
135
|
export type SupergraphSdlQueryVariables = Exact<{
|
|
@@ -130,7 +139,7 @@ export type SupergraphSdlQueryVariables = Exact<{
|
|
|
130
139
|
}>;
|
|
131
140
|
|
|
132
141
|
|
|
133
|
-
export type SupergraphSdlQuery = { __typename?: 'Query', routerConfig: { __typename: 'FetchError', code: FetchErrorCode, message: string } | { __typename: 'RouterConfigResult', id: string, supergraphSdl: string } | { __typename: 'Unchanged' } };
|
|
142
|
+
export type SupergraphSdlQuery = { __typename?: 'Query', routerConfig: { __typename: 'FetchError', code: FetchErrorCode, message: string } | { __typename: 'RouterConfigResult', id: string, minDelaySeconds: number, supergraphSdl: string } | { __typename: 'Unchanged' } };
|
|
134
143
|
|
|
135
144
|
export type OobReportMutationVariables = Exact<{
|
|
136
145
|
input?: InputMaybe<ApiMonitoringReport>;
|
|
@@ -46,6 +46,7 @@ Scenario: should not confuse union types with overlapping field names
|
|
|
46
46
|
"kind": "Fetch",
|
|
47
47
|
"serviceName": "documents",
|
|
48
48
|
"variableUsages": [],
|
|
49
|
+
"operationKind": "query",
|
|
49
50
|
"operation": "{body{__typename ...on Image{attributes{url}}...on Text{attributes{bold text}}}}"
|
|
50
51
|
}
|
|
51
52
|
}
|
|
@@ -29,6 +29,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
29
29
|
"kind": "Fetch",
|
|
30
30
|
"serviceName": "reviews",
|
|
31
31
|
"variableUsages": [],
|
|
32
|
+
"operationKind": "query",
|
|
32
33
|
"operation": "{topReviews{...__QueryPlanFragment_1__}}fragment __QueryPlanFragment_1__ on Review{body author product{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Product{__typename ...on Book{__typename isbn}...on Furniture{__typename upc}}"
|
|
33
34
|
},
|
|
34
35
|
{
|
|
@@ -54,6 +55,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
54
55
|
}
|
|
55
56
|
],
|
|
56
57
|
"variableUsages": [],
|
|
58
|
+
"operationKind": "query",
|
|
57
59
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}"
|
|
58
60
|
}
|
|
59
61
|
},
|
|
@@ -76,6 +78,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
76
78
|
}
|
|
77
79
|
],
|
|
78
80
|
"variableUsages": [],
|
|
81
|
+
"operationKind": "query",
|
|
79
82
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}"
|
|
80
83
|
}
|
|
81
84
|
}
|
|
@@ -106,6 +109,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
106
109
|
}
|
|
107
110
|
],
|
|
108
111
|
"variableUsages": [],
|
|
112
|
+
"operationKind": "query",
|
|
109
113
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name price details{country}}...on Book{price details{country}}}}"
|
|
110
114
|
}
|
|
111
115
|
}
|
|
@@ -135,6 +139,7 @@ Scenario: experimental compression to downstream services shouldn't generate fra
|
|
|
135
139
|
"kind": "Fetch",
|
|
136
140
|
"serviceName": "reviews",
|
|
137
141
|
"variableUsages": [],
|
|
142
|
+
"operationKind": "query",
|
|
138
143
|
"operation": "{topReviews{body author}}"
|
|
139
144
|
}
|
|
140
145
|
}
|
|
@@ -160,6 +165,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
160
165
|
"kind": "Fetch",
|
|
161
166
|
"serviceName": "reviews",
|
|
162
167
|
"variableUsages": [],
|
|
168
|
+
"operationKind": "query",
|
|
163
169
|
"operation": "{topReviews{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Review{id body author}"
|
|
164
170
|
}
|
|
165
171
|
}
|
|
@@ -194,6 +200,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
194
200
|
"kind": "Fetch",
|
|
195
201
|
"serviceName": "reviews",
|
|
196
202
|
"variableUsages": [],
|
|
203
|
+
"operationKind": "query",
|
|
197
204
|
"operation": "{reviews:topReviews{...__QueryPlanFragment_1__}}fragment __QueryPlanFragment_1__ on Review{content:body author product{...__QueryPlanFragment_0__}}fragment __QueryPlanFragment_0__ on Product{__typename ...on Book{__typename isbn}...on Furniture{__typename upc}}"
|
|
198
205
|
},
|
|
199
206
|
{
|
|
@@ -219,6 +226,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
219
226
|
}
|
|
220
227
|
],
|
|
221
228
|
"variableUsages": [],
|
|
229
|
+
"operationKind": "query",
|
|
222
230
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{__typename isbn title year}}}"
|
|
223
231
|
}
|
|
224
232
|
},
|
|
@@ -241,6 +249,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
241
249
|
}
|
|
242
250
|
],
|
|
243
251
|
"variableUsages": [],
|
|
252
|
+
"operationKind": "query",
|
|
244
253
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Book{name}}}"
|
|
245
254
|
}
|
|
246
255
|
}
|
|
@@ -271,6 +280,7 @@ Scenario: experimental compression to downstream services should generate fragme
|
|
|
271
280
|
}
|
|
272
281
|
],
|
|
273
282
|
"variableUsages": [],
|
|
283
|
+
"operationKind": "query",
|
|
274
284
|
"operation": "query($representations:[_Any!]!){_entities(representations:$representations){...on Furniture{name cost:price details{origin:country}}...on Book{cost:price details{origin:country}}}}"
|
|
275
285
|
}
|
|
276
286
|
}
|