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

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,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.205 (2026-07-13)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **admin:** type-level [@aws](https://github.com/aws)_iam on Platform_ApiFragmentEntry for the SigV4 waiter (deploy [#7](https://github.com/ReventlessDev/reventless-core/issues/7)) ([927a93b](https://github.com/ReventlessDev/reventless-core/commit/927a93b550f9f3f56dca93810cafa9575663a0e9))
11
+
12
+
6
13
  # 3.0.0-alpha.204 (2026-07-13)
7
14
 
8
15
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-aws",
3
- "version": "3.0.0-alpha.204",
3
+ "version": "3.0.0-alpha.205",
4
4
  "description": "AWS adapters for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -8,16 +8,16 @@
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-aws-sdk": "2.2.0-alpha.21",
11
12
  "@reventlessdev/rescript-effect": "0.1.0-alpha.27",
12
- "@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
13
13
  "@reventlessdev/rescript-jest": "1.0.0-alpha.7",
14
+ "@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
14
15
  "@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.163",
18
17
  "@reventlessdev/reventless-infra": "3.0.0-alpha.98",
19
- "@reventlessdev/reventless-interop": "3.0.0-alpha.26",
18
+ "@reventlessdev/reventless-core": "3.0.0-alpha.163",
20
19
  "@reventlessdev/reventless-postgres": "3.0.0-alpha.27",
20
+ "@reventlessdev/reventless-interop": "3.0.0-alpha.26",
21
21
  "@reventlessdev/reventless-spec": "3.0.0-alpha.76"
22
22
  },
23
23
  "devDependencies": {
@@ -119,11 +119,20 @@ let injectAwsAuthAll = (
119
119
  }
120
120
 
121
121
  // Shared traversal types every callable surface reaches — `PageInfo` (relay
122
- // connections, injected by the stitcher) and the `CommandResult` members
123
- // (mutation returns, deduped across fragments by the stitcher). Stamped once on
124
- // the ASSEMBLED SDL: per-fragment stamping would race the stitcher's first-wins
125
- // dedupe against unstamped sibling copies.
126
- let sharedIamTypeNames = ["PageInfo", "CommandAccepted", "CommandRejected", "CommandPending"]
122
+ // connections, injected by the stitcher), the `CommandResult` members (mutation
123
+ // returns, deduped across fragments by the stitcher), and `Platform_ApiFragmentEntry`
124
+ // (the return type of the IAM-callable `Platform_ApiFragments` status query the deploy
125
+ // waiter polls via SigV4 — without the type-level `@aws_iam` the SigV4 caller reaches the
126
+ // query field but is "Not Authorized to access <field> on type Platform_ApiFragmentEntry").
127
+ // Stamped once on the ASSEMBLED SDL: per-fragment stamping would race the stitcher's
128
+ // first-wins dedupe against unstamped sibling copies.
129
+ let sharedIamTypeNames = [
130
+ "PageInfo",
131
+ "CommandAccepted",
132
+ "CommandRejected",
133
+ "CommandPending",
134
+ "Platform_ApiFragmentEntry",
135
+ ]
127
136
 
128
137
  let stampSharedIamTypes = (sdl: string): string =>
129
138
  sharedIamTypeNames->Array.reduce(sdl, (acc, name) =>
@@ -80,7 +80,8 @@ let sharedIamTypeNames = [
80
80
  "PageInfo",
81
81
  "CommandAccepted",
82
82
  "CommandRejected",
83
- "CommandPending"
83
+ "CommandPending",
84
+ "Platform_ApiFragmentEntry"
84
85
  ];
85
86
 
86
87
  function stampSharedIamTypes(sdl) {
@@ -187,3 +187,21 @@ describe("AppSync_SdlDecorate.planAwsPushes", () => {
187
187
  expect(plan.sdl)->toContain("Catalog_AddProduct")
188
188
  })
189
189
  })
190
+
191
+ describe("AppSync_SdlDecorate.stampSharedIamTypes", () => {
192
+ // Regression: the deploy waiter polls the IAM-callable Platform_ApiFragments query via
193
+ // SigV4; its return type Platform_ApiFragmentEntry must carry the type-level @aws_iam or
194
+ // the SigV4 caller reaches the query field but gets "Not Authorized to access <field> on
195
+ // type Platform_ApiFragmentEntry" (deploy validation #7).
196
+ testSync("stamps Platform_ApiFragmentEntry with dual-auth", () => {
197
+ let sdl = AppSync_SdlDecorate.stampSharedIamTypes(
198
+ "type Platform_ApiFragmentEntry {\n pluginId: String!\n pushStatus: String!\n}",
199
+ )
200
+ expect(sdl)->toContain("type Platform_ApiFragmentEntry @aws_cognito_user_pools @aws_iam {")
201
+ })
202
+
203
+ testSync("still stamps the CommandResult members", () => {
204
+ let sdl = AppSync_SdlDecorate.stampSharedIamTypes("type CommandAccepted {\n id: ID!\n}")
205
+ expect(sdl)->toContain("type CommandAccepted @aws_cognito_user_pools @aws_iam {")
206
+ })
207
+ })
@@ -166,6 +166,17 @@ globalThis.describe("AppSync_SdlDecorate.planAwsPushes", () => {
166
166
  });
167
167
  });
168
168
 
169
+ globalThis.describe("AppSync_SdlDecorate.stampSharedIamTypes", () => {
170
+ globalThis.test("stamps Platform_ApiFragmentEntry with dual-auth", () => {
171
+ let sdl = AppSync_SdlDecorate$ReventlessAws.stampSharedIamTypes("type Platform_ApiFragmentEntry {\n pluginId: String!\n pushStatus: String!\n}");
172
+ globalThis.expect(sdl).toContain("type Platform_ApiFragmentEntry @aws_cognito_user_pools @aws_iam {");
173
+ });
174
+ globalThis.test("still stamps the CommandResult members", () => {
175
+ let sdl = AppSync_SdlDecorate$ReventlessAws.stampSharedIamTypes("type CommandAccepted {\n id: ID!\n}");
176
+ globalThis.expect(sdl).toContain("type CommandAccepted @aws_cognito_user_pools @aws_iam {");
177
+ });
178
+ });
179
+
169
180
  export {
170
181
  sources,
171
182
  stitchedSdl,