@reventlessdev/reventless-infra 3.0.0-alpha.84 → 3.0.0-alpha.86

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.86 (2026-07-05)
7
+
8
+ ### Features
9
+
10
+ * **reventless-aws:** opt-in [@aws](https://github.com/aws)_iam dual-auth for deploy-time AppSync callers ([94037f1](https://github.com/ReventlessDev/reventless-core/commit/94037f17ae48a33415b02e8e7b178906be8b59a4))
11
+
12
+
13
+ # 3.0.0-alpha.85 (2026-07-05)
14
+
15
+ ### Features
16
+
17
+ * **postgres:** add reventless-postgres backend + local-platform integration ([6913200](https://github.com/ReventlessDev/reventless-core/commit/69132001f9271e832a5af33416acd5b645feaf47))
18
+
19
+
6
20
  # 3.0.0-alpha.84 (2026-07-03)
7
21
 
8
22
  **Note:** Version bump only for package @reventlessdev/reventless-infra
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-infra",
3
- "version": "3.0.0-alpha.84",
3
+ "version": "3.0.0-alpha.86",
4
4
  "description": "Infrastructure types for Reventless framework",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -45,6 +45,16 @@ type mutationSchemaEntry = {
45
45
  `docs/plans/host-ui-login-core.md`). In-memory enforcement still happens
46
46
  at the resolver layer via the same `commandAuthorization` function. */
47
47
  fieldPermissions?: dict<Reventless.Authorization.permission>,
48
+ /** Opt a mutation field into deploy-time IAM (SigV4) invocation in addition to
49
+ its Cognito authorization. When `true`, the AWS provider emits the
50
+ multi-auth directive form `@aws_cognito_user_pools(cognito_groups: [...])
51
+ @aws_iam` on the field instead of the single-mode `@aws_auth(...)`, so a
52
+ deploy-time system caller signing with ambient AWS credentials
53
+ (`Util_AppSync_Caller`) is authorized alongside the console UI. Opt-in per
54
+ field — only fields a system caller actually invokes should set this, and
55
+ the IAM principal must be scoped by the API resource policy / deploy-role
56
+ policy (see `docs/guides/appsync-iam-system-caller.md`). Default `false`. */
57
+ iamCallable?: bool,
48
58
  description?: string,
49
59
  linkedViews?: array<string>,
50
60
  consistencyRead?: string,
@@ -76,6 +86,11 @@ type querySchemaEntry = {
76
86
  `docs/plans/host-ui-login-core.md`). In-memory enforcement happens at
77
87
  the QueryDb resolver via the same field. */
78
88
  permission?: Reventless.Authorization.permission,
89
+ /** Opt the single-id and list query fields into deploy-time IAM (SigV4)
90
+ invocation in addition to their Cognito authorization. See
91
+ `mutationSchemaEntry.iamCallable` for the emitted directive form and
92
+ scoping requirements. Default `false`. */
93
+ iamCallable?: bool,
79
94
  excludeFields?: array<string>,
80
95
  description?: string,
81
96
  includeIdParam?: bool,
@@ -59,16 +59,31 @@ type read = (
59
59
  ~after: Reventless.DcbTag.sequencePosition=?,
60
60
  ) => promise<readResult>
61
61
 
62
+ /**
63
+ Typed DCB append outcome — mirrors `EventLog.appendError`. `Conflict` is the
64
+ optimistic-concurrency sentinel (the append-condition failed: a matching event
65
+ was written since `condition.after`), which the slice callback retries by
66
+ re-reading and re-deciding. Every other failure is a `StorageFailure` carrying
67
+ its message. Replaces the former string sentinel that conflated the two — a
68
+ storage error whose text happened to contain "conflict" would have been retried
69
+ forever, and backends disagreed on the sentinel's casing so conflict metrics were
70
+ misclassified across backends.
71
+ */
72
+ type appendError =
73
+ | Conflict
74
+ | StorageFailure(string)
75
+
62
76
  /**
63
77
  Appends raw events to the DCB log with optional optimistic-concurrency checking.
64
78
 
65
- Returns `Ok(position)` on success or `Error(reason)` if the append condition
66
- was violated (i.e. the log was modified since `condition.after`).
79
+ Returns `Ok(position)` on success or `Error(Conflict)` if the append condition
80
+ was violated (i.e. the log was modified since `condition.after`), or
81
+ `Error(StorageFailure(_))` on any other failure.
67
82
  */
68
83
  type append = (
69
84
  array<rawEvent>,
70
85
  ~condition: Reventless.DcbTag.appendCondition=?,
71
- ) => promise<result<Reventless.DcbTag.sequencePosition, string>>
86
+ ) => promise<result<Reventless.DcbTag.sequencePosition, appendError>>
72
87
 
73
88
  /**
74
89
  Streams events from the DCB log matching the given query.
@@ -91,7 +106,7 @@ Use for high-throughput batch imports.
91
106
  type appendStream = (
92
107
  Stream.t<rawEvent, string, unit>,
93
108
  ~condition: Reventless.DcbTag.appendCondition=?,
94
- ) => Effect.t<result<Reventless.DcbTag.sequencePosition, string>, string, unit>
109
+ ) => Effect.t<result<Reventless.DcbTag.sequencePosition, appendError>, string, unit>
95
110
 
96
111
  /**
97
112
  Runtime operations exposed by a `DcbEventLog` component.