@reventlessdev/reventless-aws 3.0.0-alpha.210 → 3.0.0-alpha.211
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/CHANGELOG.md +7 -0
- package/package.json +6 -6
- package/src/Platform.res +116 -849
- package/src/Platform.res.mjs +75 -710
- package/src/adapter/QueryDb/PgQueryResolver_Builder.res +4 -47
- package/src/adapter/QueryDb/PgQueryResolver_Builder.res.mjs +1 -30
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync.res +0 -11
- package/src/adapter/QueryDb/QueryDbResolvers_AppSync.res.mjs +0 -5
- package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +6 -7
- package/src/components/Api/AppSync_Adapter.res +13 -105
- package/src/components/Api/AppSync_Adapter.res.mjs +0 -52
- package/src/components/Api/AppSync_MergedApi.res +1 -1
- package/src/components/Api/AppSync_SdlDecorate.res +6 -65
- package/src/components/Api/AppSync_SdlDecorate.res.mjs +1 -31
- package/src/components/Plugin.res.mjs +1 -2
- package/tests/AppSync_AdapterTest.res +23 -15
- package/tests/AppSync_AdapterTest.res.mjs +18 -16
- package/tests/AppSync_SdlDecorateTest.res +9 -89
- package/tests/AppSync_SdlDecorateTest.res.mjs +7 -72
- package/tests/MCP_LambdaTest.res +4 -6
- package/tests/MCP_LambdaTest.res.mjs +2 -2
- package/src/adapter/Api/ApiFragmentDeregistration.res +0 -138
- package/src/adapter/Api/ApiFragmentDeregistration.res.mjs +0 -108
- package/src/adapter/Api/ApiSchemaPush.res +0 -79
- package/src/adapter/Api/ApiSchemaPush.res.mjs +0 -64
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res +0 -222
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res.mjs +0 -202
- package/src/adapter/QueryDb/NodeResolver_AppSync.res +0 -71
- package/src/adapter/QueryDb/NodeResolver_AppSync.res.mjs +0 -44
- package/src/adapter/Runtime/ApiSchemaPush_Runtime.mjs +0 -204
- package/tests/ApiSchemaPushTest.res +0 -32
- package/tests/ApiSchemaPushTest.res.mjs +0 -20
package/src/Platform.res.mjs
CHANGED
|
@@ -11,8 +11,6 @@ import * as Output$Pulumi from "@reventlessdev/rescript-pulumi-pulumi/src/Output
|
|
|
11
11
|
import * as Pulumi$Pulumi from "@reventlessdev/rescript-pulumi-pulumi/src/Pulumi.res.mjs";
|
|
12
12
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
13
13
|
import * as Pulumi from "@pulumi/pulumi";
|
|
14
|
-
import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
|
|
15
|
-
import * as Primitive_object from "@rescript/runtime/lib/es6/Primitive_object.js";
|
|
16
14
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
17
15
|
import * as Plugin$ReventlessAws from "./components/Plugin.res.mjs";
|
|
18
16
|
import * as Logger$ReventlessCore from "@reventlessdev/reventless-core/src/util/Logger.res.mjs";
|
|
@@ -24,11 +22,9 @@ import * as Component$ReventlessCore from "@reventlessdev/reventless-core/src/co
|
|
|
24
22
|
import * as DcbBackend$ReventlessAws from "./adapter/DcbEventLog/DcbBackend.res.mjs";
|
|
25
23
|
import * as ReadModel$ReventlessCore from "@reventlessdev/reventless-core/src/components/ReadModel/ReadModel.res.mjs";
|
|
26
24
|
import * as PluginSpec$ReventlessCore from "@reventlessdev/reventless-core/src/plugin/lifecycle/PluginSpec.res.mjs";
|
|
27
|
-
import * as Api_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/Api/Api_Builder.res.mjs";
|
|
28
25
|
import * as Plugin_Stack$ReventlessAws from "./plugin/stack/Plugin_Stack.res.mjs";
|
|
29
26
|
import * as UiFragments$ReventlessCore from "@reventlessdev/reventless-core/src/admin/UiFragmentRegistry/StateViewSlice/UiFragments.res.mjs";
|
|
30
27
|
import * as Util_Pulumi$ReventlessCore from "@reventlessdev/reventless-core/src/util/Util_Pulumi.res.mjs";
|
|
31
|
-
import * as ApiSchemaPush$ReventlessAws from "./adapter/Api/ApiSchemaPush.res.mjs";
|
|
32
28
|
import * as Platform_Casts$ReventlessAws from "./Platform_Casts.res.mjs";
|
|
33
29
|
import * as Platform_Stack$ReventlessAws from "./Platform_Stack.res.mjs";
|
|
34
30
|
import * as QueryDbBackend$ReventlessAws from "./adapter/QueryDb/QueryDbBackend.res.mjs";
|
|
@@ -52,7 +48,6 @@ import * as PluginsProjection$ReventlessCore from "@reventlessdev/reventless-cor
|
|
|
52
48
|
import * as StateTopic_AppSync$ReventlessAws from "./adapter/StateTopic/StateTopic_AppSync.res.mjs";
|
|
53
49
|
import * as AppSync_SdlDecorate$ReventlessAws from "./components/Api/AppSync_SdlDecorate.res.mjs";
|
|
54
50
|
import * as UiFragmentRegistry$ReventlessCore from "@reventlessdev/reventless-core/src/admin/UiFragmentRegistry/StateChangeSlice/UiFragmentRegistry.res.mjs";
|
|
55
|
-
import * as Util_AppSync_Caller$ReventlessAws from "./util/Util_AppSync_Caller.res.mjs";
|
|
56
51
|
import * as Util_ResourceNaming$ReventlessAws from "./util/Util_ResourceNaming.res.mjs";
|
|
57
52
|
import * as ClonerRunner_Fargate$ReventlessAws from "./plugin/cloner/ClonerRunner_Fargate.res.mjs";
|
|
58
53
|
import * as QueryEngine_DynamoDb$ReventlessAws from "./adapter/QueryEngine/QueryEngine_DynamoDb.res.mjs";
|
|
@@ -61,28 +56,21 @@ import * as PluginsReadModelSpec$ReventlessCore from "@reventlessdev/reventless-
|
|
|
61
56
|
import * as ExtensionPoint_Builder$ReventlessAws from "./components/ExtensionPoint_Builder.res.mjs";
|
|
62
57
|
import * as StateViewSlice_Builder$ReventlessAws from "./components/StateViewSlice_Builder.res.mjs";
|
|
63
58
|
import * as Task_Builder_PerBucket$ReventlessAws from "./components/Task_Builder_PerBucket.res.mjs";
|
|
64
|
-
import * as ApiFragmentsProjection$ReventlessCore from "@reventlessdev/reventless-core/src/admin/ApiFragmentRegistry/ApiFragmentsProjection.res.mjs";
|
|
65
59
|
import * as AutomationSlice_Builder$ReventlessAws from "./components/AutomationSlice_Builder.res.mjs";
|
|
66
60
|
import * as EventTopicPublisher_SNS$ReventlessAws from "./adapter/EventTopic/EventTopicPublisher_SNS.res.mjs";
|
|
67
61
|
import * as ExtensionPointMapping$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/ExtensionPointMapping.res.mjs";
|
|
68
62
|
import * as PgQueryResolver_Builder$ReventlessAws from "./adapter/QueryDb/PgQueryResolver_Builder.res.mjs";
|
|
69
63
|
import * as UiFragments_Projection$ReventlessCore from "@reventlessdev/reventless-core/src/admin/UiFragmentRegistry/StateViewSlice/UiFragments_Projection.res.mjs";
|
|
70
64
|
import * as Aggregate_Builder_Single$ReventlessAws from "./components/Aggregate_Builder_Single.res.mjs";
|
|
71
|
-
import * as ApiFragmentRegistrySpec$ReventlessCore from "@reventlessdev/reventless-core/src/admin/ApiFragmentRegistry/ApiFragmentRegistrySpec.res.mjs";
|
|
72
65
|
import * as ReadModel_Builder_Single$ReventlessAws from "./components/ReadModel_Builder_Single.res.mjs";
|
|
73
|
-
import * as SideEffectHandler_Single$ReventlessAws from "./components/SideEffectHandler_Single.res.mjs";
|
|
74
66
|
import * as StateChangeSlice_Builder$ReventlessAws from "./components/StateChangeSlice_Builder.res.mjs";
|
|
75
|
-
import * as ApiFragmentDeregistration$ReventlessAws from "./adapter/Api/ApiFragmentDeregistration.res.mjs";
|
|
76
67
|
import * as EventCollectorChannel_SQS$ReventlessAws from "./adapter/EventCollector/EventCollectorChannel_SQS.res.mjs";
|
|
77
68
|
import * as PgChangeFeedRelay_Builder$ReventlessAws from "./adapter/Postgres/PgChangeFeedRelay_Builder.res.mjs";
|
|
78
69
|
import * as RuntimeEnvironment_Lambda$ReventlessAws from "./adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs";
|
|
79
|
-
import * as ApiFragmentsReadModelSpec$ReventlessCore from "@reventlessdev/reventless-core/src/admin/ApiFragmentRegistry/ApiFragmentsReadModelSpec.res.mjs";
|
|
80
70
|
import * as PluginExtensionPointSpec$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/PluginExtensionPointSpec.res.mjs";
|
|
81
71
|
import * as Platform_UIFragments_Lambda$ReventlessAws from "./adapter/Api/Platform_UIFragments_Lambda.res.mjs";
|
|
82
|
-
import * as ApiFragmentRegistryBehavior$ReventlessCore from "@reventlessdev/reventless-core/src/admin/ApiFragmentRegistry/ApiFragmentRegistryBehavior.res.mjs";
|
|
83
72
|
import * as CommandTopicChannel_SQS_Sync$ReventlessAws from "./adapter/CommandTopic/CommandTopicChannel_SQS_Sync.res.mjs";
|
|
84
73
|
import * as EventLogSubscription_AppSync$ReventlessAws from "./adapter/EventLogSubscription/EventLogSubscription_AppSync.res.mjs";
|
|
85
|
-
import * as Platform_ApiFragments_Lambda$ReventlessAws from "./adapter/Api/Platform_ApiFragments_Lambda.res.mjs";
|
|
86
74
|
import * as UiFragmentRegistry_Behavior$ReventlessCore from "@reventlessdev/reventless-core/src/admin/UiFragmentRegistry/StateChangeSlice/UiFragmentRegistry_Behavior.res.mjs";
|
|
87
75
|
import * as CommandTopicChannel_SQS_Async$ReventlessAws from "./adapter/CommandTopic/CommandTopicChannel_SQS_Async.res.mjs";
|
|
88
76
|
import * as Plugin_ExtensionPoint_Builder$ReventlessAws from "./plugin/stack/Plugin_ExtensionPoint_Builder.res.mjs";
|
|
@@ -98,13 +86,11 @@ import * as CommandGeneratorResolvers_AppSync$ReventlessAws from "./adapter/Comm
|
|
|
98
86
|
import * as EventTopicPublisher_DynamoDbStream$ReventlessAws from "./adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res.mjs";
|
|
99
87
|
import * as InboundTranslationResolvers_AppSync$ReventlessAws from "./adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res.mjs";
|
|
100
88
|
import * as PluginExtensionPointRuntime_Builder$ReventlessAws from "./plugin/runtime/PluginExtensionPointRuntime_Builder.res.mjs";
|
|
101
|
-
import * as ReadModel_Builder_NoResolver_Stream$ReventlessAws from "./components/ReadModel_Builder_NoResolver_Stream.res.mjs";
|
|
102
89
|
import * as EventCollectorRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs";
|
|
103
90
|
import * as Platform_ComponentDefinitions_Lambda$ReventlessAws from "./adapter/Api/Platform_ComponentDefinitions_Lambda.res.mjs";
|
|
104
91
|
import * as StateViewSliceRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/StateViewSliceRuntime_Builder_Single.res.mjs";
|
|
105
92
|
import * as AggregateRuntime_Builder_Single_Async$ReventlessAws from "./adapter/Runtime/AggregateRuntime_Builder_Single_Async.res.mjs";
|
|
106
93
|
import * as AutomationSliceRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/AutomationSliceRuntime_Builder_Single.res.mjs";
|
|
107
|
-
import * as SideEffectHandlerRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res.mjs";
|
|
108
94
|
|
|
109
95
|
let log = Logger$ReventlessCore.fromEnv();
|
|
110
96
|
|
|
@@ -149,132 +135,55 @@ function MakeWithConfig(Config) {
|
|
|
149
135
|
});
|
|
150
136
|
QueryDbBackend$ReventlessAws.exempt(PluginsReadModelSpec$ReventlessCore.name);
|
|
151
137
|
QueryDbBackend$ReventlessAws.exempt(UiFragments$ReventlessCore.name);
|
|
152
|
-
QueryDbBackend$ReventlessAws.exempt(ApiFragmentsReadModelSpec$ReventlessCore.name);
|
|
153
138
|
});
|
|
154
|
-
let mergedApiMode = Config.mergedApi;
|
|
155
139
|
let currentDeployTarget = {
|
|
156
140
|
contents: "Domain"
|
|
157
141
|
};
|
|
158
142
|
let platformStackRef = Stdlib_Option.map(new Pulumi.Config("platform").get("stack"), stack => new Pulumi.StackReference(stack));
|
|
159
|
-
let
|
|
160
|
-
id: Pulumi.output(apiId),
|
|
161
|
-
arn: Pulumi.output(""),
|
|
162
|
-
name: Pulumi.output(""),
|
|
163
|
-
uris: Pulumi.output({
|
|
164
|
-
GRAPHQL: apiEndpoint,
|
|
165
|
-
REALTIME: ""
|
|
166
|
-
})
|
|
167
|
-
});
|
|
168
|
-
let makePhantomRole = apiRoleArn => {
|
|
169
|
-
let roleName = Stdlib_Option.getOr(apiRoleArn.split("/").at(-1), apiRoleArn);
|
|
170
|
-
return {
|
|
171
|
-
arn: Pulumi.output(apiRoleArn),
|
|
172
|
-
name: Pulumi.output(roleName),
|
|
173
|
-
id: Pulumi.output(roleName)
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
let emptyBaseFragment = GraphQL_Stitcher$ReventlessCore.encode({
|
|
143
|
+
let domainBaseFragment = GraphQL_Stitcher$ReventlessCore.encode({
|
|
177
144
|
types: [],
|
|
178
145
|
mutations: [],
|
|
179
|
-
queries: [],
|
|
146
|
+
queries: [" Platform_ping: String"],
|
|
180
147
|
subscriptions: [],
|
|
181
148
|
subscriptionSources: []
|
|
182
149
|
});
|
|
183
150
|
let adminSourceSdl = () => {
|
|
184
|
-
let baseFragment = AppSync_Adapter$ReventlessAws.injectAwsAuthAll(AdminApi$ReventlessCore.baseFragment(Config.cloner), "Admin",
|
|
185
|
-
return AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.
|
|
151
|
+
let baseFragment = AppSync_Adapter$ReventlessAws.injectAwsAuthAll(AdminApi$ReventlessCore.baseFragment(Config.cloner), "Admin", undefined);
|
|
152
|
+
return AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.stitchStandaloneWithAwsDirectives(baseFragment));
|
|
186
153
|
};
|
|
187
154
|
let match;
|
|
188
155
|
if (platformStackRef !== undefined) {
|
|
189
156
|
let stackRef = Primitive_option.valFromOption(platformStackRef);
|
|
190
157
|
let defaultOutput = stackRef.getOutput("default");
|
|
191
|
-
let
|
|
192
|
-
let
|
|
193
|
-
let
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
domainApiEndpointOutput,
|
|
197
|
-
defaultOutput
|
|
198
|
-
]).apply(param => {
|
|
199
|
-
let $$default = param[2];
|
|
200
|
-
let directEndpoint = param[1];
|
|
201
|
-
let directId = param[0];
|
|
202
|
-
let apiId = directId !== undefined ? directId : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d["domainApiId"]), v => Stdlib_JSON.Decode.string(v)), undefined);
|
|
203
|
-
let apiEndpoint = directEndpoint !== undefined ? directEndpoint : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d["domainApiEndpoint"]), v => Stdlib_JSON.Decode.string(v)), "Platform stack does not export 'domainApiEndpoint' — redeploy the platform stack first");
|
|
204
|
-
return makePhantomApi(apiId, apiEndpoint);
|
|
205
|
-
});
|
|
206
|
-
let phantomRole = Pulumi.all([
|
|
207
|
-
domainApiRoleArnOutput,
|
|
208
|
-
defaultOutput
|
|
209
|
-
]).apply(param => {
|
|
210
|
-
let direct = param[0];
|
|
211
|
-
return makePhantomRole(direct !== undefined ? direct : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(param[1], d => Stdlib_JSON.Decode.object(d)), d => d["domainApiRoleArn"]), v => Stdlib_JSON.Decode.string(v)), undefined));
|
|
212
|
-
});
|
|
213
|
-
let platformApiIdOutput = stackRef.getOutput("platformApiId");
|
|
214
|
-
let platformApiEndpointOutput = stackRef.getOutput("platformApiEndpoint");
|
|
215
|
-
let platformApiRoleArnOutput = stackRef.getOutput("platformApiRoleArn");
|
|
216
|
-
let phantomPlatformApi = Pulumi.all([
|
|
217
|
-
platformApiIdOutput,
|
|
218
|
-
platformApiEndpointOutput,
|
|
158
|
+
let cognitoPoolIdOutput = stackRef.getOutput("cognitoUserPoolId");
|
|
159
|
+
let cognitoRegionOutput = stackRef.getOutput("cognitoRegion");
|
|
160
|
+
let userPoolConfig = Pulumi.all([
|
|
161
|
+
cognitoPoolIdOutput,
|
|
162
|
+
cognitoRegionOutput,
|
|
219
163
|
defaultOutput
|
|
220
164
|
]).apply(param => {
|
|
221
165
|
let $$default = param[2];
|
|
222
166
|
let getFromDefault = key => Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d[key]), v => Stdlib_JSON.Decode.string(v));
|
|
223
|
-
let
|
|
224
|
-
let
|
|
225
|
-
return
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
]).apply(param => {
|
|
231
|
-
let $$default = param[1];
|
|
232
|
-
let getFromDefault = key => Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d[key]), v => Stdlib_JSON.Decode.string(v));
|
|
233
|
-
return makePhantomRole(Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[0], getFromDefault("platformApiRoleArn")), undefined));
|
|
167
|
+
let userPoolId = Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[0], getFromDefault("cognitoUserPoolId")), "Platform stack does not export 'cognitoUserPoolId' — redeploy the platform stack first");
|
|
168
|
+
let awsRegion = Stdlib_Option.orElse(param[1], getFromDefault("cognitoRegion"));
|
|
169
|
+
return {
|
|
170
|
+
userPoolId: userPoolId,
|
|
171
|
+
defaultAction: "ALLOW",
|
|
172
|
+
awsRegion: awsRegion
|
|
173
|
+
};
|
|
234
174
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
let getFromDefault = key => Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d[key]), v => Stdlib_JSON.Decode.string(v));
|
|
245
|
-
let userPoolId = Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[0], getFromDefault("cognitoUserPoolId")), "Platform stack does not export 'cognitoUserPoolId' — redeploy the platform stack first");
|
|
246
|
-
let awsRegion = Stdlib_Option.orElse(param[1], getFromDefault("cognitoRegion"));
|
|
247
|
-
return {
|
|
248
|
-
userPoolId: userPoolId,
|
|
249
|
-
defaultAction: "ALLOW",
|
|
250
|
-
awsRegion: awsRegion
|
|
251
|
-
};
|
|
252
|
-
});
|
|
253
|
-
let match$1 = AppSync_Adapter$ReventlessAws.makePluginSourceApiResource("PluginSourceApi", userPoolConfig, {});
|
|
254
|
-
let role = match$1[1];
|
|
255
|
-
let api = match$1[0];
|
|
256
|
-
match = [
|
|
257
|
-
api,
|
|
258
|
-
role,
|
|
259
|
-
api,
|
|
260
|
-
role
|
|
261
|
-
];
|
|
262
|
-
} else {
|
|
263
|
-
match = [
|
|
264
|
-
phantomApi,
|
|
265
|
-
phantomRole,
|
|
266
|
-
phantomPlatformApi,
|
|
267
|
-
phantomPlatformRole
|
|
268
|
-
];
|
|
269
|
-
}
|
|
175
|
+
let match$1 = AppSync_Adapter$ReventlessAws.makePluginSourceApiResource("PluginSourceApi", userPoolConfig, {});
|
|
176
|
+
let role = match$1[1];
|
|
177
|
+
let api = match$1[0];
|
|
178
|
+
match = [
|
|
179
|
+
api,
|
|
180
|
+
role,
|
|
181
|
+
api,
|
|
182
|
+
role
|
|
183
|
+
];
|
|
270
184
|
} else {
|
|
271
|
-
let
|
|
272
|
-
|
|
273
|
-
let schema = Config.splitApi ? AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.stitchWithAwsDirectives(emptyBaseFragment, [])) : adminSourceSdl();
|
|
274
|
-
match$2 = AppSync_Adapter$ReventlessAws.makeSourceApiResource("DomainApi", schema, {});
|
|
275
|
-
} else {
|
|
276
|
-
match$2 = AppSync_Adapter$ReventlessAws.makeApiResource("DomainApi", {});
|
|
277
|
-
}
|
|
185
|
+
let schema = Config.splitApi ? AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.stitchStandaloneWithAwsDirectives(domainBaseFragment)) : adminSourceSdl();
|
|
186
|
+
let match$2 = AppSync_Adapter$ReventlessAws.makeSourceApiResource("DomainApi", schema, {});
|
|
278
187
|
let role$1 = match$2[1];
|
|
279
188
|
let api$1 = match$2[0];
|
|
280
189
|
match = [
|
|
@@ -501,21 +410,6 @@ function MakeWithConfig(Config) {
|
|
|
501
410
|
project: UiFragments_Projection$ReventlessCore.project,
|
|
502
411
|
moduleUrl: UiFragments_Projection$ReventlessCore.moduleUrl
|
|
503
412
|
});
|
|
504
|
-
let Make$8 = FragmentConfig => {
|
|
505
|
-
let Builder = Api_Builder$ReventlessCore.Make({
|
|
506
|
-
makeApiResource: AppSync_Adapter$ReventlessAws.makeApiResource,
|
|
507
|
-
generateFragment: AppSync_Adapter$ReventlessAws.generateFragment,
|
|
508
|
-
updateSchema: AppSync_Adapter$ReventlessAws.updateSchema
|
|
509
|
-
});
|
|
510
|
-
let effectiveBaseFragment = Config.splitApi ? emptyBaseFragment : FragmentConfig.baseFragment;
|
|
511
|
-
let make = (name, opts) => Builder.make(name, effectiveBaseFragment, opts);
|
|
512
|
-
return {
|
|
513
|
-
make: make
|
|
514
|
-
};
|
|
515
|
-
};
|
|
516
|
-
let Api = {
|
|
517
|
-
Make: Make$8
|
|
518
|
-
};
|
|
519
413
|
let hooksApiRef = {
|
|
520
414
|
contents: undefined
|
|
521
415
|
};
|
|
@@ -544,34 +438,6 @@ function MakeWithConfig(Config) {
|
|
|
544
438
|
return resolveHookedApi();
|
|
545
439
|
}
|
|
546
440
|
};
|
|
547
|
-
let deployWaiterDelay = ms => new Promise((resolve, param) => {
|
|
548
|
-
setTimeout(() => resolve(), ms);
|
|
549
|
-
});
|
|
550
|
-
let waitForApiFragmentPush = async (endpoint, region, pluginId, sinceAt) => {
|
|
551
|
-
let loop = async attempt => {
|
|
552
|
-
if (attempt >= 90) {
|
|
553
|
-
return Stdlib_JsError.throwWithMessage(`Timed out (>3min) waiting for the platform to push ` + pluginId + `'s API fragment — check the AdminEventCollector Lambda logs.`);
|
|
554
|
-
}
|
|
555
|
-
let data = await Util_AppSync_Caller$ReventlessAws.sendQuery(endpoint, region, "query { Platform_ApiFragments { pluginId pushStatus pushMessage pushedAt } }");
|
|
556
|
-
let row = Stdlib_Option.flatMap(Stdlib_Option.getOr(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(data, Stdlib_JSON.Decode.object), d => d["Platform_ApiFragments"]), Stdlib_JSON.Decode.array), []).find(entry => Primitive_object.equal(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_JSON.Decode.object(entry), e => e["pluginId"]), Stdlib_JSON.Decode.string), pluginId)), Stdlib_JSON.Decode.object);
|
|
557
|
-
if (row !== undefined) {
|
|
558
|
-
let field = k => Stdlib_Option.getOr(Stdlib_Option.flatMap(row[k], Stdlib_JSON.Decode.string), "");
|
|
559
|
-
let status = field("pushStatus");
|
|
560
|
-
let fresh = field("pushedAt") >= sinceAt;
|
|
561
|
-
if (fresh && status === "ok") {
|
|
562
|
-
return log.info("registerFragmentViaApi", undefined, pluginId + ` schema push confirmed ACTIVE`);
|
|
563
|
-
} else if (fresh && status === "error") {
|
|
564
|
-
return Stdlib_JsError.throwWithMessage(`Schema push failed for ` + pluginId + `: ` + field("pushMessage"));
|
|
565
|
-
} else {
|
|
566
|
-
await deployWaiterDelay(2000);
|
|
567
|
-
return await loop(attempt + 1 | 0);
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
await deployWaiterDelay(2000);
|
|
571
|
-
return await loop(attempt + 1 | 0);
|
|
572
|
-
};
|
|
573
|
-
return await loop(0);
|
|
574
|
-
};
|
|
575
441
|
let hooks_subscriptionInfraHook = Stdlib_Option.map(domainEventsApiOpt, eventsApi => (params => {
|
|
576
442
|
let allEventTopics = params.allEventTopics;
|
|
577
443
|
let allQueryDbs = params.allQueryDbs;
|
|
@@ -591,102 +457,22 @@ function MakeWithConfig(Config) {
|
|
|
591
457
|
StateTopic_AppSync$ReventlessAws.finish(eventsApi, {});
|
|
592
458
|
}));
|
|
593
459
|
let hooks_preResolversSchemaHook = (name, version, pluginFragment) => {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
return pushed;
|
|
609
|
-
}
|
|
610
|
-
log.info("preResolversSchemaHook", undefined, `Pushing schema for plugin ` + name + `@` + version + ` to AppSync`);
|
|
611
|
-
let capturedDeployTarget = currentDeployTarget.contents;
|
|
612
|
-
if (platformStackRef === undefined) {
|
|
613
|
-
return Pervasives.failwith("makePlatform(~plugins=[…]) is no longer supported on AWS — deploy the platform with deployPlatform and each plugin with deployPlugin (staged register + reactive push).");
|
|
614
|
-
}
|
|
615
|
-
let apiTargetName;
|
|
616
|
-
apiTargetName = capturedDeployTarget === "Domain" ? "Domain" : "Platform";
|
|
617
|
-
let match = apiConfigRef.contents;
|
|
618
|
-
let platformApi = match !== undefined ? match.platformApi : domainApi;
|
|
619
|
-
let region = Stdlib_Option.getOr(new Pulumi.Config("aws").get("region"), "unknown");
|
|
620
|
-
let endpointOutput = Output$Pulumi.flatMap(platformApi, api => api.uris).apply(uris => uris.GRAPHQL);
|
|
621
|
-
ApiFragmentDeregistration$ReventlessAws.make(name + `ApiFragmentRegistration`, name, endpointOutput, region, undefined);
|
|
622
|
-
return Output$Pulumi.flatMap(endpointOutput, endpoint => {
|
|
623
|
-
let run = async () => {
|
|
624
|
-
let at = new Date().toISOString();
|
|
625
|
-
let variables = {
|
|
626
|
-
id: "registry",
|
|
627
|
-
pluginId: name,
|
|
628
|
-
fragment: {
|
|
629
|
-
encoded: pluginFragment.encoded,
|
|
630
|
-
protocol: pluginFragment.protocol
|
|
631
|
-
},
|
|
632
|
-
apiTarget: Util_AppSync_Caller$ReventlessAws.graphqlEnum(apiTargetName),
|
|
633
|
-
at: at
|
|
634
|
-
};
|
|
635
|
-
log.info("registerFragmentViaApi", undefined, `Registering API fragment for ` + name + ` (` + apiTargetName + `) via ` + endpoint);
|
|
636
|
-
let result = await Util_AppSync_Caller$ReventlessAws.sendMutation(endpoint, region, "Platform_ApiFragmentRegistry_RegisterApiFragment", "{ __typename ... on CommandAccepted { eventCount } ... on CommandRejected { errorCode errorDetail } }", variables);
|
|
637
|
-
let outcome = Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(result, Stdlib_JSON.Decode.object), d => d["Platform_ApiFragmentRegistry_RegisterApiFragment"]), Stdlib_JSON.Decode.object);
|
|
638
|
-
if (outcome === undefined) {
|
|
639
|
-
return await waitForApiFragmentPush(endpoint, region, name, at);
|
|
640
|
-
}
|
|
641
|
-
let typename = Stdlib_Option.getOr(Stdlib_Option.flatMap(outcome["__typename"], Stdlib_JSON.Decode.string), "");
|
|
642
|
-
switch (typename) {
|
|
643
|
-
case "CommandAccepted" :
|
|
644
|
-
let eventCount = Stdlib_Option.getOr(Stdlib_Option.flatMap(outcome["eventCount"], Stdlib_JSON.Decode.float), 0.0);
|
|
645
|
-
if (eventCount > 0.0) {
|
|
646
|
-
return await waitForApiFragmentPush(endpoint, region, name, at);
|
|
647
|
-
} else {
|
|
648
|
-
return log.info("registerFragmentViaApi", undefined, name + ` fragment unchanged — no push needed`);
|
|
649
|
-
}
|
|
650
|
-
case "CommandRejected" :
|
|
651
|
-
let code = Stdlib_Option.getOr(Stdlib_Option.flatMap(outcome["errorCode"], Stdlib_JSON.Decode.string), "unknown");
|
|
652
|
-
return Stdlib_JsError.throwWithMessage(`RegisterApiFragment rejected for ` + name + `: ` + code);
|
|
653
|
-
default:
|
|
654
|
-
return await waitForApiFragmentPush(endpoint, region, name, at);
|
|
655
|
-
}
|
|
656
|
-
};
|
|
657
|
-
return run();
|
|
658
|
-
});
|
|
659
|
-
};
|
|
660
|
-
let hooks_preAdminResolversSchemaHook = adminBarrier => {
|
|
661
|
-
if (mergedApiMode) {
|
|
662
|
-
return adminBarrier;
|
|
663
|
-
}
|
|
664
|
-
let match = splitApiOutputsRef.contents;
|
|
665
|
-
let targetApiOpt = match !== undefined ? match.platformApi : (
|
|
666
|
-
Config.splitApi ? undefined : domainApi
|
|
667
|
-
);
|
|
668
|
-
if (targetApiOpt !== undefined) {
|
|
669
|
-
let adminBaseFragment = AppSync_Adapter$ReventlessAws.injectAwsAuthAll(AdminApi$ReventlessCore.baseFragment(Config.cloner), "Admin", AdminApi$ReventlessCore.systemCallerFieldNames);
|
|
670
|
-
let sdl = AppSync_Adapter$ReventlessAws.stitchWithAwsDirectives(adminBaseFragment, []);
|
|
671
|
-
return Output$Pulumi.flatMap(Pulumi.all([
|
|
672
|
-
targetApiOpt,
|
|
673
|
-
adminBarrier
|
|
674
|
-
]), param => Output$Pulumi.flatMap(param[0].id, apiId => {
|
|
675
|
-
log.info("preAdminResolversSchemaHook", undefined, `Pushing admin schema to ` + apiId);
|
|
676
|
-
let client = AppSync_Adapter$ReventlessAws.getClient();
|
|
677
|
-
return AppSync_Adapter$ReventlessAws.startSchemaCreationRetrying(client, {
|
|
678
|
-
apiId: apiId,
|
|
679
|
-
definition: sdl
|
|
680
|
-
}).then(async () => {
|
|
681
|
-
log.info("preAdminResolversSchemaHook", undefined, "startSchemaCreation called, waiting for ACTIVE");
|
|
682
|
-
await AppSync_Adapter$ReventlessAws.waitForSchemaActive(client, apiId, undefined, undefined);
|
|
683
|
-
return log.info("preAdminResolversSchemaHook", undefined, "schema is ACTIVE");
|
|
684
|
-
});
|
|
685
|
-
}));
|
|
686
|
-
}
|
|
687
|
-
log.error("preAdminResolversSchemaHook", undefined, "split mode but the PlatformApi is not available at hook time — SKIPPING the admin schema push to avoid clobbering the DomainApi (pushing admin-base here would wipe every plugin field)");
|
|
688
|
-
return adminBarrier;
|
|
460
|
+
let sdl = AppSync_Adapter$ReventlessAws.stitchStandaloneWithAwsDirectives(pluginFragment);
|
|
461
|
+
let pushed = Output$Pulumi.flatMap(domainApi, api => Output$Pulumi.flatMap(api.id, apiId => {
|
|
462
|
+
log.info("preResolversSchemaHook", undefined, `Pushing subgraph schema for ` + name + `@` + version + ` to source API ` + apiId);
|
|
463
|
+
let client = AppSync_Adapter$ReventlessAws.getClient();
|
|
464
|
+
return AppSync_Adapter$ReventlessAws.startSchemaCreationRetrying(client, {
|
|
465
|
+
apiId: apiId,
|
|
466
|
+
definition: sdl
|
|
467
|
+
}).then(async () => {
|
|
468
|
+
await AppSync_Adapter$ReventlessAws.waitForSchemaActive(client, apiId, undefined, undefined);
|
|
469
|
+
return log.info("preResolversSchemaHook", undefined, "subgraph schema is ACTIVE");
|
|
470
|
+
});
|
|
471
|
+
}));
|
|
472
|
+
mergedSchemaPushedRef.contents = pushed;
|
|
473
|
+
return pushed;
|
|
689
474
|
};
|
|
475
|
+
let hooks_preAdminResolversSchemaHook = adminBarrier => adminBarrier;
|
|
690
476
|
let hooks_inboundAppSyncResolverHook = param => InboundTranslationResolvers_AppSync$ReventlessAws.make(resolveHookedApi(), param.runtime, param.fieldNames, param.opts);
|
|
691
477
|
let hooks_dcbAppSyncResolverHook = param => {
|
|
692
478
|
let onAdminApi = param.onAdminApi;
|
|
@@ -808,40 +594,6 @@ function MakeWithConfig(Config) {
|
|
|
808
594
|
authorization: PluginsReadModelSpec$ReventlessCore.authorization,
|
|
809
595
|
visibility: PluginsReadModelSpec$ReventlessCore.visibility
|
|
810
596
|
})(PluginReadModelMappings);
|
|
811
|
-
let ApiFragmentRegistryAggregate = Aggregate_Builder_Single$ReventlessAws.Make({
|
|
812
|
-
Id: Id$Reventless.$$String,
|
|
813
|
-
name: ApiFragmentRegistrySpec$ReventlessCore.name,
|
|
814
|
-
eventSchema: ApiFragmentRegistrySpec$ReventlessCore.eventSchema,
|
|
815
|
-
errorSchema: ApiFragmentRegistrySpec$ReventlessCore.errorSchema,
|
|
816
|
-
commandSchema: ApiFragmentRegistrySpec$ReventlessCore.commandSchema,
|
|
817
|
-
moduleUrl: ApiFragmentRegistrySpec$ReventlessCore.moduleUrl,
|
|
818
|
-
commandAuthorization: ApiFragmentRegistrySpec$ReventlessCore.commandAuthorization
|
|
819
|
-
})({
|
|
820
|
-
initialState: ApiFragmentRegistryBehavior$ReventlessCore.initialState,
|
|
821
|
-
evolve: ApiFragmentRegistryBehavior$ReventlessCore.evolve,
|
|
822
|
-
decide: ApiFragmentRegistryBehavior$ReventlessCore.decide,
|
|
823
|
-
snapshot: undefined,
|
|
824
|
-
moduleUrl: ApiFragmentRegistryBehavior$ReventlessCore.moduleUrl
|
|
825
|
-
})(NoEventMappings$ReventlessInfra.Make({
|
|
826
|
-
name: ApiFragmentRegistrySpec$ReventlessCore.name,
|
|
827
|
-
Id: Id$Reventless.$$String,
|
|
828
|
-
commandSchema: ApiFragmentRegistrySpec$ReventlessCore.commandSchema
|
|
829
|
-
}));
|
|
830
|
-
let ApiFragmentsReadModelMappings = {
|
|
831
|
-
moduleUrl: ApiFragmentsProjection$ReventlessCore.moduleUrl,
|
|
832
|
-
mappings: ApiFragmentsProjection$ReventlessCore.mappings
|
|
833
|
-
};
|
|
834
|
-
let ApiFragmentsReadModel = ReadModel_Builder_NoResolver_Stream$ReventlessAws.Make({
|
|
835
|
-
Id: Id$Reventless.$$String,
|
|
836
|
-
name: ApiFragmentsReadModelSpec$ReventlessCore.name,
|
|
837
|
-
moduleUrl: ApiFragmentsReadModelSpec$ReventlessCore.moduleUrl,
|
|
838
|
-
stateSchema: ApiFragmentsReadModelSpec$ReventlessCore.stateSchema,
|
|
839
|
-
config: ApiFragmentsReadModelSpec$ReventlessCore.config,
|
|
840
|
-
subIdConfig: undefined,
|
|
841
|
-
authorization: ApiFragmentsReadModelSpec$ReventlessCore.authorization,
|
|
842
|
-
visibility: ApiFragmentsReadModelSpec$ReventlessCore.visibility
|
|
843
|
-
})(ApiFragmentsReadModelMappings);
|
|
844
|
-
let AdminApiSchemaPushHandler = SideEffectHandler_Single$ReventlessAws.Make({});
|
|
845
597
|
let makeScheduler = () => {
|
|
846
598
|
let component = Scheduler$ReventlessAws.make(undefined);
|
|
847
599
|
let outputs = Component$ReventlessCore.outputs(component);
|
|
@@ -947,86 +699,7 @@ function MakeWithConfig(Config) {
|
|
|
947
699
|
};
|
|
948
700
|
let makePlatform = (version, plugins) => {
|
|
949
701
|
log.info("Platform", undefined, `v` + version);
|
|
950
|
-
|
|
951
|
-
Pervasives.failwith("mergedApi mode is supported with deployPlatform only — deploy the platform with deployPlatform and each plugin with deployPlugin.");
|
|
952
|
-
}
|
|
953
|
-
let scheduler = makeScheduler();
|
|
954
|
-
hooks_scheduler.contents = scheduler;
|
|
955
|
-
hooksApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApi);
|
|
956
|
-
hooksApiRoleRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApiRole);
|
|
957
|
-
let match = Config.splitApi ? AppSync_Adapter$ReventlessAws.makeApiResource("PlatformApi", {}) : [
|
|
958
|
-
domainApi,
|
|
959
|
-
domainApiRole
|
|
960
|
-
];
|
|
961
|
-
let platformApiRole = match[1];
|
|
962
|
-
let platformApi = match[0];
|
|
963
|
-
hooksAdminApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(platformApi);
|
|
964
|
-
if (Config.splitApi) {
|
|
965
|
-
splitApiOutputsRef.contents = {
|
|
966
|
-
platformApi: platformApi,
|
|
967
|
-
platformApiRole: platformApiRole
|
|
968
|
-
};
|
|
969
|
-
let c = apiConfigRef.contents;
|
|
970
|
-
if (c !== undefined) {
|
|
971
|
-
apiConfigRef.contents = {
|
|
972
|
-
domainApi: c.domainApi,
|
|
973
|
-
domainApiRole: c.domainApiRole,
|
|
974
|
-
platformApi: platformApi,
|
|
975
|
-
platformApiRole: platformApiRole
|
|
976
|
-
};
|
|
977
|
-
}
|
|
978
|
-
}
|
|
979
|
-
let admin = Admin.construct(version, [], [
|
|
980
|
-
PluginAggregate,
|
|
981
|
-
ApiFragmentRegistryAggregate
|
|
982
|
-
], [
|
|
983
|
-
PluginReadModel,
|
|
984
|
-
ApiFragmentsReadModel
|
|
985
|
-
], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
986
|
-
let pluginRm = admin.readModelsOutputs["Plugins"];
|
|
987
|
-
if (pluginRm !== undefined) {
|
|
988
|
-
let r = pluginRm.queryDb.resources[0];
|
|
989
|
-
if (r !== undefined) {
|
|
990
|
-
Platform_ComponentDefinitions_Lambda$ReventlessAws.make(platformApi, r.name, {});
|
|
991
|
-
AggregateRuntime_Builder_Single$ReventlessAws.setPluginReadModelTable(r.name);
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
let rm = admin.stateViewSlicesOutputs["UiFragments"];
|
|
995
|
-
if (rm !== undefined) {
|
|
996
|
-
let r$1 = rm.queryDb.resources[0];
|
|
997
|
-
if (r$1 !== undefined) {
|
|
998
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
let rm$1 = admin.readModelsOutputs["ApiFragments"];
|
|
1002
|
-
if (rm$1 !== undefined) {
|
|
1003
|
-
let r$2 = rm$1.queryDb.resources[0];
|
|
1004
|
-
if (r$2 !== undefined) {
|
|
1005
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
1006
|
-
}
|
|
1007
|
-
}
|
|
1008
|
-
let pluginComponents = plugins.map(plugin => plugin.make());
|
|
1009
|
-
let pluginComponent = pluginComponents[0];
|
|
1010
|
-
if (pluginComponent !== undefined) {
|
|
1011
|
-
Plugin_Helpers$ReventlessCore.exportPluginOutputs(Component$ReventlessCore.outputs(Primitive_option.valFromOption(pluginComponent)));
|
|
1012
|
-
}
|
|
1013
|
-
provisionPgChangeFeedRelay();
|
|
1014
|
-
let sel = QueryDbBackend$ReventlessAws.get();
|
|
1015
|
-
if (sel !== undefined) {
|
|
1016
|
-
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {}, undefined);
|
|
1017
|
-
}
|
|
1018
|
-
if (Config.splitApi) {
|
|
1019
|
-
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(platformApi, api => api.id));
|
|
1020
|
-
Pulumi$Pulumi.$$export("platformApiEndpoint", Output$Pulumi.flatMap(platformApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
1021
|
-
Pulumi$Pulumi.$$export("platformApiRoleArn", Output$Pulumi.flatMap(platformApiRole, role => role.arn));
|
|
1022
|
-
} else {
|
|
1023
|
-
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(domainApi, api => api.id));
|
|
1024
|
-
Pulumi$Pulumi.$$export("platformApiEndpoint", Output$Pulumi.flatMap(domainApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
1025
|
-
Pulumi$Pulumi.$$export("platformApiRoleArn", Output$Pulumi.flatMap(domainApiRole, role => role.arn));
|
|
1026
|
-
}
|
|
1027
|
-
Pulumi$Pulumi.$$export("domainApiId", Output$Pulumi.flatMap(domainApi, api => api.id));
|
|
1028
|
-
Pulumi$Pulumi.$$export("domainApiEndpoint", Output$Pulumi.flatMap(domainApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
1029
|
-
Pulumi$Pulumi.$$export("domainApiRoleArn", Output$Pulumi.flatMap(domainApiRole, role => role.arn));
|
|
702
|
+
return Pervasives.failwith("makePlatform is not supported on AWS — deploy the platform with deployPlatform and each plugin with deployPlugin (merged-API composition).");
|
|
1030
703
|
};
|
|
1031
704
|
let deployPlatform = (version, hostUiBundle) => {
|
|
1032
705
|
log.info("Platform:deployPlatform", undefined, `v` + version);
|
|
@@ -1034,40 +707,34 @@ function MakeWithConfig(Config) {
|
|
|
1034
707
|
hooks_scheduler.contents = scheduler;
|
|
1035
708
|
hooksApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApi);
|
|
1036
709
|
hooksApiRoleRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApiRole);
|
|
1037
|
-
let match = Config.splitApi ? (
|
|
1038
|
-
mergedApiMode ? AppSync_Adapter$ReventlessAws.makeSourceApiResource("PlatformApi", adminSourceSdl(), {}) : AppSync_Adapter$ReventlessAws.makeApiResource("PlatformApi", {})
|
|
1039
|
-
) : [
|
|
710
|
+
let match = Config.splitApi ? AppSync_Adapter$ReventlessAws.makeSourceApiResource("PlatformApi", adminSourceSdl(), {}) : [
|
|
1040
711
|
domainApi,
|
|
1041
712
|
domainApiRole
|
|
1042
713
|
];
|
|
1043
714
|
let platformApiRole = match[1];
|
|
1044
715
|
let platformApi = match[0];
|
|
716
|
+
AppSync_MergedApi$ReventlessAws.assertCompatiblePrimaryAuth(AppSync_MergedApi$ReventlessAws.authenticationTypeName(AppSync_Adapter$ReventlessAws.primaryAuthenticationType), AppSync_MergedApi$ReventlessAws.primaryAuthMode);
|
|
717
|
+
let domainMerged = AppSync_MergedApi$ReventlessAws.make("DomainMergedApi", {});
|
|
1045
718
|
let mergedOutputs;
|
|
1046
|
-
if (
|
|
1047
|
-
AppSync_MergedApi$ReventlessAws.
|
|
1048
|
-
let
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
domainMergeGate: AppSync_MergedApi$ReventlessAws.mergeStatusGate(domainMerged, domainAssoc),
|
|
1057
|
-
platformMergeGate: AppSync_MergedApi$ReventlessAws.mergeStatusGate(platformMerged, platformAssoc)
|
|
1058
|
-
};
|
|
1059
|
-
} else {
|
|
1060
|
-
let assoc = AppSync_MergedApi$ReventlessAws.associateSource("DomainAdminSourceAssociation", domainMerged, domainApi, {});
|
|
1061
|
-
let gate = AppSync_MergedApi$ReventlessAws.mergeStatusGate(domainMerged, assoc);
|
|
1062
|
-
mergedOutputs = {
|
|
1063
|
-
domainMerged: domainMerged,
|
|
1064
|
-
platformMerged: domainMerged,
|
|
1065
|
-
domainMergeGate: gate,
|
|
1066
|
-
platformMergeGate: gate
|
|
1067
|
-
};
|
|
1068
|
-
}
|
|
719
|
+
if (Config.splitApi) {
|
|
720
|
+
let platformMerged = AppSync_MergedApi$ReventlessAws.make("PlatformMergedApi", {});
|
|
721
|
+
let platformAssoc = AppSync_MergedApi$ReventlessAws.associateSource("PlatformAdminSourceAssociation", platformMerged, platformApi, {});
|
|
722
|
+
let domainAssoc = AppSync_MergedApi$ReventlessAws.associateSource("DomainBaseSourceAssociation", domainMerged, domainApi, {});
|
|
723
|
+
mergedOutputs = {
|
|
724
|
+
domainMerged: domainMerged,
|
|
725
|
+
platformMerged: platformMerged,
|
|
726
|
+
domainMergeGate: AppSync_MergedApi$ReventlessAws.mergeStatusGate(domainMerged, domainAssoc),
|
|
727
|
+
platformMergeGate: AppSync_MergedApi$ReventlessAws.mergeStatusGate(platformMerged, platformAssoc)
|
|
728
|
+
};
|
|
1069
729
|
} else {
|
|
1070
|
-
|
|
730
|
+
let assoc = AppSync_MergedApi$ReventlessAws.associateSource("DomainAdminSourceAssociation", domainMerged, domainApi, {});
|
|
731
|
+
let gate = AppSync_MergedApi$ReventlessAws.mergeStatusGate(domainMerged, assoc);
|
|
732
|
+
mergedOutputs = {
|
|
733
|
+
domainMerged: domainMerged,
|
|
734
|
+
platformMerged: domainMerged,
|
|
735
|
+
domainMergeGate: gate,
|
|
736
|
+
platformMergeGate: gate
|
|
737
|
+
};
|
|
1071
738
|
}
|
|
1072
739
|
hooksAdminApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(platformApi);
|
|
1073
740
|
if (Config.splitApi) {
|
|
@@ -1090,62 +757,7 @@ function MakeWithConfig(Config) {
|
|
|
1090
757
|
updateApiSchema: undefined,
|
|
1091
758
|
manageSubscriptions: undefined
|
|
1092
759
|
});
|
|
1093
|
-
let admin = Admin.construct(version, [PluginExtensionPoint], [
|
|
1094
|
-
PluginAggregate,
|
|
1095
|
-
ApiFragmentRegistryAggregate
|
|
1096
|
-
], [
|
|
1097
|
-
PluginReadModel,
|
|
1098
|
-
ApiFragmentsReadModel
|
|
1099
|
-
], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
1100
|
-
let apiSchemaPushEventTopics = Aggregate$ReventlessCore.allEventTopics(admin.aggregatesOutputs);
|
|
1101
|
-
let apiSchemaPushCmdTopics = Aggregate$ReventlessCore.allCommandTopics(admin.aggregatesOutputs);
|
|
1102
|
-
let agg = admin.aggregatesOutputs[ApiFragmentRegistrySpec$ReventlessCore.name];
|
|
1103
|
-
let apiSchemaPushCmdTopicUrl = agg !== undefined ? Output$Pulumi.flatMap(agg.commandTopic, ct => {
|
|
1104
|
-
let r = ct.resources[0];
|
|
1105
|
-
if (r !== undefined) {
|
|
1106
|
-
return r.id;
|
|
1107
|
-
} else {
|
|
1108
|
-
return Pulumi.output("");
|
|
1109
|
-
}
|
|
1110
|
-
}) : Pulumi.output("");
|
|
1111
|
-
let apiSchemaPushEnv = Object.fromEntries([
|
|
1112
|
-
[
|
|
1113
|
-
"API_SCHEMA_PUSH_DOMAIN_API_ID",
|
|
1114
|
-
domainApiId
|
|
1115
|
-
],
|
|
1116
|
-
[
|
|
1117
|
-
"API_SCHEMA_PUSH_PLATFORM_API_ID",
|
|
1118
|
-
Output$Pulumi.flatMap(platformApi, api => api.id)
|
|
1119
|
-
],
|
|
1120
|
-
[
|
|
1121
|
-
"API_SCHEMA_PUSH_SPLIT_API",
|
|
1122
|
-
Pulumi.output(Config.splitApi ? "true" : "false")
|
|
1123
|
-
],
|
|
1124
|
-
[
|
|
1125
|
-
"API_SCHEMA_PUSH_CLONER",
|
|
1126
|
-
Pulumi.output(Config.cloner ? "true" : "false")
|
|
1127
|
-
],
|
|
1128
|
-
[
|
|
1129
|
-
"API_SCHEMA_PUSH_CMD_TOPIC_URL",
|
|
1130
|
-
apiSchemaPushCmdTopicUrl
|
|
1131
|
-
]
|
|
1132
|
-
]);
|
|
1133
|
-
let apiSchemaPushQueryEngine = QueryEngine_DynamoDb$ReventlessAws.make({});
|
|
1134
|
-
Pulumi.all([
|
|
1135
|
-
scheduler,
|
|
1136
|
-
apiSchemaPushQueryEngine
|
|
1137
|
-
]).apply(param => {
|
|
1138
|
-
AdminApiSchemaPushHandler.make("AdminApiSchemaPush", [{
|
|
1139
|
-
Source: {
|
|
1140
|
-
name: ApiSchemaPush$ReventlessAws.Source.name,
|
|
1141
|
-
Id: ApiSchemaPush$ReventlessAws.Source.Id,
|
|
1142
|
-
eventSchema: ApiSchemaPush$ReventlessAws.Source.eventSchema
|
|
1143
|
-
},
|
|
1144
|
-
moduleUrl: ApiSchemaPush$ReventlessAws.moduleUrl,
|
|
1145
|
-
execute: ApiSchemaPush$ReventlessAws.execute
|
|
1146
|
-
}], apiSchemaPushEventTopics, apiSchemaPushCmdTopics, [ApiFragmentRegistrySpec$ReventlessCore.name], param[1], param[0], Util_ResourceNaming$ReventlessAws.operations, undefined, undefined, apiSchemaPushEnv, {});
|
|
1147
|
-
apiSchemaPushCmdTopics.apply(param => SideEffectHandlerRuntime_Builder_Single$ReventlessAws.finish());
|
|
1148
|
-
});
|
|
760
|
+
let admin = Admin.construct(version, [PluginExtensionPoint], [PluginAggregate], [PluginReadModel], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
1149
761
|
let pluginRm = admin.readModelsOutputs["Plugins"];
|
|
1150
762
|
let pluginReadModelTableName;
|
|
1151
763
|
if (pluginRm !== undefined) {
|
|
@@ -1182,13 +794,6 @@ function MakeWithConfig(Config) {
|
|
|
1182
794
|
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
1183
795
|
}
|
|
1184
796
|
}
|
|
1185
|
-
let rm$1 = admin.readModelsOutputs["ApiFragments"];
|
|
1186
|
-
if (rm$1 !== undefined) {
|
|
1187
|
-
let r$2 = rm$1.queryDb.resources[0];
|
|
1188
|
-
if (r$2 !== undefined) {
|
|
1189
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
1190
|
-
}
|
|
1191
|
-
}
|
|
1192
797
|
if (Config.splitApi) {
|
|
1193
798
|
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(platformApi, api => api.id));
|
|
1194
799
|
Pulumi$Pulumi.$$export("platformApiEndpoint", Output$Pulumi.flatMap(platformApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
@@ -1360,7 +965,7 @@ function MakeWithConfig(Config) {
|
|
|
1360
965
|
Pulumi$Pulumi.$$export("_interopMeta", Plugin_Helpers$ReventlessCore.getInteropMeta());
|
|
1361
966
|
let pluginOutputs = Component$ReventlessCore.outputs(pluginComponent);
|
|
1362
967
|
Plugin_Helpers$ReventlessCore.exportPluginOutputs(pluginOutputs);
|
|
1363
|
-
if (
|
|
968
|
+
if (platformStackRef !== undefined) {
|
|
1364
969
|
let stackRef = Primitive_option.valFromOption(platformStackRef);
|
|
1365
970
|
let defaultOutput = stackRef.getOutput("default");
|
|
1366
971
|
let getMergedExport = key => {
|
|
@@ -1404,7 +1009,7 @@ function MakeWithConfig(Config) {
|
|
|
1404
1009
|
provisionPgChangeFeedRelay();
|
|
1405
1010
|
let sel = QueryDbBackend$ReventlessAws.get();
|
|
1406
1011
|
if (sel !== undefined) {
|
|
1407
|
-
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {}
|
|
1012
|
+
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {});
|
|
1408
1013
|
}
|
|
1409
1014
|
let hbConfig = PluginRuntime_Builder$ReventlessAws.heartbeatConfigRef.contents;
|
|
1410
1015
|
let match = IndexJs.isDryRun();
|
|
@@ -1467,7 +1072,6 @@ function MakeWithConfig(Config) {
|
|
|
1467
1072
|
InboundTranslationSlice: {
|
|
1468
1073
|
Make: InboundTranslationSlice.Make
|
|
1469
1074
|
},
|
|
1470
|
-
Api: Api,
|
|
1471
1075
|
mcpSupported: false,
|
|
1472
1076
|
Plugin: Plugin,
|
|
1473
1077
|
makePlatform: makePlatform,
|
|
@@ -1503,88 +1107,26 @@ function Make($star) {
|
|
|
1503
1107
|
});
|
|
1504
1108
|
QueryDbBackend$ReventlessAws.exempt(PluginsReadModelSpec$ReventlessCore.name);
|
|
1505
1109
|
QueryDbBackend$ReventlessAws.exempt(UiFragments$ReventlessCore.name);
|
|
1506
|
-
QueryDbBackend$ReventlessAws.exempt(ApiFragmentsReadModelSpec$ReventlessCore.name);
|
|
1507
1110
|
});
|
|
1508
1111
|
let currentDeployTarget = {
|
|
1509
1112
|
contents: "Domain"
|
|
1510
1113
|
};
|
|
1511
1114
|
let platformStackRef = Stdlib_Option.map(new Pulumi.Config("platform").get("stack"), stack => new Pulumi.StackReference(stack));
|
|
1512
|
-
let
|
|
1513
|
-
id: Pulumi.output(apiId),
|
|
1514
|
-
arn: Pulumi.output(""),
|
|
1515
|
-
name: Pulumi.output(""),
|
|
1516
|
-
uris: Pulumi.output({
|
|
1517
|
-
GRAPHQL: apiEndpoint,
|
|
1518
|
-
REALTIME: ""
|
|
1519
|
-
})
|
|
1520
|
-
});
|
|
1521
|
-
let makePhantomRole = apiRoleArn => {
|
|
1522
|
-
let roleName = Stdlib_Option.getOr(apiRoleArn.split("/").at(-1), apiRoleArn);
|
|
1523
|
-
return {
|
|
1524
|
-
arn: Pulumi.output(apiRoleArn),
|
|
1525
|
-
name: Pulumi.output(roleName),
|
|
1526
|
-
id: Pulumi.output(roleName)
|
|
1527
|
-
};
|
|
1528
|
-
};
|
|
1529
|
-
let emptyBaseFragment = GraphQL_Stitcher$ReventlessCore.encode({
|
|
1115
|
+
let domainBaseFragment = GraphQL_Stitcher$ReventlessCore.encode({
|
|
1530
1116
|
types: [],
|
|
1531
1117
|
mutations: [],
|
|
1532
|
-
queries: [],
|
|
1118
|
+
queries: [" Platform_ping: String"],
|
|
1533
1119
|
subscriptions: [],
|
|
1534
1120
|
subscriptionSources: []
|
|
1535
1121
|
});
|
|
1536
1122
|
let adminSourceSdl = () => {
|
|
1537
|
-
let baseFragment = AppSync_Adapter$ReventlessAws.injectAwsAuthAll(AdminApi$ReventlessCore.baseFragment(false), "Admin",
|
|
1538
|
-
return AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.
|
|
1123
|
+
let baseFragment = AppSync_Adapter$ReventlessAws.injectAwsAuthAll(AdminApi$ReventlessCore.baseFragment(false), "Admin", undefined);
|
|
1124
|
+
return AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.stitchStandaloneWithAwsDirectives(baseFragment));
|
|
1539
1125
|
};
|
|
1540
1126
|
let match;
|
|
1541
1127
|
if (platformStackRef !== undefined) {
|
|
1542
1128
|
let stackRef = Primitive_option.valFromOption(platformStackRef);
|
|
1543
1129
|
let defaultOutput = stackRef.getOutput("default");
|
|
1544
|
-
let domainApiIdOutput = stackRef.getOutput("domainApiId");
|
|
1545
|
-
let domainApiEndpointOutput = stackRef.getOutput("domainApiEndpoint");
|
|
1546
|
-
let domainApiRoleArnOutput = stackRef.getOutput("domainApiRoleArn");
|
|
1547
|
-
Pulumi.all([
|
|
1548
|
-
domainApiIdOutput,
|
|
1549
|
-
domainApiEndpointOutput,
|
|
1550
|
-
defaultOutput
|
|
1551
|
-
]).apply(param => {
|
|
1552
|
-
let $$default = param[2];
|
|
1553
|
-
let directEndpoint = param[1];
|
|
1554
|
-
let directId = param[0];
|
|
1555
|
-
let apiId = directId !== undefined ? directId : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d["domainApiId"]), v => Stdlib_JSON.Decode.string(v)), undefined);
|
|
1556
|
-
let apiEndpoint = directEndpoint !== undefined ? directEndpoint : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d["domainApiEndpoint"]), v => Stdlib_JSON.Decode.string(v)), "Platform stack does not export 'domainApiEndpoint' — redeploy the platform stack first");
|
|
1557
|
-
return makePhantomApi(apiId, apiEndpoint);
|
|
1558
|
-
});
|
|
1559
|
-
Pulumi.all([
|
|
1560
|
-
domainApiRoleArnOutput,
|
|
1561
|
-
defaultOutput
|
|
1562
|
-
]).apply(param => {
|
|
1563
|
-
let direct = param[0];
|
|
1564
|
-
return makePhantomRole(direct !== undefined ? direct : Stdlib_Option.getOrThrow(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(param[1], d => Stdlib_JSON.Decode.object(d)), d => d["domainApiRoleArn"]), v => Stdlib_JSON.Decode.string(v)), undefined));
|
|
1565
|
-
});
|
|
1566
|
-
let platformApiIdOutput = stackRef.getOutput("platformApiId");
|
|
1567
|
-
let platformApiEndpointOutput = stackRef.getOutput("platformApiEndpoint");
|
|
1568
|
-
let platformApiRoleArnOutput = stackRef.getOutput("platformApiRoleArn");
|
|
1569
|
-
Pulumi.all([
|
|
1570
|
-
platformApiIdOutput,
|
|
1571
|
-
platformApiEndpointOutput,
|
|
1572
|
-
defaultOutput
|
|
1573
|
-
]).apply(param => {
|
|
1574
|
-
let $$default = param[2];
|
|
1575
|
-
let getFromDefault = key => Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d[key]), v => Stdlib_JSON.Decode.string(v));
|
|
1576
|
-
let platformApiId = Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[0], getFromDefault("platformApiId")), undefined);
|
|
1577
|
-
let platformApiEndpoint = Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[1], getFromDefault("platformApiEndpoint")), undefined);
|
|
1578
|
-
return makePhantomApi(platformApiId, platformApiEndpoint);
|
|
1579
|
-
});
|
|
1580
|
-
Pulumi.all([
|
|
1581
|
-
platformApiRoleArnOutput,
|
|
1582
|
-
defaultOutput
|
|
1583
|
-
]).apply(param => {
|
|
1584
|
-
let $$default = param[1];
|
|
1585
|
-
let getFromDefault = key => Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap($$default, d => Stdlib_JSON.Decode.object(d)), d => d[key]), v => Stdlib_JSON.Decode.string(v));
|
|
1586
|
-
return makePhantomRole(Stdlib_Option.getOrThrow(Stdlib_Option.orElse(param[0], getFromDefault("platformApiRoleArn")), undefined));
|
|
1587
|
-
});
|
|
1588
1130
|
let cognitoPoolIdOutput = stackRef.getOutput("cognitoUserPoolId");
|
|
1589
1131
|
let cognitoRegionOutput = stackRef.getOutput("cognitoRegion");
|
|
1590
1132
|
let userPoolConfig = Pulumi.all([
|
|
@@ -1612,7 +1154,7 @@ function Make($star) {
|
|
|
1612
1154
|
role
|
|
1613
1155
|
];
|
|
1614
1156
|
} else {
|
|
1615
|
-
let schema = AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.
|
|
1157
|
+
let schema = AppSync_SdlDecorate$ReventlessAws.stampCanonicalTypes(AppSync_Adapter$ReventlessAws.stitchStandaloneWithAwsDirectives(domainBaseFragment));
|
|
1616
1158
|
let match$2 = AppSync_Adapter$ReventlessAws.makeSourceApiResource("DomainApi", schema, {});
|
|
1617
1159
|
let role$1 = match$2[1];
|
|
1618
1160
|
let api$1 = match$2[0];
|
|
@@ -1840,20 +1382,6 @@ function Make($star) {
|
|
|
1840
1382
|
project: UiFragments_Projection$ReventlessCore.project,
|
|
1841
1383
|
moduleUrl: UiFragments_Projection$ReventlessCore.moduleUrl
|
|
1842
1384
|
});
|
|
1843
|
-
let Make$9 = FragmentConfig => {
|
|
1844
|
-
let Builder = Api_Builder$ReventlessCore.Make({
|
|
1845
|
-
makeApiResource: AppSync_Adapter$ReventlessAws.makeApiResource,
|
|
1846
|
-
generateFragment: AppSync_Adapter$ReventlessAws.generateFragment,
|
|
1847
|
-
updateSchema: AppSync_Adapter$ReventlessAws.updateSchema
|
|
1848
|
-
});
|
|
1849
|
-
let make = (name, opts) => Builder.make(name, emptyBaseFragment, opts);
|
|
1850
|
-
return {
|
|
1851
|
-
make: make
|
|
1852
|
-
};
|
|
1853
|
-
};
|
|
1854
|
-
let Api = {
|
|
1855
|
-
Make: Make$9
|
|
1856
|
-
};
|
|
1857
1385
|
let hooksApiRef = {
|
|
1858
1386
|
contents: undefined
|
|
1859
1387
|
};
|
|
@@ -2038,40 +1566,6 @@ function Make($star) {
|
|
|
2038
1566
|
authorization: PluginsReadModelSpec$ReventlessCore.authorization,
|
|
2039
1567
|
visibility: PluginsReadModelSpec$ReventlessCore.visibility
|
|
2040
1568
|
})(PluginReadModelMappings);
|
|
2041
|
-
let ApiFragmentRegistryAggregate = Aggregate_Builder_Single$ReventlessAws.Make({
|
|
2042
|
-
Id: Id$Reventless.$$String,
|
|
2043
|
-
name: ApiFragmentRegistrySpec$ReventlessCore.name,
|
|
2044
|
-
eventSchema: ApiFragmentRegistrySpec$ReventlessCore.eventSchema,
|
|
2045
|
-
errorSchema: ApiFragmentRegistrySpec$ReventlessCore.errorSchema,
|
|
2046
|
-
commandSchema: ApiFragmentRegistrySpec$ReventlessCore.commandSchema,
|
|
2047
|
-
moduleUrl: ApiFragmentRegistrySpec$ReventlessCore.moduleUrl,
|
|
2048
|
-
commandAuthorization: ApiFragmentRegistrySpec$ReventlessCore.commandAuthorization
|
|
2049
|
-
})({
|
|
2050
|
-
initialState: ApiFragmentRegistryBehavior$ReventlessCore.initialState,
|
|
2051
|
-
evolve: ApiFragmentRegistryBehavior$ReventlessCore.evolve,
|
|
2052
|
-
decide: ApiFragmentRegistryBehavior$ReventlessCore.decide,
|
|
2053
|
-
snapshot: undefined,
|
|
2054
|
-
moduleUrl: ApiFragmentRegistryBehavior$ReventlessCore.moduleUrl
|
|
2055
|
-
})(NoEventMappings$ReventlessInfra.Make({
|
|
2056
|
-
name: ApiFragmentRegistrySpec$ReventlessCore.name,
|
|
2057
|
-
Id: Id$Reventless.$$String,
|
|
2058
|
-
commandSchema: ApiFragmentRegistrySpec$ReventlessCore.commandSchema
|
|
2059
|
-
}));
|
|
2060
|
-
let ApiFragmentsReadModelMappings = {
|
|
2061
|
-
moduleUrl: ApiFragmentsProjection$ReventlessCore.moduleUrl,
|
|
2062
|
-
mappings: ApiFragmentsProjection$ReventlessCore.mappings
|
|
2063
|
-
};
|
|
2064
|
-
let ApiFragmentsReadModel = ReadModel_Builder_NoResolver_Stream$ReventlessAws.Make({
|
|
2065
|
-
Id: Id$Reventless.$$String,
|
|
2066
|
-
name: ApiFragmentsReadModelSpec$ReventlessCore.name,
|
|
2067
|
-
moduleUrl: ApiFragmentsReadModelSpec$ReventlessCore.moduleUrl,
|
|
2068
|
-
stateSchema: ApiFragmentsReadModelSpec$ReventlessCore.stateSchema,
|
|
2069
|
-
config: ApiFragmentsReadModelSpec$ReventlessCore.config,
|
|
2070
|
-
subIdConfig: undefined,
|
|
2071
|
-
authorization: ApiFragmentsReadModelSpec$ReventlessCore.authorization,
|
|
2072
|
-
visibility: ApiFragmentsReadModelSpec$ReventlessCore.visibility
|
|
2073
|
-
})(ApiFragmentsReadModelMappings);
|
|
2074
|
-
let AdminApiSchemaPushHandler = SideEffectHandler_Single$ReventlessAws.Make({});
|
|
2075
1569
|
let makeScheduler = () => {
|
|
2076
1570
|
let component = Scheduler$ReventlessAws.make(undefined);
|
|
2077
1571
|
let outputs = Component$ReventlessCore.outputs(component);
|
|
@@ -2177,73 +1671,7 @@ function Make($star) {
|
|
|
2177
1671
|
};
|
|
2178
1672
|
let makePlatform = (version, plugins) => {
|
|
2179
1673
|
log.info("Platform", undefined, `v` + version);
|
|
2180
|
-
Pervasives.failwith("
|
|
2181
|
-
let scheduler = makeScheduler();
|
|
2182
|
-
hooks_scheduler.contents = scheduler;
|
|
2183
|
-
hooksApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApi);
|
|
2184
|
-
hooksApiRoleRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(domainApiRole);
|
|
2185
|
-
let match = AppSync_Adapter$ReventlessAws.makeApiResource("PlatformApi", {});
|
|
2186
|
-
let platformApiRole = match[1];
|
|
2187
|
-
let platformApi = match[0];
|
|
2188
|
-
hooksAdminApiRef.contents = Platform_Casts$ReventlessAws.wrapHookedValue(platformApi);
|
|
2189
|
-
splitApiOutputsRef.contents = {
|
|
2190
|
-
platformApi: platformApi,
|
|
2191
|
-
platformApiRole: platformApiRole
|
|
2192
|
-
};
|
|
2193
|
-
let c = apiConfigRef.contents;
|
|
2194
|
-
if (c !== undefined) {
|
|
2195
|
-
apiConfigRef.contents = {
|
|
2196
|
-
domainApi: c.domainApi,
|
|
2197
|
-
domainApiRole: c.domainApiRole,
|
|
2198
|
-
platformApi: platformApi,
|
|
2199
|
-
platformApiRole: platformApiRole
|
|
2200
|
-
};
|
|
2201
|
-
}
|
|
2202
|
-
let admin = Admin.construct(version, [], [
|
|
2203
|
-
PluginAggregate,
|
|
2204
|
-
ApiFragmentRegistryAggregate
|
|
2205
|
-
], [
|
|
2206
|
-
PluginReadModel,
|
|
2207
|
-
ApiFragmentsReadModel
|
|
2208
|
-
], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
2209
|
-
let pluginRm = admin.readModelsOutputs["Plugins"];
|
|
2210
|
-
if (pluginRm !== undefined) {
|
|
2211
|
-
let r = pluginRm.queryDb.resources[0];
|
|
2212
|
-
if (r !== undefined) {
|
|
2213
|
-
Platform_ComponentDefinitions_Lambda$ReventlessAws.make(platformApi, r.name, {});
|
|
2214
|
-
AggregateRuntime_Builder_Single$ReventlessAws.setPluginReadModelTable(r.name);
|
|
2215
|
-
}
|
|
2216
|
-
}
|
|
2217
|
-
let rm = admin.stateViewSlicesOutputs["UiFragments"];
|
|
2218
|
-
if (rm !== undefined) {
|
|
2219
|
-
let r$1 = rm.queryDb.resources[0];
|
|
2220
|
-
if (r$1 !== undefined) {
|
|
2221
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
2222
|
-
}
|
|
2223
|
-
}
|
|
2224
|
-
let rm$1 = admin.readModelsOutputs["ApiFragments"];
|
|
2225
|
-
if (rm$1 !== undefined) {
|
|
2226
|
-
let r$2 = rm$1.queryDb.resources[0];
|
|
2227
|
-
if (r$2 !== undefined) {
|
|
2228
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
2229
|
-
}
|
|
2230
|
-
}
|
|
2231
|
-
let pluginComponents = plugins.map(plugin => plugin.make());
|
|
2232
|
-
let pluginComponent = pluginComponents[0];
|
|
2233
|
-
if (pluginComponent !== undefined) {
|
|
2234
|
-
Plugin_Helpers$ReventlessCore.exportPluginOutputs(Component$ReventlessCore.outputs(Primitive_option.valFromOption(pluginComponent)));
|
|
2235
|
-
}
|
|
2236
|
-
provisionPgChangeFeedRelay();
|
|
2237
|
-
let sel = QueryDbBackend$ReventlessAws.get();
|
|
2238
|
-
if (sel !== undefined) {
|
|
2239
|
-
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {}, undefined);
|
|
2240
|
-
}
|
|
2241
|
-
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(platformApi, api => api.id));
|
|
2242
|
-
Pulumi$Pulumi.$$export("platformApiEndpoint", Output$Pulumi.flatMap(platformApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
2243
|
-
Pulumi$Pulumi.$$export("platformApiRoleArn", Output$Pulumi.flatMap(platformApiRole, role => role.arn));
|
|
2244
|
-
Pulumi$Pulumi.$$export("domainApiId", Output$Pulumi.flatMap(domainApi, api => api.id));
|
|
2245
|
-
Pulumi$Pulumi.$$export("domainApiEndpoint", Output$Pulumi.flatMap(domainApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
2246
|
-
Pulumi$Pulumi.$$export("domainApiRoleArn", Output$Pulumi.flatMap(domainApiRole, role => role.arn));
|
|
1674
|
+
return Pervasives.failwith("makePlatform is not supported on AWS — deploy the platform with deployPlatform and each plugin with deployPlugin (merged-API composition).");
|
|
2247
1675
|
};
|
|
2248
1676
|
let deployPlatform = (version, hostUiBundle) => {
|
|
2249
1677
|
log.info("Platform:deployPlatform", undefined, `v` + version);
|
|
@@ -2284,62 +1712,7 @@ function Make($star) {
|
|
|
2284
1712
|
updateApiSchema: undefined,
|
|
2285
1713
|
manageSubscriptions: undefined
|
|
2286
1714
|
});
|
|
2287
|
-
let admin = Admin.construct(version, [PluginExtensionPoint], [
|
|
2288
|
-
PluginAggregate,
|
|
2289
|
-
ApiFragmentRegistryAggregate
|
|
2290
|
-
], [
|
|
2291
|
-
PluginReadModel,
|
|
2292
|
-
ApiFragmentsReadModel
|
|
2293
|
-
], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
2294
|
-
let apiSchemaPushEventTopics = Aggregate$ReventlessCore.allEventTopics(admin.aggregatesOutputs);
|
|
2295
|
-
let apiSchemaPushCmdTopics = Aggregate$ReventlessCore.allCommandTopics(admin.aggregatesOutputs);
|
|
2296
|
-
let agg = admin.aggregatesOutputs[ApiFragmentRegistrySpec$ReventlessCore.name];
|
|
2297
|
-
let apiSchemaPushCmdTopicUrl = agg !== undefined ? Output$Pulumi.flatMap(agg.commandTopic, ct => {
|
|
2298
|
-
let r = ct.resources[0];
|
|
2299
|
-
if (r !== undefined) {
|
|
2300
|
-
return r.id;
|
|
2301
|
-
} else {
|
|
2302
|
-
return Pulumi.output("");
|
|
2303
|
-
}
|
|
2304
|
-
}) : Pulumi.output("");
|
|
2305
|
-
let apiSchemaPushEnv = Object.fromEntries([
|
|
2306
|
-
[
|
|
2307
|
-
"API_SCHEMA_PUSH_DOMAIN_API_ID",
|
|
2308
|
-
domainApiId
|
|
2309
|
-
],
|
|
2310
|
-
[
|
|
2311
|
-
"API_SCHEMA_PUSH_PLATFORM_API_ID",
|
|
2312
|
-
Output$Pulumi.flatMap(platformApi, api => api.id)
|
|
2313
|
-
],
|
|
2314
|
-
[
|
|
2315
|
-
"API_SCHEMA_PUSH_SPLIT_API",
|
|
2316
|
-
Pulumi.output("true")
|
|
2317
|
-
],
|
|
2318
|
-
[
|
|
2319
|
-
"API_SCHEMA_PUSH_CLONER",
|
|
2320
|
-
Pulumi.output("false")
|
|
2321
|
-
],
|
|
2322
|
-
[
|
|
2323
|
-
"API_SCHEMA_PUSH_CMD_TOPIC_URL",
|
|
2324
|
-
apiSchemaPushCmdTopicUrl
|
|
2325
|
-
]
|
|
2326
|
-
]);
|
|
2327
|
-
let apiSchemaPushQueryEngine = QueryEngine_DynamoDb$ReventlessAws.make({});
|
|
2328
|
-
Pulumi.all([
|
|
2329
|
-
scheduler,
|
|
2330
|
-
apiSchemaPushQueryEngine
|
|
2331
|
-
]).apply(param => {
|
|
2332
|
-
AdminApiSchemaPushHandler.make("AdminApiSchemaPush", [{
|
|
2333
|
-
Source: {
|
|
2334
|
-
name: ApiSchemaPush$ReventlessAws.Source.name,
|
|
2335
|
-
Id: ApiSchemaPush$ReventlessAws.Source.Id,
|
|
2336
|
-
eventSchema: ApiSchemaPush$ReventlessAws.Source.eventSchema
|
|
2337
|
-
},
|
|
2338
|
-
moduleUrl: ApiSchemaPush$ReventlessAws.moduleUrl,
|
|
2339
|
-
execute: ApiSchemaPush$ReventlessAws.execute
|
|
2340
|
-
}], apiSchemaPushEventTopics, apiSchemaPushCmdTopics, [ApiFragmentRegistrySpec$ReventlessCore.name], param[1], param[0], Util_ResourceNaming$ReventlessAws.operations, undefined, undefined, apiSchemaPushEnv, {});
|
|
2341
|
-
apiSchemaPushCmdTopics.apply(param => SideEffectHandlerRuntime_Builder_Single$ReventlessAws.finish());
|
|
2342
|
-
});
|
|
1715
|
+
let admin = Admin.construct(version, [PluginExtensionPoint], [PluginAggregate], [PluginReadModel], scheduler, Util_ResourceNaming$ReventlessAws.operations, platformApi, platformApiRole, [UiFragmentRegistrySlice], [UiFragmentsViewSlice], [], [], []);
|
|
2343
1716
|
let pluginRm = admin.readModelsOutputs["Plugins"];
|
|
2344
1717
|
let pluginReadModelTableName;
|
|
2345
1718
|
if (pluginRm !== undefined) {
|
|
@@ -2376,13 +1749,6 @@ function Make($star) {
|
|
|
2376
1749
|
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
2377
1750
|
}
|
|
2378
1751
|
}
|
|
2379
|
-
let rm$1 = admin.readModelsOutputs["ApiFragments"];
|
|
2380
|
-
if (rm$1 !== undefined) {
|
|
2381
|
-
let r$2 = rm$1.queryDb.resources[0];
|
|
2382
|
-
if (r$2 !== undefined) {
|
|
2383
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
2384
|
-
}
|
|
2385
|
-
}
|
|
2386
1752
|
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(platformApi, api => api.id));
|
|
2387
1753
|
Pulumi$Pulumi.$$export("platformApiEndpoint", Output$Pulumi.flatMap(platformApi, api => api.uris.apply(uris => uris.GRAPHQL)));
|
|
2388
1754
|
Pulumi$Pulumi.$$export("platformApiRoleArn", Output$Pulumi.flatMap(platformApiRole, role => role.arn));
|
|
@@ -2592,7 +1958,7 @@ function Make($star) {
|
|
|
2592
1958
|
provisionPgChangeFeedRelay();
|
|
2593
1959
|
let sel = QueryDbBackend$ReventlessAws.get();
|
|
2594
1960
|
if (sel !== undefined) {
|
|
2595
|
-
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {}
|
|
1961
|
+
PgQueryResolver_Builder$ReventlessAws.provision(domainApi, sel, {});
|
|
2596
1962
|
}
|
|
2597
1963
|
let hbConfig = PluginRuntime_Builder$ReventlessAws.heartbeatConfigRef.contents;
|
|
2598
1964
|
let match = IndexJs.isDryRun();
|
|
@@ -2660,7 +2026,6 @@ function Make($star) {
|
|
|
2660
2026
|
AutomationSlice: AutomationSlice,
|
|
2661
2027
|
OutboundTranslationSlice: OutboundTranslationSlice,
|
|
2662
2028
|
InboundTranslationSlice: InboundTranslationSlice$1,
|
|
2663
|
-
Api: Api,
|
|
2664
2029
|
mcpSupported: false,
|
|
2665
2030
|
Plugin: Plugin,
|
|
2666
2031
|
makePlatform: makePlatform,
|