@apollo/gateway 2.4.3 → 2.4.4

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.
Files changed (119) hide show
  1. package/package.json +4 -4
  2. package/src/dataRewrites.ts +1 -1
  3. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/loadSupergraphSdlFromStorage.test.ts +1 -3
  4. package/dist/__generated__/graphqlTypes.d.ts +0 -160
  5. package/dist/__generated__/graphqlTypes.d.ts.map +0 -1
  6. package/dist/__generated__/graphqlTypes.js +0 -30
  7. package/dist/__generated__/graphqlTypes.js.map +0 -1
  8. package/dist/config.d.ts +0 -138
  9. package/dist/config.d.ts.map +0 -1
  10. package/dist/config.js +0 -60
  11. package/dist/config.js.map +0 -1
  12. package/dist/dataRewrites.d.ts +0 -5
  13. package/dist/dataRewrites.d.ts.map +0 -1
  14. package/dist/dataRewrites.js +0 -103
  15. package/dist/dataRewrites.js.map +0 -1
  16. package/dist/datasources/LocalGraphQLDataSource.d.ts +0 -10
  17. package/dist/datasources/LocalGraphQLDataSource.d.ts.map +0 -1
  18. package/dist/datasources/LocalGraphQLDataSource.js +0 -31
  19. package/dist/datasources/LocalGraphQLDataSource.js.map +0 -1
  20. package/dist/datasources/RemoteGraphQLDataSource.d.ts +0 -24
  21. package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +0 -1
  22. package/dist/datasources/RemoteGraphQLDataSource.js +0 -180
  23. package/dist/datasources/RemoteGraphQLDataSource.js.map +0 -1
  24. package/dist/datasources/index.d.ts +0 -4
  25. package/dist/datasources/index.d.ts.map +0 -1
  26. package/dist/datasources/index.js +0 -8
  27. package/dist/datasources/index.js.map +0 -1
  28. package/dist/datasources/parseCacheControlHeader.d.ts +0 -2
  29. package/dist/datasources/parseCacheControlHeader.d.ts.map +0 -1
  30. package/dist/datasources/parseCacheControlHeader.js +0 -16
  31. package/dist/datasources/parseCacheControlHeader.js.map +0 -1
  32. package/dist/datasources/types.d.ts +0 -23
  33. package/dist/datasources/types.d.ts.map +0 -1
  34. package/dist/datasources/types.js +0 -10
  35. package/dist/datasources/types.js.map +0 -1
  36. package/dist/executeQueryPlan.d.ts +0 -15
  37. package/dist/executeQueryPlan.d.ts.map +0 -1
  38. package/dist/executeQueryPlan.js +0 -539
  39. package/dist/executeQueryPlan.js.map +0 -1
  40. package/dist/index.d.ts +0 -113
  41. package/dist/index.d.ts.map +0 -1
  42. package/dist/index.js +0 -590
  43. package/dist/index.js.map +0 -1
  44. package/dist/logger.d.ts +0 -3
  45. package/dist/logger.d.ts.map +0 -1
  46. package/dist/logger.js +0 -15
  47. package/dist/logger.js.map +0 -1
  48. package/dist/operationContext.d.ts +0 -17
  49. package/dist/operationContext.d.ts.map +0 -1
  50. package/dist/operationContext.js +0 -38
  51. package/dist/operationContext.js.map +0 -1
  52. package/dist/resultShaping.d.ts +0 -12
  53. package/dist/resultShaping.d.ts.map +0 -1
  54. package/dist/resultShaping.js +0 -229
  55. package/dist/resultShaping.js.map +0 -1
  56. package/dist/schema-helper/addExtensions.d.ts +0 -3
  57. package/dist/schema-helper/addExtensions.d.ts.map +0 -1
  58. package/dist/schema-helper/addExtensions.js +0 -23
  59. package/dist/schema-helper/addExtensions.js.map +0 -1
  60. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +0 -31
  61. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +0 -1
  62. package/dist/supergraphManagers/IntrospectAndCompose/index.js +0 -112
  63. package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +0 -1
  64. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +0 -12
  65. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +0 -1
  66. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js +0 -57
  67. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +0 -1
  68. package/dist/supergraphManagers/LegacyFetcher/index.d.ts +0 -33
  69. package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +0 -1
  70. package/dist/supergraphManagers/LegacyFetcher/index.js +0 -149
  71. package/dist/supergraphManagers/LegacyFetcher/index.js.map +0 -1
  72. package/dist/supergraphManagers/LocalCompose/index.d.ts +0 -19
  73. package/dist/supergraphManagers/LocalCompose/index.d.ts.map +0 -1
  74. package/dist/supergraphManagers/LocalCompose/index.js +0 -55
  75. package/dist/supergraphManagers/LocalCompose/index.js.map +0 -1
  76. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts +0 -63
  77. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts.map +0 -1
  78. package/dist/supergraphManagers/UplinkSupergraphManager/index.js +0 -210
  79. package/dist/supergraphManagers/UplinkSupergraphManager/index.js.map +0 -1
  80. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts +0 -30
  81. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts.map +0 -1
  82. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js +0 -145
  83. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js.map +0 -1
  84. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts +0 -14
  85. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts.map +0 -1
  86. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js +0 -85
  87. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js.map +0 -1
  88. package/dist/supergraphManagers/index.d.ts +0 -6
  89. package/dist/supergraphManagers/index.d.ts.map +0 -1
  90. package/dist/supergraphManagers/index.js +0 -27
  91. package/dist/supergraphManagers/index.js.map +0 -1
  92. package/dist/typings/graphql.d.ts +0 -11
  93. package/dist/typings/graphql.d.ts.map +0 -1
  94. package/dist/typings/graphql.js +0 -3
  95. package/dist/typings/graphql.js.map +0 -1
  96. package/dist/utilities/array.d.ts +0 -5
  97. package/dist/utilities/array.d.ts.map +0 -1
  98. package/dist/utilities/array.js +0 -46
  99. package/dist/utilities/array.js.map +0 -1
  100. package/dist/utilities/assert.d.ts +0 -2
  101. package/dist/utilities/assert.d.ts.map +0 -1
  102. package/dist/utilities/assert.js +0 -10
  103. package/dist/utilities/assert.js.map +0 -1
  104. package/dist/utilities/deepMerge.d.ts +0 -2
  105. package/dist/utilities/deepMerge.d.ts.map +0 -1
  106. package/dist/utilities/deepMerge.js +0 -34
  107. package/dist/utilities/deepMerge.js.map +0 -1
  108. package/dist/utilities/graphql.d.ts +0 -5
  109. package/dist/utilities/graphql.d.ts.map +0 -1
  110. package/dist/utilities/graphql.js +0 -28
  111. package/dist/utilities/graphql.js.map +0 -1
  112. package/dist/utilities/opentelemetry.d.ts +0 -10
  113. package/dist/utilities/opentelemetry.d.ts.map +0 -1
  114. package/dist/utilities/opentelemetry.js +0 -19
  115. package/dist/utilities/opentelemetry.js.map +0 -1
  116. package/dist/utilities/predicates.d.ts +0 -2
  117. package/dist/utilities/predicates.d.ts.map +0 -1
  118. package/dist/utilities/predicates.js +0 -11
  119. package/dist/utilities/predicates.js.map +0 -1
