@reventlessdev/reventless-aws 3.0.0-alpha.373 → 3.0.0-alpha.375

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,22 @@
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.375 (2026-10-08)
7
+
8
+ **Note:** Version bump only for package @reventlessdev/reventless-aws
9
+
10
+
11
+
12
+
13
+
14
+ # 3.0.0-alpha.374 (2026-10-06)
15
+
16
+ **Note:** Version bump only for package @reventlessdev/reventless-aws
17
+
18
+
19
+
20
+
21
+
6
22
  # 3.0.0-alpha.373 (2026-10-05)
7
23
 
8
24
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-aws",
3
- "version": "3.0.0-alpha.373",
3
+ "version": "3.0.0-alpha.375",
4
4
  "description": "AWS adapters for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "bin": {
@@ -22,19 +22,19 @@
22
22
  "sury": "11.0.0",
23
23
  "uuid": "^13.0.0",
24
24
  "yaml": "^2.8.3",
25
- "@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.28",
26
- "@reventlessdev/rescript-jest": "1.0.0-alpha.11",
25
+ "@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.29",
27
26
  "@reventlessdev/rescript-effect": "0.1.0-alpha.34",
28
- "@reventlessdev/rescript-node": "2.0.0-alpha.20",
29
- "@reventlessdev/rescript-pulumi-aws": "3.0.0-alpha.23",
27
+ "@reventlessdev/rescript-node": "2.0.0-alpha.21",
28
+ "@reventlessdev/rescript-pulumi-aws": "3.0.0-alpha.24",
29
+ "@reventlessdev/rescript-jest": "1.0.0-alpha.11",
30
30
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.23",
31
- "@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
32
31
  "@reventlessdev/rescript-web": "1.0.0-alpha.7",
33
- "@reventlessdev/reventless-core": "3.0.0-alpha.287",
34
- "@reventlessdev/reventless-postgres": "3.0.0-alpha.151",
35
- "@reventlessdev/reventless-infra": "3.0.0-alpha.185",
32
+ "@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
33
+ "@reventlessdev/reventless-core": "3.0.0-alpha.289",
34
+ "@reventlessdev/reventless-infra": "3.0.0-alpha.186",
35
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.158",
36
36
  "@reventlessdev/reventless-interop": "3.0.0-alpha.39",
37
- "@reventlessdev/reventless-spec": "3.0.0-alpha.157"
37
+ "@reventlessdev/reventless-postgres": "3.0.0-alpha.153"
38
38
  },
