@apollo/gateway 0.45.1 → 0.46.0-alpha.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/config.d.ts +42 -16
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +28 -18
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts +35 -23
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +205 -308
  9. package/dist/index.js.map +1 -1
  10. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +31 -0
  11. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +1 -0
  12. package/dist/supergraphManagers/IntrospectAndCompose/index.js +112 -0
  13. package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +1 -0
  14. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +12 -0
  15. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +1 -0
  16. package/dist/{loadServicesFromRemoteEndpoint.js → supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js} +6 -6
  17. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +1 -0
  18. package/dist/supergraphManagers/LegacyFetcher/index.d.ts +33 -0
  19. package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +1 -0
  20. package/dist/supergraphManagers/LegacyFetcher/index.js +149 -0
  21. package/dist/supergraphManagers/LegacyFetcher/index.js.map +1 -0
  22. package/dist/supergraphManagers/LocalCompose/index.d.ts +19 -0
  23. package/dist/supergraphManagers/LocalCompose/index.d.ts.map +1 -0
  24. package/dist/supergraphManagers/LocalCompose/index.js +55 -0
  25. package/dist/supergraphManagers/LocalCompose/index.js.map +1 -0
  26. package/dist/supergraphManagers/UplinkFetcher/index.d.ts +32 -0
  27. package/dist/supergraphManagers/UplinkFetcher/index.d.ts.map +1 -0
  28. package/dist/supergraphManagers/UplinkFetcher/index.js +96 -0
  29. package/dist/supergraphManagers/UplinkFetcher/index.js.map +1 -0
  30. package/dist/{loadSupergraphSdlFromStorage.d.ts → supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts} +1 -1
  31. package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts.map +1 -0
  32. package/dist/{loadSupergraphSdlFromStorage.js → supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js} +1 -1
  33. package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js.map +1 -0
  34. package/dist/{outOfBandReporter.d.ts → supergraphManagers/UplinkFetcher/outOfBandReporter.d.ts} +0 -0
  35. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.d.ts.map +1 -0
  36. package/dist/{outOfBandReporter.js → supergraphManagers/UplinkFetcher/outOfBandReporter.js} +2 -2
  37. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.js.map +1 -0
  38. package/dist/supergraphManagers/index.d.ts +5 -0
  39. package/dist/supergraphManagers/index.d.ts.map +1 -0
  40. package/dist/supergraphManagers/index.js +12 -0
  41. package/dist/supergraphManagers/index.js.map +1 -0
  42. package/dist/utilities/createHash.d.ts +2 -0
  43. package/dist/utilities/createHash.d.ts.map +1 -0
  44. package/dist/utilities/createHash.js +15 -0
  45. package/dist/utilities/createHash.js.map +1 -0
  46. package/dist/utilities/isNodeLike.d.ts +3 -0
  47. package/dist/utilities/isNodeLike.d.ts.map +1 -0
  48. package/dist/utilities/isNodeLike.js +8 -0
  49. package/dist/utilities/isNodeLike.js.map +1 -0
  50. package/package.json +6 -4
  51. package/src/__tests__/execution-utils.ts +2 -2
  52. package/src/__tests__/gateway/buildService.test.ts +2 -2
  53. package/src/__tests__/gateway/lifecycle-hooks.test.ts +58 -99
  54. package/src/__tests__/gateway/opentelemetry.test.ts +8 -3
  55. package/src/__tests__/gateway/queryPlanCache.test.ts +25 -9
  56. package/src/__tests__/gateway/reporting.test.ts +4 -6
  57. package/src/__tests__/gateway/supergraphSdl.test.ts +390 -0
  58. package/src/__tests__/integration/aliases.test.ts +9 -3
  59. package/src/__tests__/integration/configuration.test.ts +109 -12
  60. package/src/__tests__/integration/logger.test.ts +1 -1
  61. package/src/__tests__/integration/networkRequests.test.ts +81 -118
  62. package/src/__tests__/integration/nockMocks.ts +15 -8
  63. package/src/config.ts +149 -40
  64. package/src/index.ts +314 -485
  65. package/src/supergraphManagers/IntrospectAndCompose/__tests__/IntrospectAndCompose.test.ts +370 -0
  66. package/src/{__tests__ → supergraphManagers/IntrospectAndCompose/__tests__}/loadServicesFromRemoteEndpoint.test.ts +5 -5
  67. package/src/supergraphManagers/IntrospectAndCompose/__tests__/tsconfig.json +8 -0
  68. package/src/supergraphManagers/IntrospectAndCompose/index.ts +163 -0
  69. package/src/{loadServicesFromRemoteEndpoint.ts → supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.ts} +6 -6
  70. package/src/supergraphManagers/LegacyFetcher/index.ts +229 -0
  71. package/src/supergraphManagers/LocalCompose/index.ts +83 -0
  72. package/src/{__tests__ → supergraphManagers/UplinkFetcher/__tests__}/loadSupergraphSdlFromStorage.test.ts +4 -4
  73. package/src/supergraphManagers/UplinkFetcher/__tests__/tsconfig.json +8 -0
  74. package/src/supergraphManagers/UplinkFetcher/index.ts +128 -0
  75. package/src/{loadSupergraphSdlFromStorage.ts → supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts} +3 -3
  76. package/src/{outOfBandReporter.ts → supergraphManagers/UplinkFetcher/outOfBandReporter.ts} +2 -2
  77. package/src/supergraphManagers/index.ts +4 -0
  78. package/src/utilities/createHash.ts +10 -0
  79. package/src/utilities/isNodeLike.ts +11 -0
  80. package/dist/loadServicesFromRemoteEndpoint.d.ts +0 -13
  81. package/dist/loadServicesFromRemoteEndpoint.d.ts.map +0 -1
  82. package/dist/loadServicesFromRemoteEndpoint.js.map +0 -1
  83. package/dist/loadSupergraphSdlFromStorage.d.ts.map +0 -1
  84. package/dist/loadSupergraphSdlFromStorage.js.map +0 -1
  85. package/dist/outOfBandReporter.d.ts.map +0 -1
  86. package/dist/outOfBandReporter.js.map +0 -1
  87. package/src/__tests__/gateway/composedSdl.test.ts +0 -44
