@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 +14 -0
- package/package.json +1 -1
- package/src/components/Api.res +15 -0
- package/src/components/DcbEventLog.res +19 -4
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
package/src/components/Api.res
CHANGED
|
@@ -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(
|
|
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,
|
|
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,
|
|
109
|
+
) => Effect.t<result<Reventless.DcbTag.sequencePosition, appendError>, string, unit>
|
|
95
110
|
|
|
96
111
|
/**
|
|
97
112
|
Runtime operations exposed by a `DcbEventLog` component.
|