package/dist/index.js DELETED
@@ -1,590 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.UplinkFetcherError = exports.UplinkSupergraphManager = exports.LocalCompose = exports.IntrospectAndCompose = exports.buildOperationContext = exports.executeQueryPlan = exports.ApolloGateway = exports.SERVICE_DEFINITION_QUERY = exports.HEALTH_CHECK_QUERY = void 0;
18
- const util_1 = require("util");
19
- const utils_createhash_1 = require("@apollo/utils.createhash");
20
- const utils_keyvaluecache_1 = require("@apollo/utils.keyvaluecache");
21
- const operationContext_1 = require("./operationContext");
22
- Object.defineProperty(exports, "buildOperationContext", { enumerable: true, get: function () { return operationContext_1.buildOperationContext; } });
23
- const executeQueryPlan_1 = require("./executeQueryPlan");
24
- Object.defineProperty(exports, "executeQueryPlan", { enumerable: true, get: function () { return executeQueryPlan_1.executeQueryPlan; } });
25
- const types_1 = require("./datasources/types");
26
- const RemoteGraphQLDataSource_1 = require("./datasources/RemoteGraphQLDataSource");
27
- const values_1 = require("graphql/execution/values");
28
- const query_planner_1 = require("@apollo/query-planner");
29
- const config_1 = require("./config");
30
- const api_1 = require("@opentelemetry/api");
31
- const opentelemetry_1 = require("./utilities/opentelemetry");
32
- const addExtensions_1 = require("./schema-helper/addExtensions");
33
- const supergraphManagers_1 = require("./supergraphManagers");
34
- Object.defineProperty(exports, "IntrospectAndCompose", { enumerable: true, get: function () { return supergraphManagers_1.IntrospectAndCompose; } });
35
- Object.defineProperty(exports, "UplinkSupergraphManager", { enumerable: true, get: function () { return supergraphManagers_1.UplinkSupergraphManager; } });
36
- Object.defineProperty(exports, "LocalCompose", { enumerable: true, get: function () { return supergraphManagers_1.LocalCompose; } });
37
- const federation_internals_1 = require("@apollo/federation-internals");
38
- const logger_1 = require("./logger");
39
- exports.HEALTH_CHECK_QUERY = 'query __ApolloServiceHealthCheck__ { __typename }';
40
- exports.SERVICE_DEFINITION_QUERY = 'query __ApolloGetServiceDefinition__ { _service { sdl } }';
41
- class ApolloGateway {
42
- constructor(config) {
43
- var _a, _b, _c;
44
- this.serviceMap = Object.create(null);
45
- this.onSchemaChangeListeners = new Set();
46
- this.onSchemaLoadOrUpdateListeners = new Set();
47
- this.warnedStates = Object.create(null);
48
- this.toDispose = [];
49
- this.executor = async (requestContext) => {
50
- const spanAttributes = requestContext.operationName
51
- ? { operationName: requestContext.operationName }
52
- : {};
53
- return opentelemetry_1.tracer.startActiveSpan(opentelemetry_1.OpenTelemetrySpanNames.REQUEST, { attributes: spanAttributes }, async (span) => {
54
- try {
55
- const { request, document, queryHash } = requestContext;
56
- const queryPlanStoreKey = request.operationName ?
57
- (0, utils_createhash_1.createHash)('sha256').update(queryHash).update(request.operationName).digest('hex')
58
- : queryHash;
59
- const operationContext = (0, operationContext_1.buildOperationContext)({
60
- schema: this.schema,
61
- operationDocument: document,
62
- operationName: request.operationName,
63
- });
64
- const validationErrors = this.validateIncomingRequest(requestContext, operationContext);
65
- if (validationErrors.length > 0) {
66
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
67
- return { errors: validationErrors };
68
- }
69
- let queryPlan = await this.queryPlanStore.get(queryPlanStoreKey);
70
- if (!queryPlan) {
71
- queryPlan = opentelemetry_1.tracer.startActiveSpan(opentelemetry_1.OpenTelemetrySpanNames.PLAN, (span) => {
72
- try {
73
- const operation = (0, federation_internals_1.operationFromDocument)(this.apiSchema, document, { operationName: request.operationName });
74
- return this.queryPlanner.buildQueryPlan(operation);
75
- }
76
- catch (err) {
77
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
78
- throw err;
79
- }
80
- finally {
81
- span.end();
82
- }
83
- });
84
- try {
85
- await this.queryPlanStore.set(queryPlanStoreKey, queryPlan);
86
- }
87
- catch (err) {
88
- this.logger.warn('Could not store queryPlan' + ((err && err.message) || err));
89
- }
90
- }
91
- const serviceMap = Object.entries(this.serviceMap).reduce((serviceDataSources, [serviceName, { dataSource }]) => {
92
- serviceDataSources[serviceName] = dataSource;
93
- return serviceDataSources;
94
- }, Object.create(null));
95
- if (this.experimental_didResolveQueryPlan) {
96
- this.experimental_didResolveQueryPlan({
97
- queryPlan,
98
- serviceMap,
99
- requestContext,
100
- operationContext,
101
- });
102
- }
103
- const response = await (0, executeQueryPlan_1.executeQueryPlan)(queryPlan, serviceMap, requestContext, operationContext, this.supergraphSchema, this.apiSchema);
104
- const shouldShowQueryPlan = this.config.__exposeQueryPlanExperimental &&
105
- request.http &&
106
- request.http.headers &&
107
- request.http.headers.get('Apollo-Query-Plan-Experimental');
108
- const serializedQueryPlan = queryPlan.node && (this.config.debug || shouldShowQueryPlan)
109
- ?
110
- (0, query_planner_1.prettyFormatQueryPlan)(queryPlan)
111
- : null;
112
- if (this.config.debug && serializedQueryPlan) {
113
- this.logger.debug(serializedQueryPlan);
114
- }
115
- if (shouldShowQueryPlan) {
116
- response.extensions = {
117
- __queryPlanExperimental: serializedQueryPlan || true,
118
- };
119
- }
120
- if (response.errors) {
121
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
122
- }
123
- return response;
124
- }
125
- catch (err) {
126
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
127
- throw err;
128
- }
129
- finally {
130
- span.end();
131
- }
132
- });
133
- };
134
- this.config = {
135
- __exposeQueryPlanExperimental: process.env.NODE_ENV !== 'production',
136
- ...config,
137
- };
138
- this.logger = (_a = this.config.logger) !== null && _a !== void 0 ? _a : (0, logger_1.getDefaultLogger)(this.config.debug);
139
- this.queryPlanStore = this.initQueryPlanStore(config === null || config === void 0 ? void 0 : config.experimental_approximateQueryPlanStoreMiB);
140
- this.experimental_didResolveQueryPlan =
141
- config === null || config === void 0 ? void 0 : config.experimental_didResolveQueryPlan;
142
- this.experimental_didUpdateSupergraph =
143
- config === null || config === void 0 ? void 0 : config.experimental_didUpdateSupergraph;
144
- if ((0, config_1.isManagedConfig)(this.config)) {
145
- this.pollIntervalInMs =
146
- (_b = this.config.fallbackPollIntervalInMs) !== null && _b !== void 0 ? _b : this.config.pollIntervalInMs;
147
- }
148
- else if ((0, config_1.isServiceListConfig)(this.config)) {
149
- this.pollIntervalInMs = (_c = this.config) === null || _c === void 0 ? void 0 : _c.pollIntervalInMs;
150
- }
151
- this.issueConfigurationWarningsIfApplicable();
152
- this.logger.debug('Gateway successfully initialized (but not yet loaded)');
153
- this.state = { phase: 'initialized' };
154
- }
155
- get supergraphManager() {
156
- return this._supergraphManager;
157
- }
158
- initQueryPlanStore(approximateQueryPlanStoreMiB) {
159
- var _a, _b, _c;
160
- if ((_a = this.config.queryPlannerConfig) === null || _a === void 0 ? void 0 : _a.cache) {
161
- return (_b = this.config.queryPlannerConfig) === null || _b === void 0 ? void 0 : _b.cache;
162
- }
163
- const defaultSize = ((_c = this.config.queryPlannerConfig) === null || _c === void 0 ? void 0 : _c.exposeDocumentNodeInFetchNode) ? 50 : 30;
164
- return new utils_keyvaluecache_1.InMemoryLRUCache({
165
- maxSize: Math.pow(2, 20) * (approximateQueryPlanStoreMiB || defaultSize),
166
- sizeCalculation: approximateObjectSize,
167
- });
168
- }
169
- issueConfigurationWarningsIfApplicable() {
170
- if (this.pollIntervalInMs && (0, config_1.isServiceListConfig)(this.config)) {
171
- this.logger.warn('Polling running services is dangerous and not recommended in production. ' +
172
- 'Polling should only be used against a registry. ' +
173
- 'If you are polling running services, use with caution.');
174
- }
175
- if ((0, config_1.isManuallyManagedConfig)(this.config) &&
176
- 'experimental_updateSupergraphSdl' in this.config &&
177
- 'experimental_updateServiceDefinitions' in this.config) {
178
- this.logger.warn('Gateway found two manual update configurations when only one should be ' +
179
- 'provided. Gateway will default to using the provided `experimental_updateSupergraphSdl` ' +
180
- 'function when both `experimental_updateSupergraphSdl` and experimental_updateServiceDefinitions` ' +
181
- 'are provided.');
182
- }
183
- if ('schemaConfigDeliveryEndpoint' in this.config) {
184
- this.logger.warn('The `schemaConfigDeliveryEndpoint` option is deprecated and will be removed in a future version of `@apollo/gateway`. Please migrate to the equivalent (array form) `uplinkEndpoints` configuration option.');
185
- }
186
- if ((0, config_1.isManagedConfig)(this.config) && 'pollIntervalInMs' in this.config) {
187
- this.logger.warn('The `pollIntervalInMs` option is deprecated and will be removed in a future version of `@apollo/gateway`. ' +
188
- 'Please migrate to the equivalent `fallbackPollIntervalInMs` configuration option. ' +
189
- 'The poll interval is now defined by Uplink, this option will only be used if it is greater than the value defined by Uplink or as a fallback.');
190
- }
191
- }
192
- async load(options) {
193
- var _a, _b, _c;
194
- this.logger.debug('Loading gateway...');
195
- if (this.state.phase !== 'initialized') {
196
- throw Error(`ApolloGateway.load called in surprising state ${this.state.phase}`);
197
- }
198
- if (options === null || options === void 0 ? void 0 : options.apollo) {
199
- const { key, keyHash, graphRef, graphId, graphVariant } = options.apollo;
200
- this.apolloConfig = {
201
- key,
202
- keyHash,
203
- graphRef: graphRef !== null && graphRef !== void 0 ? graphRef : (graphId ? `${graphId}@${graphVariant !== null && graphVariant !== void 0 ? graphVariant : 'current'}` : undefined),
204
- };
205
- }
206
- else if (options === null || options === void 0 ? void 0 : options.engine) {
207
- const { apiKeyHash, graphId, graphVariant } = options.engine;
208
- this.apolloConfig = {
209
- keyHash: apiKeyHash,
210
- graphRef: graphId
211
- ? `${graphId}@${graphVariant !== null && graphVariant !== void 0 ? graphVariant : 'current'}`
212
- : undefined,
213
- };
214
- }
215
- this.maybeWarnOnConflictingConfig();
216
- if ((0, config_1.isStaticSupergraphSdlConfig)(this.config)) {
217
- const supergraphSdl = this.config.supergraphSdl;
218
- await this.initializeSupergraphManager({
219
- initialize: async () => {
220
- return {
221
- supergraphSdl,
222
- };
223
- },
224
- });
225
- }
226
- else if ((0, config_1.isLocalConfig)(this.config)) {
227
- await this.initializeSupergraphManager(new supergraphManagers_1.LocalCompose({
228
- localServiceList: this.config.localServiceList,
229
- logger: this.logger,
230
- }));
231
- }
232
- else if ((0, config_1.isManuallyManagedSupergraphSdlGatewayConfig)(this.config)) {
233
- const supergraphManager = typeof this.config.supergraphSdl === 'object'
234
- ? this.config.supergraphSdl
235
- : { initialize: this.config.supergraphSdl };
236
- await this.initializeSupergraphManager(supergraphManager);
237
- }
238
- else if ('experimental_updateServiceDefinitions' in this.config ||
239
- 'experimental_updateSupergraphSdl' in this.config) {
240
- const updateServiceDefinitions = 'experimental_updateServiceDefinitions' in this.config
241
- ? this.config.experimental_updateServiceDefinitions
242
- : this.config.experimental_updateSupergraphSdl;
243
- await this.initializeSupergraphManager(new supergraphManagers_1.LegacyFetcher({
244
- logger: this.logger,
245
- gatewayConfig: this.config,
246
- updateServiceDefinitions,
247
- pollIntervalInMs: this.pollIntervalInMs,
248
- subgraphHealthCheck: this.config.serviceHealthCheck,
249
- }));
250
- }
251
- else if ((0, config_1.isServiceListConfig)(this.config)) {
252
- this.logger.warn('The `serviceList` option is deprecated and will be removed in a future version of `@apollo/gateway`. Please migrate to its replacement `IntrospectAndCompose`. More information on `IntrospectAndCompose` can be found in the documentation.');
253
- await this.initializeSupergraphManager(new supergraphManagers_1.IntrospectAndCompose({
254
- subgraphs: this.config.serviceList,
255
- pollIntervalInMs: this.pollIntervalInMs,
256
- logger: this.logger,
257
- subgraphHealthCheck: this.config.serviceHealthCheck,
258
- introspectionHeaders: this.config.introspectionHeaders,
259
- }));
260
- }
261
- else {
262
- const canUseManagedConfig = ((_a = this.apolloConfig) === null || _a === void 0 ? void 0 : _a.graphRef) && ((_b = this.apolloConfig) === null || _b === void 0 ? void 0 : _b.keyHash);
263
- if (!canUseManagedConfig) {
264
- throw new Error('When a manual configuration is not provided, gateway requires an Apollo ' +
265
- 'configuration. See https://www.apollographql.com/docs/apollo-server/federation/managed-federation/ ' +
266
- 'for more information. Manual configuration options include: ' +
267
- '`serviceList`, `supergraphSdl`, and `experimental_updateServiceDefinitions`.');
268
- }
269
- const schemaDeliveryEndpoints = this.config
270
- .schemaConfigDeliveryEndpoint
271
- ? [this.config.schemaConfigDeliveryEndpoint]
272
- : undefined;
273
- await this.initializeSupergraphManager(new supergraphManagers_1.UplinkSupergraphManager({
274
- graphRef: this.apolloConfig.graphRef,
275
- apiKey: this.apolloConfig.key,
276
- shouldRunSubgraphHealthcheck: this.config.serviceHealthCheck,
277
- uplinkEndpoints: (_c = this.config.uplinkEndpoints) !== null && _c !== void 0 ? _c : schemaDeliveryEndpoints,
278
- maxRetries: this.config.uplinkMaxRetries,
279
- fetcher: this.config.fetcher,
280
- logger: this.logger,
281
- fallbackPollIntervalInMs: this.pollIntervalInMs,
282
- }));
283
- }
284
- const mode = (0, config_1.isManagedConfig)(this.config) ? 'managed' : 'unmanaged';
285
- this.logger.info(`Gateway successfully loaded schema.\n\t* Mode: ${mode}${this.apolloConfig && this.apolloConfig.graphRef
286
- ? `\n\t* Service: ${this.apolloConfig.graphRef}`
287
- : ''}`);
288
- (0, addExtensions_1.addExtensions)(this.schema);
289
- return {
290
- schema: this.schema,
291
- executor: this.executor,
292
- };
293
- }
294
- getIdForSupergraphSdl(supergraphSdl) {
295
- return (0, utils_createhash_1.createHash)('sha256').update(supergraphSdl).digest('hex');
296
- }
297
- async initializeSupergraphManager(supergraphManager) {
298
- try {
299
- const result = await supergraphManager.initialize({
300
- update: this.externalSupergraphUpdateCallback.bind(this),
301
- healthCheck: this.externalSubgraphHealthCheckCallback.bind(this),
302
- getDataSource: this.externalGetDataSourceCallback.bind(this),
303
- });
304
- if (result === null || result === void 0 ? void 0 : result.cleanup) {
305
- if (typeof result.cleanup === 'function') {
306
- this.toDispose.push(result.cleanup);
307
- }
308
- else {
309
- this.logger.error('Provided `supergraphSdl` function returned an invalid `cleanup` property (must be a function)');
310
- }
311
- }
312
- this.externalSupergraphUpdateCallback(result.supergraphSdl);
313
- }
314
- catch (e) {
315
- this.state = { phase: 'failed to load' };
316
- await this.performCleanupAndLogErrors();
317
- throw e;
318
- }
319
- this._supergraphManager = supergraphManager;
320
- this.state = { phase: 'loaded' };
321
- }
322
- externalSupergraphUpdateCallback(supergraphSdl) {
323
- switch (this.state.phase) {
324
- case 'failed to load':
325
- throw new Error("Can't call `update` callback after gateway failed to load.");
326
- case 'updating schema':
327
- throw new Error("Can't call `update` callback while supergraph update is in progress.");
328
- case 'stopped':
329
- throw new Error("Can't call `update` callback after gateway has been stopped.");
330
- case 'stopping':
331
- throw new Error("Can't call `update` callback while gateway is stopping.");
332
- case 'loaded':
333
- case 'initialized':
334
- break;
335
- default:
336
- throw new UnreachableCaseError(this.state);
337
- }
338
- this.state = { phase: 'updating schema' };
339
- try {
340
- this.updateWithSupergraphSdl({
341
- supergraphSdl,
342
- id: this.getIdForSupergraphSdl(supergraphSdl),
343
- });
344
- }
345
- finally {
346
- this.state = { phase: 'loaded' };
347
- }
348
- }
349
- async externalSubgraphHealthCheckCallback(supergraphSdl) {
350
- const serviceList = this.serviceListFromSupergraphSdl(supergraphSdl);
351
- const serviceMap = serviceList.reduce((serviceMap, serviceDef) => {
352
- serviceMap[serviceDef.name] = {
353
- url: serviceDef.url,
354
- dataSource: this.createDataSource(serviceDef),
355
- };
356
- return serviceMap;
357
- }, Object.create(null));
358
- try {
359
- await this.serviceHealthCheck(serviceMap);
360
- }
361
- catch (e) {
362
- throw new Error('The gateway subgraphs health check failed. Updating to the provided ' +
363
- '`supergraphSdl` will likely result in future request failures to ' +
364
- 'subgraphs. The following error occurred during the health check:\n' +
365
- e.message);
366
- }
367
- }
368
- externalGetDataSourceCallback({ name, url, }) {
369
- return this.getOrCreateDataSource({ name, url });
370
- }
371
- updateWithSupergraphSdl(result) {
372
- if (result.id === this.compositionId) {
373
- this.logger.debug('No change in composition since last check.');
374
- return;
375
- }
376
- const { supergraphSchema, supergraphSdl } = this.createSchemaFromSupergraphSdl(result.supergraphSdl);
377
- const previousSchema = this.schema;
378
- const previousSupergraphSdl = this.supergraphSdl;
379
- const previousCompositionId = this.compositionId;
380
- if (previousSchema) {
381
- this.logger.info(`Updated Supergraph SDL was found [Composition ID ${this.compositionId} => ${result.id}]`);
382
- }
383
- this.compositionId = result.id;
384
- this.supergraphSdl = supergraphSdl;
385
- this.supergraphSchema = supergraphSchema.toGraphQLJSSchema();
386
- if (!supergraphSdl) {
387
- this.logger.error("A valid schema couldn't be composed. Falling back to previous schema.");
388
- }
389
- else {
390
- this.updateWithSchemaAndNotify(supergraphSchema, supergraphSdl);
391
- if (this.experimental_didUpdateSupergraph) {
392
- this.experimental_didUpdateSupergraph({
393
- compositionId: result.id,
394
- supergraphSdl,
395
- schema: this.schema,
396
- }, previousCompositionId && previousSupergraphSdl && previousSchema
397
- ? {
398
- compositionId: previousCompositionId,
399
- supergraphSdl: previousSupergraphSdl,
400
- schema: previousSchema,
401
- }
402
- : undefined);
403
- }
404
- }
405
- }
406
- updateWithSchemaAndNotify(coreSchema, coreSupergraphSdl, legacyDontNotifyOnSchemaChangeListeners = false) {
407
- this.queryPlanStore.clear();
408
- this.apiSchema = coreSchema.toAPISchema();
409
- this.schema = (0, addExtensions_1.addExtensions)(this.apiSchema.toGraphQLJSSchema());
410
- this.queryPlanner = new query_planner_1.QueryPlanner(coreSchema, this.config.queryPlannerConfig);
411
- if (!legacyDontNotifyOnSchemaChangeListeners) {
412
- this.onSchemaChangeListeners.forEach((listener) => {
413
- try {
414
- listener(this.schema);
415
- }
416
- catch (e) {
417
- this.logger.error("An error was thrown from an 'onSchemaChange' listener. " +
418
- 'The schema will still update: ' +
419
- ((e && e.message) || e));
420
- }
421
- });
422
- }
423
- this.onSchemaLoadOrUpdateListeners.forEach((listener) => {
424
- try {
425
- listener({
426
- apiSchema: this.schema,
427
- coreSupergraphSdl,
428
- });
429
- }
430
- catch (e) {
431
- this.logger.error("An error was thrown from an 'onSchemaLoadOrUpdate' listener. " +
432
- 'The schema will still update: ' +
433
- ((e && e.message) || e));
434
- }
435
- });
436
- }
437
- serviceHealthCheck(serviceMap = this.serviceMap) {
438
- return Promise.all(Object.entries(serviceMap).map(([name, { dataSource }]) => dataSource
439
- .process({
440
- kind: types_1.GraphQLDataSourceRequestKind.HEALTH_CHECK,
441
- request: { query: exports.HEALTH_CHECK_QUERY },
442
- context: {},
443
- })
444
- .then((response) => ({ name, response }))
445
- .catch((e) => {
446
- throw new Error(`[${name}]: ${e.message}`);
447
- })));
448
- }
449
- serviceListFromSupergraphSdl(supergraphSdl) {
450
- return (0, federation_internals_1.buildSupergraphSchema)(supergraphSdl)[1];
451
- }
452
- createSchemaFromSupergraphSdl(supergraphSdl) {
453
- const [schema, serviceList] = (0, federation_internals_1.buildSupergraphSchema)(supergraphSdl);
454
- this.createServices(serviceList);
455
- return {
456
- supergraphSchema: schema,
457
- supergraphSdl,
458
- };
459
- }
460
- onSchemaChange(callback) {
461
- this.onSchemaChangeListeners.add(callback);
462
- return () => {
463
- this.onSchemaChangeListeners.delete(callback);
464
- };
465
- }
466
- onSchemaLoadOrUpdate(callback) {
467
- this.onSchemaLoadOrUpdateListeners.add(callback);
468
- return () => {
469
- this.onSchemaLoadOrUpdateListeners.delete(callback);
470
- };
471
- }
472
- getOrCreateDataSource(serviceDef) {
473
- if (this.serviceMap[serviceDef.name] &&
474
- serviceDef.url === this.serviceMap[serviceDef.name].url) {
475
- return this.serviceMap[serviceDef.name].dataSource;
476
- }
477
- const dataSource = this.createDataSource(serviceDef);
478
- this.serviceMap[serviceDef.name] = { url: serviceDef.url, dataSource };
479
- return dataSource;
480
- }
481
- createDataSource(serviceDef) {
482
- if (!serviceDef.url && !(0, config_1.isLocalConfig)(this.config)) {
483
- this.logger.error(`Service definition for service ${serviceDef.name} is missing a url`);
484
- }
485
- return this.config.buildService
486
- ? this.config.buildService(serviceDef)
487
- : new RemoteGraphQLDataSource_1.RemoteGraphQLDataSource({
488
- url: serviceDef.url,
489
- });
490
- }
491
- createServices(services) {
492
- for (const serviceDef of services) {
493
- this.getOrCreateDataSource(serviceDef);
494
- }
495
- }
496
- maybeWarnOnConflictingConfig() {
497
- var _a, _b;
498
- const canUseManagedConfig = ((_a = this.apolloConfig) === null || _a === void 0 ? void 0 : _a.graphRef) && ((_b = this.apolloConfig) === null || _b === void 0 ? void 0 : _b.keyHash);
499
- if (!(0, config_1.isManagedConfig)(this.config) &&
500
- canUseManagedConfig &&
501
- !this.warnedStates.remoteWithLocalConfig) {
502
- this.warnedStates.remoteWithLocalConfig = true;
503
- this.logger.warn('A local gateway configuration is overriding a managed federation ' +
504
- 'configuration. To use the managed ' +
505
- 'configuration, do not specify a service list or supergraphSdl locally.');
506
- }
507
- }
508
- validateIncomingRequest(requestContext, operationContext) {
509
- return opentelemetry_1.tracer.startActiveSpan(opentelemetry_1.OpenTelemetrySpanNames.VALIDATE, (span) => {
510
- try {
511
- const variableDefinitions = operationContext.operation
512
- .variableDefinitions;
513
- if (!variableDefinitions)
514
- return [];
515
- const { errors } = (0, values_1.getVariableValues)(operationContext.schema, variableDefinitions, requestContext.request.variables || {});
516
- if (errors) {
517
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
518
- }
519
- return errors || [];
520
- }
521
- catch (err) {
522
- span.setStatus({ code: api_1.SpanStatusCode.ERROR });
523
- throw err;
524
- }
525
- finally {
526
- span.end();
527
- }
528
- });
529
- }
530
- async performCleanupAndLogErrors() {
531
- if (this.toDispose.length === 0)
532
- return;
533
- await Promise.all(this.toDispose.map((p) => p().catch((e) => {
534
- var _a;
535
- this.logger.error('Error occured while calling user provided `cleanup` function: ' +
536
- ((_a = e.message) !== null && _a !== void 0 ? _a : e));
537
- })));
538
- this.toDispose = [];
539
- }
540
- async stop() {
541
- switch (this.state.phase) {
542
- case 'initialized':
543
- case 'failed to load':
544
- case 'stopped':
545
- return;
546
- case 'stopping':
547
- await this.state.stoppingDonePromise;
548
- if (this.state.phase !== 'stopped') {
549
- throw Error(`Expected to be stopped when done stopping, but instead ${this.state.phase}`);
550
- }
551
- return;
552
- case 'loaded':
553
- const stoppingDonePromise = this.performCleanupAndLogErrors();
554
- this.state = {
555
- phase: 'stopping',
556
- stoppingDonePromise,
557
- };
558
- await stoppingDonePromise;
559
- this.state = { phase: 'stopped' };
560
- return;
561
- case 'updating schema': {
562
- throw Error("`ApolloGateway.stop` shouldn't be called from inside a schema change listener");
563
- }
564
- default:
565
- throw new UnreachableCaseError(this.state);
566
- }
567
- }
568
- __testing() {
569
- return {
570
- state: this.state,
571
- compositionId: this.compositionId,
572
- supergraphSdl: this.supergraphSdl,
573
- queryPlanner: this.queryPlanner,
574
- };
575
- }
576
- }
577
- exports.ApolloGateway = ApolloGateway;
578
- ApolloGateway.prototype.onSchemaChange = (0, util_1.deprecate)(ApolloGateway.prototype.onSchemaChange, `'ApolloGateway.prototype.onSchemaChange' is deprecated. Use 'ApolloGateway.prototype.onSchemaLoadOrUpdate' instead.`);
579
- function approximateObjectSize(obj) {
580
- return Buffer.byteLength(JSON.stringify(obj), 'utf8');
581
- }
582
- class UnreachableCaseError extends Error {
583
- constructor(val) {
584
- super(`Unreachable case: ${val}`);
585
- }
586
- }
587
- __exportStar(require("./datasources"), exports);
588
- var supergraphManagers_2 = require("./supergraphManagers");
589
- Object.defineProperty(exports, "UplinkFetcherError", { enumerable: true, get: function () { return supergraphManagers_2.UplinkFetcherError; } });
590
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Logger } from '@apollo/utils.logger';
2
- export declare function getDefaultLogger(debug?: boolean): Logger;
3
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,OAAe,GAAG,MAAM,CAO/D"}
package/dist/logger.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDefaultLogger = void 0;
7
- const loglevel_1 = __importDefault(require("loglevel"));
8
- function getDefaultLogger(debug = false) {
9
- const logger = loglevel_1.default.getLogger('apollo-gateway');
10
- const level = debug === true ? loglevel_1.default.levels.DEBUG : loglevel_1.default.levels.WARN;
11
- logger.setLevel(level);
12
- return logger;
13
- }
14
- exports.getDefaultLogger = getDefaultLogger;
15
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAGhC,SAAgB,gBAAgB,CAAC,QAAiB,KAAK;IACrD,MAAM,MAAM,GAAG,kBAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAPD,4CAOC"}