package/CHANGELOG.md CHANGED
@@ -6,6 +6,27 @@
6
6
 
7
7
  - _Nothing yet! Stay tuned._
8
8
 
9
+ ## v0.46.0-alpha.0
10
+
11
+ - __BREAKING__: This change improves the `supergraphSdl` configuration option to provide a clean and flexible interface for updating gateway schema on load and at runtime. This PR brings a number of updates and deprecations to the gateway. Previous options for loading the gateway's supergraph (`serviceList`, `localServiceList`, `experimental_updateServiceDefinitions`, `experimental_supergraphSdl`) are all deprecated going forward. The migration paths all point to the updated `supergraphSdl` configuration option.
12
+
13
+ The most notable change here is the introduction of the concept of a `SupergraphManager` (one new possible type of `supergraphSdl`). This interface (when implemented) provides a means for userland code to update the gateway supergraph dynamically, perform subgraph healthchecks, and access subgraph datasources. All of the mentioned deprecated configurations now either use an implementation of a `SupergraphManager` internally or export one to be configured by the user (`IntrospectAndCompose` and `LocalCompose`).
14
+
15
+ For now: all of the mentioned deprecated configurations will still continue to work as expected. Their usage will come with deprecation warnings advising a switch to `supergraphSdl`.
16
+ * `serviceList` users should switch to the now-exported `IntrospectAndCompose` class.
17
+ * `localServiceList` users should switch to the similar `LocalCompose` class.
18
+ * `experimental_{updateServiceDefinitions|supergraphSdl}` users should migrate their implementation to a custom `SupergraphSdlHook` or `SupergraphManager`.
19
+
20
+ Since the gateway itself is no longer responsible for composition:
21
+ * `experimental_didUpdateComposition` has been renamed more appropriately to `experimental_didUpdateSupergraph` (no signature change)
22
+ * `experimental_compositionDidFail` hook is removed
23
+
24
+ `experimental_pollInterval` is deprecated and will issue a warning. Its renamed equivalent is `pollIntervalInMs`.
25
+
26
+ Some defensive code around gateway shutdown has been removed which was only relevant to users who are running the gateway within `ApolloServer` before v2.18. If you are still running one of these versions, server shutdown may not happen as smoothly.
27
+
28
+ [#1246](https://github.com/apollographql/federation/pull/1246)
29
+
9
30
  ## v0.45.1
10
31
 
11
32
  - Continue resolving when an `@external` reference cannot be resolved. [#376](https://github.com/apollographql/federation/issues/376)
package/dist/config.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { GraphQLError, GraphQLSchema } from "graphql";
2
- import { HeadersInit } from "node-fetch";
1
+ import { GraphQLError, GraphQLSchema } from 'graphql';
2
+ import { HeadersInit } from 'node-fetch';
3
3
  import { fetch } from 'apollo-server-env';
4
- import { GraphQLRequestContextExecutionDidStart, Logger } from "apollo-server-types";
5
- import { ServiceDefinition } from "@apollo/federation";
4
+ import { GraphQLRequestContextExecutionDidStart, Logger } from 'apollo-server-types';
5
+ import { ServiceDefinition } from '@apollo/federation';
6
6
  import { GraphQLDataSource } from './datasources/types';
7
7
  import { QueryPlan } from '@apollo/query-planner';
8
8
  import { OperationContext } from './operationContext';
@@ -40,7 +40,7 @@ export interface SupergraphSdlCompositionInfo {
40
40
  supergraphSdl: string;
41
41
  }
42
42
  export declare type CompositionInfo = ServiceDefinitionCompositionInfo | SupergraphSdlCompositionInfo;
43
- export declare type Experimental_DidUpdateCompositionCallback = (currentConfig: CompositionInfo, previousConfig?: CompositionInfo) => void;
43
+ export declare type Experimental_DidUpdateSupergraphCallback = (currentConfig: CompositionInfo, previousConfig?: CompositionInfo) => void;
44
44
  export declare type CompositionUpdate = ServiceDefinitionUpdate | SupergraphSdlUpdate;
45
45
  export interface ServiceDefinitionUpdate {
46
46
  serviceDefinitions?: ServiceDefinition[];
@@ -62,15 +62,15 @@ interface GatewayConfigBase {
62
62
  __exposeQueryPlanExperimental?: boolean;
63
63
  buildService?: (definition: ServiceEndpointDefinition) => GraphQLDataSource;
64
64
  experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback;
65
- experimental_didFailComposition?: Experimental_DidFailCompositionCallback;
66
- experimental_didUpdateComposition?: Experimental_DidUpdateCompositionCallback;
65
+ experimental_didUpdateSupergraph?: Experimental_DidUpdateSupergraphCallback;
67
66
  experimental_pollInterval?: number;
67
+ pollIntervalInMs?: number;
68
68
  experimental_approximateQueryPlanStoreMiB?: number;
69
69
  experimental_autoFragmentization?: boolean;
70
70
  fetcher?: typeof fetch;
71
71
  serviceHealthCheck?: boolean;
72
72
  }
73
- export interface RemoteGatewayConfig extends GatewayConfigBase {
73
+ export interface ServiceListGatewayConfig extends GatewayConfigBase {
74
74
  serviceList: ServiceEndpointDefinition[];
75
75
  introspectionHeaders?: HeadersInit | ((service: ServiceEndpointDefinition) => Promise<HeadersInit> | HeadersInit);
76
76
  }
@@ -82,25 +82,51 @@ export interface ManagedGatewayConfig extends GatewayConfigBase {
82
82
  interface ManuallyManagedServiceDefsGatewayConfig extends GatewayConfigBase {
83
83
  experimental_updateServiceDefinitions: Experimental_UpdateServiceDefinitions;
84
84
  }
85
- interface ManuallyManagedSupergraphSdlGatewayConfig extends GatewayConfigBase {
85
+ interface ExperimentalManuallyManagedSupergraphSdlGatewayConfig extends GatewayConfigBase {
86
86
  experimental_updateSupergraphSdl: Experimental_UpdateSupergraphSdl;
87
87
  }
88
- declare type ManuallyManagedGatewayConfig = ManuallyManagedServiceDefsGatewayConfig | ManuallyManagedSupergraphSdlGatewayConfig;
88
+ export declare function isManuallyManagedSupergraphSdlGatewayConfig(config: GatewayConfig): config is ManuallyManagedSupergraphSdlGatewayConfig;
89
+ export declare type SupergraphSdlUpdateFunction = (updatedSupergraphSdl: string) => void;
90
+ export declare type SubgraphHealthCheckFunction = (supergraphSdl: string) => Promise<void>;
91
+ export declare type GetDataSourceFunction = ({ name, url, }: ServiceEndpointDefinition) => GraphQLDataSource;
92
+ export interface SupergraphSdlHookOptions {
93
+ update: SupergraphSdlUpdateFunction;
94
+ healthCheck: SubgraphHealthCheckFunction;
95
+ getDataSource: GetDataSourceFunction;
96
+ }
97
+ export interface SupergraphSdlHook {
98
+ (options: SupergraphSdlHookOptions): Promise<{
99
+ supergraphSdl: string;
100
+ cleanup?: () => Promise<void>;
101
+ }>;
102
+ }
103
+ export interface SupergraphManager {
104
+ initialize: SupergraphSdlHook;
105
+ }
106
+ declare type ManuallyManagedSupergraphSdlGatewayConfig = SupergraphSdlHookGatewayConfig | SupergraphManagerGatewayConfig;
107
+ export interface SupergraphSdlHookGatewayConfig extends GatewayConfigBase {
108
+ supergraphSdl: SupergraphSdlHook;
109
+ }
110
+ export interface SupergraphManagerGatewayConfig extends GatewayConfigBase {
111
+ supergraphSdl: SupergraphManager;
112
+ }
113
+ declare type ManuallyManagedGatewayConfig = ManuallyManagedServiceDefsGatewayConfig | ExperimentalManuallyManagedSupergraphSdlGatewayConfig | ManuallyManagedSupergraphSdlGatewayConfig | ServiceListGatewayConfig;
89
114
  interface LocalGatewayConfig extends GatewayConfigBase {
90
115
  localServiceList: ServiceDefinition[];
91
116
  }
92
- interface SupergraphSdlGatewayConfig extends GatewayConfigBase {
117
+ interface StaticSupergraphSdlGatewayConfig extends GatewayConfigBase {
93
118
  supergraphSdl: string;
94
119
  }
95
- export declare type StaticGatewayConfig = LocalGatewayConfig | SupergraphSdlGatewayConfig;
96
- declare type DynamicGatewayConfig = ManagedGatewayConfig | RemoteGatewayConfig | ManuallyManagedGatewayConfig;
120
+ export declare type StaticGatewayConfig = LocalGatewayConfig | StaticSupergraphSdlGatewayConfig;
121
+ export declare type DynamicGatewayConfig = ManagedGatewayConfig | ManuallyManagedGatewayConfig;
97
122
  export declare type GatewayConfig = StaticGatewayConfig | DynamicGatewayConfig;
98
123
  export declare function isLocalConfig(config: GatewayConfig): config is LocalGatewayConfig;
99
- export declare function isRemoteConfig(config: GatewayConfig): config is RemoteGatewayConfig;
100
- export declare function isSupergraphSdlConfig(config: GatewayConfig): config is SupergraphSdlGatewayConfig;
124
+ export declare function isServiceListConfig(config: GatewayConfig): config is ServiceListGatewayConfig;
125
+ export declare function isStaticSupergraphSdlConfig(config: GatewayConfig): config is StaticSupergraphSdlGatewayConfig;
126
+ export declare function isSupergraphSdlHookConfig(config: GatewayConfig): config is SupergraphSdlHookGatewayConfig;
127
+ export declare function isSupergraphManagerConfig(config: GatewayConfig): config is SupergraphManagerGatewayConfig;
101
128
  export declare function isManuallyManagedConfig(config: GatewayConfig): config is ManuallyManagedGatewayConfig;
102
129
  export declare function isManagedConfig(config: GatewayConfig): config is ManagedGatewayConfig;
103
130
  export declare function isStaticConfig(config: GatewayConfig): config is StaticGatewayConfig;
104
- export declare function isDynamicConfig(config: GatewayConfig): config is DynamicGatewayConfig;
105
131
  export {};
106
132
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDynamicConfig = exports.isStaticConfig = exports.isManagedConfig = exports.isManuallyManagedConfig = exports.isSupergraphSdlConfig = exports.isRemoteConfig = exports.isLocalConfig = exports.isServiceDefinitionUpdate = exports.isSupergraphSdlUpdate = void 0;
3
+ exports.isStaticConfig = exports.isManagedConfig = exports.isManuallyManagedConfig = exports.isSupergraphManagerConfig = exports.isSupergraphSdlHookConfig = exports.isStaticSupergraphSdlConfig = exports.isServiceListConfig = exports.isLocalConfig = exports.isManuallyManagedSupergraphSdlGatewayConfig = exports.isServiceDefinitionUpdate = exports.isSupergraphSdlUpdate = void 0;
4
4
  function isSupergraphSdlUpdate(update) {
5
5
  return 'supergraphSdl' in update;
6
6
  }
@@ -9,39 +9,49 @@ function isServiceDefinitionUpdate(update) {
9
9
  return 'isNewSchema' in update;
10
10
  }
11
11
  exports.isServiceDefinitionUpdate = isServiceDefinitionUpdate;
12
+ function isManuallyManagedSupergraphSdlGatewayConfig(config) {
13
+ return isSupergraphSdlHookConfig(config) || isSupergraphManagerConfig(config);
14
+ }
15
+ exports.isManuallyManagedSupergraphSdlGatewayConfig = isManuallyManagedSupergraphSdlGatewayConfig;
12
16
  function isLocalConfig(config) {
13
17
  return 'localServiceList' in config;
14
18
  }
15
19
  exports.isLocalConfig = isLocalConfig;
16
- function isRemoteConfig(config) {
20
+ function isServiceListConfig(config) {
17
21
  return 'serviceList' in config;
18
22
  }
19
- exports.isRemoteConfig = isRemoteConfig;
20
- function isSupergraphSdlConfig(config) {
21
- return 'supergraphSdl' in config;
23
+ exports.isServiceListConfig = isServiceListConfig;
24
+ function isStaticSupergraphSdlConfig(config) {
25
+ return 'supergraphSdl' in config && typeof config.supergraphSdl === 'string';
26
+ }
27
+ exports.isStaticSupergraphSdlConfig = isStaticSupergraphSdlConfig;
28
+ function isSupergraphSdlHookConfig(config) {
29
+ return ('supergraphSdl' in config && typeof config.supergraphSdl === 'function');
22
30
  }
23
- exports.isSupergraphSdlConfig = isSupergraphSdlConfig;
31
+ exports.isSupergraphSdlHookConfig = isSupergraphSdlHookConfig;
32
+ function isSupergraphManagerConfig(config) {
33
+ return ('supergraphSdl' in config &&
34
+ typeof config.supergraphSdl === 'object' &&
35
+ 'initialize' in config.supergraphSdl);
36
+ }
37
+ exports.isSupergraphManagerConfig = isSupergraphManagerConfig;
24
38
  function isManuallyManagedConfig(config) {
25
- return ('experimental_updateServiceDefinitions' in config ||
26
- 'experimental_updateSupergraphSdl' in config);
39
+ return (isManuallyManagedSupergraphSdlGatewayConfig(config) ||
40
+ 'experimental_updateServiceDefinitions' in config ||
41
+ 'experimental_updateSupergraphSdl' in config ||
42
+ isServiceListConfig(config));
27
43
  }
28
44
  exports.isManuallyManagedConfig = isManuallyManagedConfig;
29
45
  function isManagedConfig(config) {
30
46
  return ('schemaConfigDeliveryEndpoint' in config ||
31
- (!isRemoteConfig(config) &&
32
- !isLocalConfig(config) &&
33
- !isSupergraphSdlConfig(config) &&
47
+ 'uplinkEndpoints' in config ||
48
+ (!isLocalConfig(config) &&
49
+ !isStaticSupergraphSdlConfig(config) &&
34
50
  !isManuallyManagedConfig(config)));
35
51
  }
36
52
  exports.isManagedConfig = isManagedConfig;
37
53
  function isStaticConfig(config) {
38
- return isLocalConfig(config) || isSupergraphSdlConfig(config);
54
+ return isLocalConfig(config) || isStaticSupergraphSdlConfig(config);
39
55
  }
40
56
  exports.isStaticConfig = isStaticConfig;
41
- function isDynamicConfig(config) {
42
- return (isRemoteConfig(config) ||
43
- isManagedConfig(config) ||
44
- isManuallyManagedConfig(config));
45
- }
46
- exports.isDynamicConfig = isDynamicConfig;
47
57
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAkFA,SAAgB,qBAAqB,CAAC,MAAyB;IAC7D,OAAO,eAAe,IAAI,MAAM,CAAC;AACnC,CAAC;AAFD,sDAEC;AAED,SAAgB,yBAAyB,CACvC,MAAyB;IAEzB,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAJD,8DAIC;AAsFD,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,kBAAkB,IAAI,MAAM,CAAC;AACtC,CAAC;AAFD,sCAEC;AAED,SAAgB,cAAc,CAAC,MAAqB;IAClD,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAFD,wCAEC;AAED,SAAgB,qBAAqB,CAAC,MAAqB;IACzD,OAAO,eAAe,IAAI,MAAM,CAAC;AACnC,CAAC;AAFD,sDAEC;AAID,SAAgB,uBAAuB,CACrC,MAAqB;IAErB,OAAO,CACL,uCAAuC,IAAI,MAAM;QACjD,kCAAkC,IAAI,MAAM,CAC7C,CAAC;AACJ,CAAC;AAPD,0DAOC;AAGD,SAAgB,eAAe,CAC7B,MAAqB;IAErB,OAAO,CACL,8BAA8B,IAAI,MAAM;QACxC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;YACtB,CAAC,aAAa,CAAC,MAAM,CAAC;YACtB,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAC9B,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CACpC,CAAC;AACJ,CAAC;AAVD,0CAUC;AAGD,SAAgB,cAAc,CAAC,MAAqB;IAClD,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAFD,wCAEC;AAGD,SAAgB,eAAe,CAC7B,MAAqB;IAErB,OAAO,CACL,cAAc,CAAC,MAAM,CAAC;QACtB,eAAe,CAAC,MAAM,CAAC;QACvB,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;AACJ,CAAC;AARD,0CAQC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAqFA,SAAgB,qBAAqB,CACnC,MAAyB;IAEzB,OAAO,eAAe,IAAI,MAAM,CAAC;AACnC,CAAC;AAJD,sDAIC;AAED,SAAgB,yBAAyB,CACvC,MAAyB;IAEzB,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAJD,8DAIC;AA8FD,SAAgB,2CAA2C,CACzD,MAAqB;IAErB,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAJD,kGAIC;AAyED,SAAgB,aAAa,CAC3B,MAAqB;IAErB,OAAO,kBAAkB,IAAI,MAAM,CAAC;AACtC,CAAC;AAJD,sCAIC;AAGD,SAAgB,mBAAmB,CACjC,MAAqB;IAErB,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAJD,kDAIC;AAED,SAAgB,2BAA2B,CACzC,MAAqB;IAErB,OAAO,eAAe,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC;AAC/E,CAAC;AAJD,kEAIC;AAED,SAAgB,yBAAyB,CACvC,MAAqB;IAErB,OAAO,CACL,eAAe,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,CACxE,CAAC;AACJ,CAAC;AAND,8DAMC;AAED,SAAgB,yBAAyB,CACvC,MAAqB;IAErB,OAAO,CACL,eAAe,IAAI,MAAM;QACzB,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;QACxC,YAAY,IAAI,MAAM,CAAC,aAAa,CACrC,CAAC;AACJ,CAAC;AARD,8DAQC;AAID,SAAgB,uBAAuB,CACrC,MAAqB;IAErB,OAAO,CACL,2CAA2C,CAAC,MAAM,CAAC;QACnD,uCAAuC,IAAI,MAAM;QACjD,kCAAkC,IAAI,MAAM;QAE5C,mBAAmB,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC;AAVD,0DAUC;AAGD,SAAgB,eAAe,CAC7B,MAAqB;IAErB,OAAO,CACL,8BAA8B,IAAI,MAAM;QACxC,iBAAiB,IAAI,MAAM;QAC3B,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;YACrB,CAAC,2BAA2B,CAAC,MAAM,CAAC;YACpC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CACpC,CAAC;AACJ,CAAC;AAVD,0CAUC;AAGD,SAAgB,cAAc,CAC5B,MAAqB;IAErB,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAJD,wCAIC"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@ import { GraphQLSchema } from 'graphql';
5
5
  import { buildOperationContext } from './operationContext';
6
6
  import { executeQueryPlan, ServiceMap } from './executeQueryPlan';
7
7
  import { GraphQLDataSource } from './datasources/types';
8
- import { ServiceEndpointDefinition, Experimental_DidFailCompositionCallback, Experimental_DidResolveQueryPlanCallback, Experimental_DidUpdateCompositionCallback, Experimental_UpdateComposition, CompositionInfo, GatewayConfig, RemoteGatewayConfig, ManagedGatewayConfig, CompositionUpdate } from './config';
8
+ import { ServiceEndpointDefinition, Experimental_DidFailCompositionCallback, Experimental_DidResolveQueryPlanCallback, Experimental_DidUpdateSupergraphCallback, Experimental_UpdateComposition, CompositionInfo, GatewayConfig } from './config';
9
+ import { IntrospectAndCompose, LocalCompose } from './supergraphManagers';
9
10
  declare type DataSourceMap = {
10
11
  [serviceName: string]: {
11
12
  url?: string;
@@ -17,6 +18,20 @@ export declare function getDefaultFetcher(): import("make-fetch-happen").Fetcher
17
18
  };
18
19
  export declare const HEALTH_CHECK_QUERY = "query __ApolloServiceHealthCheck__ { __typename }";
19
20
  export declare const SERVICE_DEFINITION_QUERY = "query __ApolloGetServiceDefinition__ { _service { sdl } }";
21
+ declare type GatewayState = {
22
+ phase: 'initialized';
23
+ } | {
24
+ phase: 'failed to load';
25
+ } | {
26
+ phase: 'loaded';
27
+ } | {
28
+ phase: 'stopping';
29
+ stoppingDonePromise: Promise<void>;
30
+ } | {
31
+ phase: 'stopped';
32
+ } | {
33
+ phase: 'updating schema';
34
+ };
20
35
  interface ApolloConfigFromAS2Or3 {
21
36
  key?: string;
22
37
  keyHash?: string;
@@ -38,9 +53,6 @@ export declare class ApolloGateway implements GraphQLService {
38
53
  private apolloConfig?;
39
54
  private onSchemaChangeListeners;
40
55
  private onSchemaLoadOrUpdateListeners;
41
- private serviceDefinitions;
42
- private compositionMetadata?;
43
- private serviceSdlCache;
44
56
  private warnedStates;
45
57
  private queryPlanner?;
46
58
  private supergraphSdl?;
@@ -48,18 +60,14 @@ export declare class ApolloGateway implements GraphQLService {
48
60
  private fetcher;
49
61
  private compositionId?;
50
62
  private state;
51
- private errorReportingEndpoint;
52
63
  private experimental_didResolveQueryPlan?;
53
- private experimental_didFailComposition?;
54
- private experimental_didUpdateComposition?;
55
- private updateServiceDefinitions;
56
- private experimental_pollInterval?;
57
- private uplinkEndpoints?;
58
- private uplinkMaxRetries?;
64
+ private experimental_didUpdateSupergraph?;
65
+ private pollIntervalInMs?;
66
+ private toDispose;
59
67
  constructor(config?: GatewayConfig);
60
68
  private initLogger;
61
69
  private initQueryPlanStore;
62
- private issueDynamicWarningsIfApplicable;
70
+ private issueConfigurationWarningsIfApplicable;
63
71
  load(options?: {
64
72
  apollo?: ApolloConfigFromAS2Or3;
65
73
  engine?: GraphQLServiceEngineConfig;
@@ -67,19 +75,18 @@ export declare class ApolloGateway implements GraphQLService {
67
75
  schema: GraphQLSchema;
68
76
  executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>;
69
77
  }>;
70
- private loadStatic;
71
- private loadDynamic;
72
- private shouldBeginPolling;
73
- private updateSchema;
74
- private updateByComposition;
78
+ private getUplinkEndpoints;
79
+ private getIdForSupergraphSdl;
80
+ private initializeSupergraphManager;
81
+ private externalSupergraphUpdateCallback;
82
+ private externalSubgraphHealthCheckCallback;
83
+ private externalGetDataSourceCallback;
75
84
  private updateWithSupergraphSdl;
76
85
  private updateWithSchemaAndNotify;
77
- private maybePerformServiceHealthCheck;
78
86
  serviceHealthCheck(serviceMap?: DataSourceMap): Promise<{
79
87
  name: string;
80
88
  response: import("apollo-server-types").GraphQLResponse;
81
89
  }[]>;
82
- private createSchemaFromServiceList;
83
90
  private serviceListFromSupergraphSdl;
84
91
  private serviceListFromComposedSchema;
85
92
  private createSchemaFromSupergraphSdl;
@@ -88,16 +95,21 @@ export declare class ApolloGateway implements GraphQLService {
88
95
  apiSchema: GraphQLSchema;
89
96
  coreSupergraphSdl: string;
90
97
  }) => void): Unsubscriber;
91
- private pollServices;
92
- private createAndCacheDataSource;
98
+ private getOrCreateDataSource;
93
99
  private createDataSource;
94
100
  private createServices;
95
- protected loadServiceDefinitions(config: RemoteGatewayConfig | ManagedGatewayConfig): Promise<CompositionUpdate>;
96
101
  private maybeWarnOnConflictingConfig;
97
102
  executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>;
98
103
  private validateIncomingRequest;
104
+ private performCleanupAndLogErrors;
99
105
  stop(): Promise<void>;
106
+ __testing(): {
107
+ state: GatewayState;
108
+ compositionId: string | undefined;
109
+ supergraphSdl: string | undefined;
110
+ };
100
111
  }
101
- export { executeQueryPlan, buildOperationContext, ServiceMap, Experimental_DidFailCompositionCallback, Experimental_DidResolveQueryPlanCallback, Experimental_DidUpdateCompositionCallback, Experimental_UpdateComposition, GatewayConfig, ServiceEndpointDefinition, CompositionInfo, };
112
+ export { executeQueryPlan, buildOperationContext, ServiceMap, Experimental_DidFailCompositionCallback, Experimental_DidResolveQueryPlanCallback, Experimental_DidUpdateSupergraphCallback, Experimental_UpdateComposition, GatewayConfig, ServiceEndpointDefinition, CompositionInfo, IntrospectAndCompose, LocalCompose, };
102
113
  export * from './datasources';
114
+ export { SupergraphSdlUpdateFunction, SubgraphHealthCheckFunction, GetDataSourceFunction, SupergraphSdlHook, SupergraphManager } from './config';
103
115
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}