@reventlessdev/reventless-aws 3.0.0-alpha.198 → 3.0.0-alpha.199
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 +4 -0
- package/src/Platform.res.mjs +8 -8
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res +19 -9
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res.mjs +2 -2
- package/src/adapter/Api/Platform_UIFragments_Lambda.res +19 -9
- package/src/adapter/Api/Platform_UIFragments_Lambda.res.mjs +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.199 (2026-07-12)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **deploy:** gate admin status-query resolvers on the schema push ([2634694](https://github.com/ReventlessDev/reventless-core/commit/2634694b3a122bc1db44d129769f5442e124d9b7))
|
|
11
|
+
|
|
12
|
+
|
|
6
13
|
# 3.0.0-alpha.198 (2026-07-12)
|
|
7
14
|
|
|
8
15
|
### Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.199",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"dependencies": {
|
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
"@aws-sdk/client-cloudfront": "3.970.0",
|
|
9
9
|
"sury": "11.0.0-alpha.4",
|
|
10
10
|
"uuid": "^13.0.0",
|
|
11
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
12
|
+
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
11
13
|
"@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
|
|
12
14
|
"@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
|
|
13
|
-
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
14
15
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
15
|
-
"@reventlessdev/
|
|
16
|
-
"@reventlessdev/reventless-core": "3.0.0-alpha.157",
|
|
16
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.158",
|
|
17
17
|
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
18
18
|
"@reventlessdev/reventless-infra": "3.0.0-alpha.98",
|
|
19
|
-
"@reventlessdev/reventless-postgres": "3.0.0-alpha.21",
|
|
20
19
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.26",
|
|
21
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
20
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.76",
|
|
21
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.22"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"rescript": "^12.3.0",
|
package/src/Platform.res
CHANGED
|
@@ -1691,6 +1691,7 @@ module MakeWithConfig = (
|
|
|
1691
1691
|
Platform_UIFragments_Lambda.make(
|
|
1692
1692
|
~api=platformApi,
|
|
1693
1693
|
~uiFragmentRegistryTableName=r.name,
|
|
1694
|
+
~schemaReady=admin.adminSchemaPushed,
|
|
1694
1695
|
~opts={},
|
|
1695
1696
|
)
|
|
1696
1697
|
| None => ()
|
|
@@ -1709,6 +1710,7 @@ module MakeWithConfig = (
|
|
|
1709
1710
|
Platform_ApiFragments_Lambda.make(
|
|
1710
1711
|
~api=platformApi,
|
|
1711
1712
|
~apiFragmentRegistryTableName=r.name,
|
|
1713
|
+
~schemaReady=admin.adminSchemaPushed,
|
|
1712
1714
|
~opts={},
|
|
1713
1715
|
)
|
|
1714
1716
|
| None => ()
|
|
@@ -2014,6 +2016,7 @@ module MakeWithConfig = (
|
|
|
2014
2016
|
Platform_UIFragments_Lambda.make(
|
|
2015
2017
|
~api=platformApi,
|
|
2016
2018
|
~uiFragmentRegistryTableName=r.name,
|
|
2019
|
+
~schemaReady=admin.adminSchemaPushed,
|
|
2017
2020
|
~opts={},
|
|
2018
2021
|
)
|
|
2019
2022
|
| None => ()
|
|
@@ -2032,6 +2035,7 @@ module MakeWithConfig = (
|
|
|
2032
2035
|
Platform_ApiFragments_Lambda.make(
|
|
2033
2036
|
~api=platformApi,
|
|
2034
2037
|
~apiFragmentRegistryTableName=r.name,
|
|
2038
|
+
~schemaReady=admin.adminSchemaPushed,
|
|
2035
2039
|
~opts={},
|
|
2036
2040
|
)
|
|
2037
2041
|
| None => ()
|
package/src/Platform.res.mjs
CHANGED
|
@@ -1134,14 +1134,14 @@ function MakeWithConfig(Config) {
|
|
|
1134
1134
|
if (rm !== undefined) {
|
|
1135
1135
|
let r$1 = rm.queryDb.resources[0];
|
|
1136
1136
|
if (r$1 !== undefined) {
|
|
1137
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, {});
|
|
1137
|
+
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
1138
1138
|
}
|
|
1139
1139
|
}
|
|
1140
1140
|
let rm$1 = admin.stateViewSlicesOutputs["ApiFragments"];
|
|
1141
1141
|
if (rm$1 !== undefined) {
|
|
1142
1142
|
let r$2 = rm$1.queryDb.resources[0];
|
|
1143
1143
|
if (r$2 !== undefined) {
|
|
1144
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, {});
|
|
1144
|
+
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
1145
1145
|
}
|
|
1146
1146
|
}
|
|
1147
1147
|
let pluginComponents = plugins.map(plugin => plugin.make());
|
|
@@ -1274,14 +1274,14 @@ function MakeWithConfig(Config) {
|
|
|
1274
1274
|
if (rm !== undefined) {
|
|
1275
1275
|
let r$1 = rm.queryDb.resources[0];
|
|
1276
1276
|
if (r$1 !== undefined) {
|
|
1277
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, {});
|
|
1277
|
+
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
1278
1278
|
}
|
|
1279
1279
|
}
|
|
1280
1280
|
let rm$1 = admin.stateViewSlicesOutputs["ApiFragments"];
|
|
1281
1281
|
if (rm$1 !== undefined) {
|
|
1282
1282
|
let r$2 = rm$1.queryDb.resources[0];
|
|
1283
1283
|
if (r$2 !== undefined) {
|
|
1284
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, {});
|
|
1284
|
+
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
1285
1285
|
}
|
|
1286
1286
|
}
|
|
1287
1287
|
if (Config.splitApi) {
|
|
@@ -2510,14 +2510,14 @@ function Make($star) {
|
|
|
2510
2510
|
if (rm !== undefined) {
|
|
2511
2511
|
let r$1 = rm.queryDb.resources[0];
|
|
2512
2512
|
if (r$1 !== undefined) {
|
|
2513
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, {});
|
|
2513
|
+
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
2514
2514
|
}
|
|
2515
2515
|
}
|
|
2516
2516
|
let rm$1 = admin.stateViewSlicesOutputs["ApiFragments"];
|
|
2517
2517
|
if (rm$1 !== undefined) {
|
|
2518
2518
|
let r$2 = rm$1.queryDb.resources[0];
|
|
2519
2519
|
if (r$2 !== undefined) {
|
|
2520
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, {});
|
|
2520
|
+
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
2521
2521
|
}
|
|
2522
2522
|
}
|
|
2523
2523
|
let pluginComponents = plugins.map(plugin => plugin.make());
|
|
@@ -2638,14 +2638,14 @@ function Make($star) {
|
|
|
2638
2638
|
if (rm !== undefined) {
|
|
2639
2639
|
let r$1 = rm.queryDb.resources[0];
|
|
2640
2640
|
if (r$1 !== undefined) {
|
|
2641
|
-
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, {});
|
|
2641
|
+
Platform_UIFragments_Lambda$ReventlessAws.make(platformApi, r$1.name, admin.adminSchemaPushed, {});
|
|
2642
2642
|
}
|
|
2643
2643
|
}
|
|
2644
2644
|
let rm$1 = admin.stateViewSlicesOutputs["ApiFragments"];
|
|
2645
2645
|
if (rm$1 !== undefined) {
|
|
2646
2646
|
let r$2 = rm$1.queryDb.resources[0];
|
|
2647
2647
|
if (r$2 !== undefined) {
|
|
2648
|
-
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, {});
|
|
2648
|
+
Platform_ApiFragments_Lambda$ReventlessAws.make(platformApi, r$2.name, admin.adminSchemaPushed, {});
|
|
2649
2649
|
}
|
|
2650
2650
|
}
|
|
2651
2651
|
Pulumi$Pulumi.$$export("platformApiId", Output$Pulumi.flatMap(platformApi, api => api.id));
|
|
@@ -67,6 +67,10 @@ export function response(ctx) {
|
|
|
67
67
|
let make = (
|
|
68
68
|
~api: Pulumi.Output.t<AppSync.GraphQLApi.t>,
|
|
69
69
|
~apiFragmentRegistryTableName: Pulumi.Output.t<string>,
|
|
70
|
+
// Resolves when the admin-base schema push has completed and the API is ACTIVE
|
|
71
|
+
// (Platform_Admin.adminSchemaPushed). CreateResolver is gated on it so it never
|
|
72
|
+
// races StartSchemaCreation on this first-ever-deployed field.
|
|
73
|
+
~schemaReady: Pulumi.Output.t<unit>,
|
|
70
74
|
~opts: Pulumi.ComponentResource.options,
|
|
71
75
|
) => {
|
|
72
76
|
let opts = opts->ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions
|
|
@@ -200,13 +204,19 @@ let make = (
|
|
|
200
204
|
~opts=Some(opts),
|
|
201
205
|
)
|
|
202
206
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
// Create the resolver only after the admin schema push is ACTIVE — otherwise
|
|
208
|
+
// CreateResolver races StartSchemaCreation and fails with "No field named
|
|
209
|
+
// Platform_ApiFragments found on type Query" the first time this field ships.
|
|
210
|
+
let _resolver =
|
|
211
|
+
schemaReady->Pulumi.Output.apply(() =>
|
|
212
|
+
AppSync_Resolver_Native.makeUnitJsResolver(
|
|
213
|
+
~name=name ++ "Resolver",
|
|
214
|
+
~api,
|
|
215
|
+
~dataSourceName=dataSource.name->Pulumi.Output.asInput,
|
|
216
|
+
~type_="Query"->Pulumi.Input.make,
|
|
217
|
+
~field="Platform_ApiFragments"->Pulumi.Input.make,
|
|
218
|
+
~code=resolverCode,
|
|
219
|
+
~opts,
|
|
220
|
+
)
|
|
221
|
+
)
|
|
212
222
|
}
|
|
@@ -68,7 +68,7 @@ export function response(ctx) {
|
|
|
68
68
|
}
|
|
69
69
|
`;
|
|
70
70
|
|
|
71
|
-
function make(api, apiFragmentRegistryTableName, opts) {
|
|
71
|
+
function make(api, apiFragmentRegistryTableName, schemaReady, opts) {
|
|
72
72
|
let opts$1 = Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions(opts);
|
|
73
73
|
let name = "PlatformApiFragments";
|
|
74
74
|
let lambdaRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "Lambda", Pulumi.output(AWS$ReventlessAws.Lambda.principal), opts$1);
|
|
@@ -191,7 +191,7 @@ export async function handler() {
|
|
|
191
191
|
},
|
|
192
192
|
serviceRoleArn: dataSourceRole.arn
|
|
193
193
|
}, opts$1);
|
|
194
|
-
AppSync_Resolver_Native$ReventlessAws.makeUnitJsResolver(name + "Resolver", api, dataSource.name, "Query", "Platform_ApiFragments", resolverCode, opts$1);
|
|
194
|
+
schemaReady.apply(() => AppSync_Resolver_Native$ReventlessAws.makeUnitJsResolver(name + "Resolver", api, dataSource.name, "Query", "Platform_ApiFragments", resolverCode, opts$1));
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
export {
|
|
@@ -90,6 +90,11 @@ export function response(ctx) {
|
|
|
90
90
|
let make = (
|
|
91
91
|
~api: Pulumi.Output.t<AppSync.GraphQLApi.t>,
|
|
92
92
|
~uiFragmentRegistryTableName: Pulumi.Output.t<string>,
|
|
93
|
+
// Resolves when the admin-base schema push has completed and the API is ACTIVE
|
|
94
|
+
// (Platform_Admin.adminSchemaPushed). CreateResolver is gated on it so it never
|
|
95
|
+
// races StartSchemaCreation — the same first-deploy race that clobbered
|
|
96
|
+
// Platform_ApiFragments; harmless here today only because the field predates it.
|
|
97
|
+
~schemaReady: Pulumi.Output.t<unit>,
|
|
93
98
|
~opts: Pulumi.ComponentResource.options,
|
|
94
99
|
) => {
|
|
95
100
|
let opts = opts->ReventlessCore.Util.Pulumi.ComponentResourceOptions.toCustomResourceOptions
|
|
@@ -223,13 +228,18 @@ let make = (
|
|
|
223
228
|
~opts=Some(opts),
|
|
224
229
|
)
|
|
225
230
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
231
|
+
// Create the resolver only after the admin schema push is ACTIVE — otherwise
|
|
232
|
+
// CreateResolver races StartSchemaCreation the first time this field ships.
|
|
233
|
+
let _resolver =
|
|
234
|
+
schemaReady->Pulumi.Output.apply(() =>
|
|
235
|
+
AppSync_Resolver_Native.makeUnitJsResolver(
|
|
236
|
+
~name=name ++ "Resolver",
|
|
237
|
+
~api,
|
|
238
|
+
~dataSourceName=dataSource.name->Pulumi.Output.asInput,
|
|
239
|
+
~type_="Query"->Pulumi.Input.make,
|
|
240
|
+
~field="Platform_UIFragments"->Pulumi.Input.make,
|
|
241
|
+
~code=resolverCode,
|
|
242
|
+
~opts,
|
|
243
|
+
)
|
|
244
|
+
)
|
|
235
245
|
}
|
|
@@ -94,7 +94,7 @@ export function response(ctx) {
|
|
|
94
94
|
}
|
|
95
95
|
`;
|
|
96
96
|
|
|
97
|
-
function make(api, uiFragmentRegistryTableName, opts) {
|
|
97
|
+
function make(api, uiFragmentRegistryTableName, schemaReady, opts) {
|
|
98
98
|
let opts$1 = Util_Pulumi$ReventlessCore.ComponentResourceOptions.toCustomResourceOptions(opts);
|
|
99
99
|
let name = "PlatformUIFragments";
|
|
100
100
|
let lambdaRole = IAM$PulumiAws.Role.makeWithDefaultPolicy(name + "Lambda", Pulumi.output(AWS$ReventlessAws.Lambda.principal), opts$1);
|
|
@@ -243,7 +243,7 @@ export async function handler() {
|
|
|
243
243
|
},
|
|
244
244
|
serviceRoleArn: dataSourceRole.arn
|
|
245
245
|
}, opts$1);
|
|
246
|
-
AppSync_Resolver_Native$ReventlessAws.makeUnitJsResolver(name + "Resolver", api, dataSource.name, "Query", "Platform_UIFragments", resolverCode, opts$1);
|
|
246
|
+
schemaReady.apply(() => AppSync_Resolver_Native$ReventlessAws.makeUnitJsResolver(name + "Resolver", api, dataSource.name, "Query", "Platform_UIFragments", resolverCode, opts$1));
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
export {
|