39
39
  "devDependencies": {
40
40
  "rescript": "12.3.1",
package/src/Platform.res CHANGED
@@ -2543,7 +2543,7 @@ module MakeWithConfig = (
2543
2543
  }
2544
2544
 
2545
2545
  // Where a caller records the role they want to act as
2546
- // (docs/plans/active-role-narrows-the-token.md §6). The mutation only writes
2546
+ // (docs/plans/done/active-role-narrows-the-token.md §6). The mutation only writes
2547
2547
  // a preference; the pre-token-generation trigger reads the row and re-checks
2548
2548
  // it against real membership before narrowing anything, so this door grants
2549
2549
  // nobody anything on its own.
@@ -149,7 +149,7 @@ let _resolveUncached = (): cognitoUserPool => {
149
149
  // Provisioned ahead of the pool in both pool modes: the pre-token-generation
150
150
  // trigger reads these rows, and in auto mode the pool is declared carrying the
151
151
  // trigger's ARN — so table → trigger → pool is a forced order, not a choice.
152
- // See [docs/plans/active-role-narrows-the-token.md] §6.
152
+ // See [docs/plans/done/active-role-narrows-the-token.md] §6.
153
153
  //
154
154
  // Unconditional, including for a unified-API platform that mounts no
155
155
  // `Platform_SetActiveRole` and so can never write a row.
@@ -174,7 +174,7 @@ let _resolveUncached = (): cognitoUserPool => {
174
174
  // provider: named by derivation from the provider id, looked up rather than
175
175
  // created, and provisioned outside every stack alongside the pool itself. See
176
176
  // [Auth_ActiveRoleStore.chooseStore] and
177
- // [docs/plans/active-role-store-scoped-to-the-pool.md].
177
+ // [docs/plans/done/active-role-store-scoped-to-the-pool.md].
178
178
  let activeRoleTable = Auth_ActiveRoleStore.resolveTable(
179
179
  ~choice=Auth_ActiveRoleStore.chooseStore(~identityProviderId=existingPoolId),
180
180
  ~opts={},
@@ -363,7 +363,7 @@ let _resolveUncached = (): cognitoUserPool => {
363
363
  //
364
364
  // `Arn` survives the rename on purpose — the value *is* an ARN, and `urn` in a
365
365
  // Pulumi codebase already means the Pulumi URN every resource carries. See
366
- // [docs/plans/active-role-store-scoped-to-the-pool.md] step 7.
366
+ // [docs/plans/done/active-role-store-scoped-to-the-pool.md] step 7.
367
367
  let managedStr = Pulumi.Output.make(result.managed ? "true" : "false")
368
368
  let regionOutput = Pulumi.Output.make(regionStr)
369
369
 
@@ -24,7 +24,7 @@
24
24
  writes — every role switch reporting success and doing nothing. So the
25
25
  describe this already performs is also read for *what is attached*, and a
26
26
  slot held by anything else fails the deploy naming it. See [classifySlot] and
27
- [docs/plans/active-role-store-scoped-to-the-pool.md].
27
+ [docs/plans/done/active-role-store-scoped-to-the-pool.md].
28
28
 
29
29
  🚨 **`UpdateUserPool` resets by omission.** The API requires "a value for all
30
30
  parameters that you don't want set to a default value". An attach that sends
@@ -1,5 +1,5 @@
1
1
  // The role a caller chose to act as, as server-side state — and the one door
2
- // that writes it. See [docs/plans/active-role-narrows-the-token.md] §6.
2
+ // that writes it. See [docs/plans/done/active-role-narrows-the-token.md] §6.
3
3
  //
4
4
  // Why state rather than a parameter on the token request: Cognito "doesn't
5
5
  // include data from the ClientMetadata parameter in AdminInitiateAuth and
@@ -32,7 +32,7 @@
32
32
  //
33
33
  // 🚨 **The rows follow the identity provider, not the stack** — see
34
34
  // [ReventlessCore.Auth_ActiveRole] for the contract and
35
- // [docs/plans/active-role-store-scoped-to-the-pool.md] for the defect that
35
+ // [docs/plans/done/active-role-store-scoped-to-the-pool.md] for the defect that
36
36
  // produced it. A pool holds one pre-token-generation trigger, so two stacks
37
37
  // sharing a pool with a table each have the winning trigger reading rows the
38
38
  // serving resolver never wrote: every switch succeeds and does nothing.
@@ -2,7 +2,7 @@
2
2
  // and Pulumi-free so it ships as an EntryPoint module (`Auth_ActiveRoleStore`
3
3
  // bundles it and attaches it as the domain API's Lambda data source). See
4
4
  // [Upload_Presign_S3_Ops.res] for why an EntryPoint rather than a serialized
5
- // closure, and [docs/plans/active-role-narrows-the-token.md] §6 for the design.
5
+ // closure, and [docs/plans/done/active-role-narrows-the-token.md] §6 for the design.
6
6
  //
7
7
  // What this writes is a *preference*, not a token. Cognito mints the token, and
8
8
  // the pre-token-generation trigger ([Auth_ActiveRoleTrigger_Ops.res]) reads this
@@ -1,5 +1,5 @@
1
1
  // The active-role store's identity: what it is called, and how its rows are
2
- // keyed. See [docs/plans/active-role-store-scoped-to-the-pool.md].
2
+ // keyed. See [docs/plans/done/active-role-store-scoped-to-the-pool.md].
3
3
  //
4
4
  // 🚨 **One definition, four consumers, and that is the whole reason this file
5
5
  // exists.** The deploy creates or looks the table up ([Auth_ActiveRoleStore]),
@@ -1,7 +1,7 @@
1
1
  // Deploy-time half of the Cognito pre-token-generation trigger — the Lambda that
2
2
  // narrows `cognito:groups` to the role a caller chose. Runtime logic lives in
3
3
  // [Auth_ActiveRoleTrigger_Ops.res]; see
4
- // [docs/plans/active-role-narrows-the-token.md] §6.
4
+ // [docs/plans/done/active-role-narrows-the-token.md] §6.
5
5
  //
6
6
  // `make` provisions the function and its execution role (Logs + a read of the
7
7
  // one role-state table). It does **not** attach itself to a user pool, and does
@@ -1,6 +1,6 @@
1
1
  // Runtime handler for the Cognito **pre token generation** trigger — the AWS
2
2
  // minting point for "acting as one of the roles you hold". See
3
- // [docs/plans/active-role-narrows-the-token.md] §6.
3
+ // [docs/plans/done/active-role-narrows-the-token.md] §6.
4
4
  //
5
5
  // Compiled, type-checked and Pulumi-free so it ships as an EntryPoint module
6
6
  // ([Auth_ActiveRoleTrigger.res] bundles it and attaches it to the user pool).
@@ -29,7 +29,7 @@ let make: ReventlessCore.DcbEventLog_Adapter.storageMaker = (
29
29
  // partition), and a future cross-partition secondary-tag read (Phase 7) goes
30
30
  // `Query` (keys) → `BatchGetItem` (payloads against the base table). KEYS_ONLY
31
31
  // drops the per-GSI event-payload storage multiplier and most of the per-write
32
- // WCU while keeping the index queryable. See docs/plans/dcb-consistency-hardening.md
32
+ // WCU while keeping the index queryable. See docs/plans/done/dcb-consistency-hardening.md
33
33
  // Phase 3.
34
34
  let globalSecondaryIndexes =
35
35
  indexes
@@ -49,7 +49,7 @@ let tagToAttributeName = (tagKey: string) => `tag_${tagKey}`
49
49
  // reads resolve events directly from it. The per-tag `tag_<key>` GSIs are
50
50
  // `KEYS_ONLY` — no reader today, and Phase 7's cross-partition read goes
51
51
  // `Query`(keys) → `BatchGetItem`(payloads). Pure predicate so it is unit-testable
52
- // without the Pulumi deploy layer. See docs/plans/dcb-consistency-hardening.md Phase 3.
52
+ // without the Pulumi deploy layer. See docs/plans/done/dcb-consistency-hardening.md Phase 3.
53
53
  let compositeIndexName = "tag_composite"
54
54
  let indexKeepsFullProjection = (indexName: string): bool => indexName == compositeIndexName
55
55
 
@@ -79,7 +79,7 @@ describe("Auth_ActiveRoleStore_Ops.cognitoLookupName", () => {
79
79
  // Which store this deployment reads and writes. Two cases and no third: a stack
80
80
  // that creates its own provider owns everything attached to it, and a stack given
81
81
  // a provider owns none of it. See
82
- // [docs/plans/active-role-store-scoped-to-the-pool.md].
82
+ // [docs/plans/done/active-role-store-scoped-to-the-pool.md].
83
83
  describe("Auth_ActiveRoleStore.chooseStore", () => {
84
84
  testSync("a stack that creates its own provider keeps its own table", () =>
85
85
  expect(Auth_ActiveRoleStore.chooseStore(~identityProviderId=None))->toEqual(
@@ -16,7 +16,7 @@
16
16
  // is the only thing that proves the fence-scope model (Issue 1 fix) and the
17
17
  // optimistic-concurrency guarantees end-to-end. See
18
18
  // `docs/analysis/dcb-consistency-check-issues.md` and
19
- // `docs/plans/dcb-consistency-hardening.md` (Phase 1).
19
+ // `docs/plans/done/dcb-consistency-hardening.md` (Phase 1).
20
20
 
21
21
  open JestGlobals
22
22