@reventlessdev/reventless-aws 3.0.0-alpha.202 → 3.0.0-alpha.204

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 CHANGED
@@ -3,6 +3,20 @@
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.204 (2026-07-13)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **admin:** skip over-long Source-C subscriptions on the ApiFragmentRegistry aggregate (deploy [#6](https://github.com/ReventlessDev/reventless-core/issues/6)) ([0977120](https://github.com/ReventlessDev/reventless-core/commit/0977120d5c6cb2331d9384747d136fe99855690e))
11
+
12
+
13
+ # 3.0.0-alpha.203 (2026-07-13)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **admin:** orphan resolvers on the ApiFragmentRegistry aggregate deploy (deploy [#5](https://github.com/ReventlessDev/reventless-core/issues/5)) ([9572344](https://github.com/ReventlessDev/reventless-core/commit/95723443bad8ae8143ceaea209827ee5bd4d0ae5)), closes [#2](https://github.com/ReventlessDev/reventless-core/issues/2)
18
+
19
+
6
20
  # 3.0.0-alpha.202 (2026-07-13)
7
21
 
8
22
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-aws",
3
- "version": "3.0.0-alpha.202",
3
+ "version": "3.0.0-alpha.204",
4
4
  "description": "AWS adapters for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -9,16 +9,16 @@
9
9
  "sury": "11.0.0-alpha.4",
10
10
  "uuid": "^13.0.0",
11
11
  "@reventlessdev/rescript-effect": "0.1.0-alpha.27",
12
- "@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
13
- "@reventlessdev/rescript-jest": "1.0.0-alpha.7",
14
12
  "@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
13
+ "@reventlessdev/rescript-jest": "1.0.0-alpha.7",
15
14
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
15
+ "@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
16
16
  "@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
17
- "@reventlessdev/reventless-core": "3.0.0-alpha.161",
17
+ "@reventlessdev/reventless-core": "3.0.0-alpha.163",
18
18
  "@reventlessdev/reventless-infra": "3.0.0-alpha.98",
19
- "@reventlessdev/reventless-postgres": "3.0.0-alpha.25",
20
- "@reventlessdev/reventless-spec": "3.0.0-alpha.76",
21
- "@reventlessdev/reventless-interop": "3.0.0-alpha.26"
19
+ "@reventlessdev/reventless-interop": "3.0.0-alpha.26",
20
+ "@reventlessdev/reventless-postgres": "3.0.0-alpha.27",
21
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.76"
22
22
  },
23
23
  "devDependencies": {
24
24
  "rescript": "^12.3.0",
package/src/Platform.res CHANGED
@@ -1499,7 +1499,13 @@ module MakeWithConfig = (
1499
1499
  let moduleUrl: string = ReventlessCore.ApiFragmentsProjection.moduleUrl
1500
1500
  let mappings: array<module(Mapping)> = ReventlessCore.ApiFragmentsProjection.mappings
1501
1501
  }
1502
- module ApiFragmentsReadModel = ReadModel_Builder_Single_Stream.Make(
1502
+ // NoResolver builder: the ApiFragments RM's query surface is the dedicated
1503
+ // Platform_ApiFragments Lambda (declared in baseFragment), NOT an auto-generated
1504
+ // Connection resolver — so it must not emit AppSync query resolvers (they'd orphan
1505
+ // against the static pushed baseFragment: "No field named apiFragments on type Query").
1506
+ // Still stream-projects the table from the aggregate's event stream. Mirrors local's
1507
+ // MakeNoResolver.
1508
+ module ApiFragmentsReadModel = ReadModel_Builder_NoResolver_Stream.Make(
1503
1509
  ReventlessCore.ApiFragmentsReadModelSpec,
1504
1510
  ApiFragmentsReadModelMappings,
1505
1511
  )
@@ -101,6 +101,7 @@ import * as CommandGeneratorResolvers_AppSync$ReventlessAws from "./adapter/Comm
101
101
  import * as EventTopicPublisher_DynamoDbStream$ReventlessAws from "./adapter/EventTopic/EventTopicPublisher_DynamoDbStream.res.mjs";
102
102
  import * as InboundTranslationResolvers_AppSync$ReventlessAws from "./adapter/CommandGenerator/InboundTranslationResolvers_AppSync.res.mjs";
103
103
  import * as PluginExtensionPointRuntime_Builder$ReventlessAws from "./plugin/runtime/PluginExtensionPointRuntime_Builder.res.mjs";
104
+ import * as ReadModel_Builder_NoResolver_Stream$ReventlessAws from "./components/ReadModel_Builder_NoResolver_Stream.res.mjs";
104
105
  import * as EventCollectorRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs";
105
106
  import * as Platform_ComponentDefinitions_Lambda$ReventlessAws from "./adapter/Api/Platform_ComponentDefinitions_Lambda.res.mjs";
106
107
  import * as StateViewSliceRuntime_Builder_Single$ReventlessAws from "./adapter/Runtime/StateViewSliceRuntime_Builder_Single.res.mjs";
@@ -983,7 +984,7 @@ function MakeWithConfig(Config) {
983
984
  moduleUrl: ApiFragmentsProjection$ReventlessCore.moduleUrl,
984
985
  mappings: ApiFragmentsProjection$ReventlessCore.mappings
985
986
  };
986
- let ApiFragmentsReadModel = ReadModel_Builder_Single_Stream$ReventlessAws.Make({
987
+ let ApiFragmentsReadModel = ReadModel_Builder_NoResolver_Stream$ReventlessAws.Make({
987
988
  Id: Id$Reventless.$$String,
988
989
  name: ApiFragmentsReadModelSpec$ReventlessCore.name,
989
990
  moduleUrl: ApiFragmentsReadModelSpec$ReventlessCore.moduleUrl,
@@ -2420,7 +2421,7 @@ function Make($star) {
2420
2421
  moduleUrl: ApiFragmentsProjection$ReventlessCore.moduleUrl,
2421
2422
  mappings: ApiFragmentsProjection$ReventlessCore.mappings
2422
2423
  };
2423
- let ApiFragmentsReadModel = ReadModel_Builder_Single_Stream$ReventlessAws.Make({
2424
+ let ApiFragmentsReadModel = ReadModel_Builder_NoResolver_Stream$ReventlessAws.Make({
2424
2425
  Id: Id$Reventless.$$String,
2425
2426
  name: ApiFragmentsReadModelSpec$ReventlessCore.name,
2426
2427
  moduleUrl: ApiFragmentsReadModelSpec$ReventlessCore.moduleUrl,
@@ -150,9 +150,18 @@ let make: ReventlessCore.CommandGenerator_Adapter.resolversMaker<api, Util.Lambd
150
150
  // fragment's subscription-source metadata) handles
151
151
  // delivery. AWS requires a dataSourceName even on UNIT subscription resolvers,
152
152
  // so we reuse the mutation's data source (its code never executes for subs).
153
+ //
154
+ // Skip fields whose `on<field>` subscription name exceeds AppSync's 50-char cap — the
155
+ // pushed SDL drops those Source-C subscription fields (Plugin_SubscriptionSchema.sourceCFields
156
+ // applies the SAME gate), so creating their resolvers would fail CreateResolver NotFound
157
+ // (e.g. the admin-aggregate `Platform_ApiFragmentRegistry_DeregisterApiFragment` → 52 chars).
158
+ let subscribableFields =
159
+ fields->Array.filter(field =>
160
+ `on${field}`->String.length <= ReventlessCore.Api_Naming.appSyncSubscriptionMaxLen
161
+ )
153
162
  CommandSubscriptionResolvers_AppSync.make(
154
163
  ~api,
155
- ~mutationFields=fields,
164
+ ~mutationFields=subscribableFields,
156
165
  ~dataSourceName=dataSource.name->Pulumi.Output.asInput,
157
166
  ~opts,
158
167
  )
@@ -11,6 +11,7 @@ import * as Lambda$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/Lambda
11
11
  import * as AWS$ReventlessAws from "../AWS.res.mjs";
12
12
  import * as Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Adapter.res.mjs";
13
13
  import * as PolicyDocument$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/IAM/PolicyDocument.res.mjs";
14
+ import * as Api_Naming$ReventlessCore from "@reventlessdev/reventless-core/src/components/Api/Api_Naming.res.mjs";
14
15
  import * as Util_AppSync$ReventlessAws from "../../util/Util_AppSync.res.mjs";
15
16
  import * as Util_Pulumi$ReventlessCore from "@reventlessdev/reventless-core/src/util/Util_Pulumi.res.mjs";
16
17
  import * as Util_Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/util/Util_Adapter.res.mjs";
@@ -78,7 +79,8 @@ function make(name, api, fields, param, runtime, resources, opts) {
78
79
  let commandName = Stdlib_String.capitalize(Stdlib_Option.getOr(parts[parts.length - 1 | 0], field));
79
80
  return AppSync_Resolver_Retrying$ReventlessAws.makeUnitJsResolver(Stdlib_String.capitalize(field), api, dataSource.name, "Mutation", field, AppSync_Resolver_Functions$PulumiAws.invokeCommandGenerator(commandName), opts$1);
80
81
  });
81
- CommandSubscriptionResolvers_AppSync$ReventlessAws.make(api, fields, dataSource.name, opts$1);
82
+ let subscribableFields = fields.filter(field => (`on` + field).length <= Api_Naming$ReventlessCore.appSyncSubscriptionMaxLen);
83
+ CommandSubscriptionResolvers_AppSync$ReventlessAws.make(api, subscribableFields, dataSource.name, opts$1);
82
84
  let resources$1 = resolvers.map(Util_AppSync$ReventlessAws.toResourceNative);
83
85
  return {
84
86
  resources: resources$1