@reventlessdev/reventless-aws 3.0.0-alpha.196 → 3.0.0-alpha.198
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 +22 -0
- package/README.md +81 -54
- package/package.json +12 -12
- package/src/Platform.res +290 -44
- package/src/Platform.res.mjs +416 -90
- package/src/adapter/Api/ApiFragmentDeregistration.res +137 -0
- package/src/adapter/Api/ApiFragmentDeregistration.res.mjs +108 -0
- package/src/adapter/Api/CommandSubscriptionResolvers_AppSync.res +4 -3
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res +212 -0
- package/src/adapter/Api/Platform_ApiFragments_Lambda.res.mjs +202 -0
- package/src/adapter/Api/Platform_UIFragments_Lambda.res +8 -8
- package/src/adapter/Api/Platform_UIFragments_Lambda.res.mjs +11 -11
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_AppSync.res +2 -1
- package/src/adapter/QueryDb/QueryDbBackend.res +1 -1
- package/src/adapter/Runtime/AdminEventCollectorEntryPoint.mjs +235 -9
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +4 -0
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res.mjs +5 -0
- package/src/components/Api/AppSync_Adapter.res +36 -59
- package/src/components/Api/AppSync_Adapter.res.mjs +18 -74
- package/src/components/Api/AppSync_SdlDecorate.res +189 -0
- package/src/components/Api/AppSync_SdlDecorate.res.mjs +125 -0
- package/src/plugin/runtime/PluginRuntime_Builder.res +118 -2
- package/src/plugin/runtime/PluginRuntime_Builder.res.mjs +70 -7
- package/src/util/Util_AppSync_Caller.res +12 -4
- package/src/util/Util_AppSync_Caller.res.mjs +9 -3
- package/tests/AppSync_AdapterTest.res +6 -0
- package/tests/AppSync_AdapterTest.res.mjs +12 -6
- package/tests/AppSync_SdlDecorateTest.res +157 -0
- package/tests/AppSync_SdlDecorateTest.res.mjs +147 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.198 (2026-07-12)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **admin:** event-source the API fragment registry as admin DCB slices (Phase 2b) ([3fc40d2](https://github.com/ReventlessDev/reventless-core/commit/3fc40d247c54bf66ed84d625959f08299aa04a98))
|
|
11
|
+
* **admin:** event-source the UI fragment registry as admin DCB slices ([711581e](https://github.com/ReventlessDev/reventless-core/commit/711581e77c626e7d0fc35db8ec351f62a70bd8f2))
|
|
12
|
+
* **admin:** expose the API fragment registry as system-callable mutations (Phase 2d) ([8b1ec49](https://github.com/ReventlessDev/reventless-core/commit/8b1ec49813e67f303bc86d60470c9b95d2a8408e))
|
|
13
|
+
* **admin:** react to ApiFragment* events with a schema single writer (Phase 2e) ([59f9e46](https://github.com/ReventlessDev/reventless-core/commit/59f9e46c154d8ca2a34537974722014fc279de3e))
|
|
14
|
+
* **admin:** retire the Plugin-aggregate UI-fragment path in favour of the registry slices ([1dbc708](https://github.com/ReventlessDev/reventless-core/commit/1dbc708e7439b34ff970cc3d963d7835a8c6fd48))
|
|
15
|
+
* **admin:** serve Platform_UIFragments from the new UiFragmentRegistry slices ([7a47533](https://github.com/ReventlessDev/reventless-core/commit/7a47533acc95977fbeeb6375e94449056b655abc))
|
|
16
|
+
* **api:** neutralize core-emitted SDL — [@aws](https://github.com/aws)_subscribe moves to the AWS adapter (Phase 2a) ([9b27ec8](https://github.com/ReventlessDev/reventless-core/commit/9b27ec8f6ab2b7453b1c50b9891e89781ec3b31a))
|
|
17
|
+
* **deploy:** deregister API fragments on plugin-stack destroy (Phase 3 tail) ([4a10614](https://github.com/ReventlessDev/reventless-core/commit/4a10614e785359ca4c8021da9813c3d485abe9ca))
|
|
18
|
+
* **deploy:** register API fragments via the Platform API on staged deploys (Phase 3) ([7ddb045](https://github.com/ReventlessDev/reventless-core/commit/7ddb045392380497494a0109712e7a10008f9207))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# 3.0.0-alpha.197 (2026-07-11)
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* **infra:** add DeployBootstrap seam for generated deploy programs ([f0dc868](https://github.com/ReventlessDev/reventless-core/commit/f0dc8686396d21e7b39667eb0825b2e57fe4dabf))
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# 3.0.0-alpha.196 (2026-07-11)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @reventlessdev/reventless-aws
|
package/README.md
CHANGED
|
@@ -1,62 +1,89 @@
|
|
|
1
|
-
[](https://www.npmjs.com/package/@reventlessdev/reventless-aws)
|
|
2
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
3
|
+
[](https://docs.reventless.dev)
|
|
4
|
+
|
|
5
|
+
# @reventlessdev/reventless-aws
|
|
6
|
+
|
|
7
|
+
> ⚠️ **Alpha.** APIs and on-disk formats can change without notice between releases.
|
|
8
|
+
> Pin exact versions and expect breaking changes.
|
|
9
|
+
|
|
10
|
+
The **AWS adapter** for [Reventless](https://docs.reventless.dev) — a
|
|
11
|
+
spec-driven, event-sourced CQRS framework written in [ReScript](https://rescript-lang.org).
|
|
12
|
+
This package binds the provider-agnostic components of
|
|
13
|
+
[`@reventlessdev/reventless-core`](https://www.npmjs.com/package/@reventlessdev/reventless-core)
|
|
14
|
+
to concrete AWS resources and provisions them with [Pulumi](https://www.pulumi.com/),
|
|
15
|
+
so the same domain code deploys to AWS unchanged. It covers both deploy-time
|
|
16
|
+
(infrastructure) and runtime (Lambda handlers).
|
|
17
|
+
|
|
18
|
+
## What it provides
|
|
19
|
+
|
|
20
|
+
ReScript modules, consumed by adding the package to your `rescript.json` `dependencies`:
|
|
21
|
+
|
|
22
|
+
- **`Platform`** — the AWS platform functor (`Platform.Make()` / `Platform.MakeWithConfig({...})`).
|
|
23
|
+
Applying it wires up AWS builders once; your plugin functor then takes only the
|
|
24
|
+
application-defined `Spec`, `Behavior`, and `Mappings`.
|
|
25
|
+
- **Component builders** (`Aggregate_Builder`, `ReadModel_Builder`, `Plugin`,
|
|
26
|
+
the slice builders, `Task_Builder`, `Counter_Builder`, `Scheduler`, …) —
|
|
27
|
+
AWS-preconfigured versions of the core hierarchical components, including the
|
|
28
|
+
Single / PerAggregate / Micro runtime layouts.
|
|
29
|
+
- **Adapters** (`src/adapter/`) — the AWS implementation of each core adapter
|
|
30
|
+
interface, one per component (`EventLog`, `CommandTopic`, `EventTopic`,
|
|
31
|
+
`EventCollector`, `QueryDb`, `Counter`, `ScheduledPublisher`, `Task`, …).
|
|
32
|
+
- **`util/`** — AWS-resource helpers shared across adapters (DynamoDB, Lambda,
|
|
33
|
+
SQS/SNS FIFO, S3, IAM, AppSync, Cognito, VPC, CloudWatch).
|
|
34
|
+
|
|
35
|
+
The adapters map core components onto AWS services:
|
|
36
|
+
|
|
37
|
+
| Core component | AWS resource |
|
|
38
|
+
|---------------------------|-------------------------|
|
|
39
|
+
| EventLog / QueryDb | DynamoDB |
|
|
40
|
+
| CommandTopic / EventTopic | SQS (FIFO), SNS |
|
|
41
|
+
| Runtime handlers | Lambda |
|
|
42
|
+
| Task buckets | S3 |
|
|
43
|
+
| Domain API | AppSync (GraphQL) |
|
|
44
|
+
|
|
45
|
+
## Where it fits
|
|
46
|
+
|
|
47
|
+
`reventless-aws` is a storage/cloud **adapter** for the Reventless framework.
|
|
48
|
+
[`reventless-core`](https://www.npmjs.com/package/@reventlessdev/reventless-core)
|
|
49
|
+
is provider-agnostic; you pair it with exactly one platform adapter at deploy time:
|
|
50
|
+
|
|
51
|
+
- [`@reventlessdev/reventless-aws`](https://www.npmjs.com/package/@reventlessdev/reventless-aws) — **this package** (DynamoDB, Lambda, SQS, SNS, S3)
|
|
52
|
+
- [`@reventlessdev/reventless-postgres`](https://www.npmjs.com/package/@reventlessdev/reventless-postgres) — Postgres event log + query DB
|
|
53
|
+
- [`@reventlessdev/reventless-local`](https://www.npmjs.com/package/@reventlessdev/reventless-local) — in-memory / SQLite platform for local dev and tests
|
|
54
|
+
|
|
55
|
+
It also depends on [`reventless-postgres`](https://www.npmjs.com/package/@reventlessdev/reventless-postgres)
|
|
56
|
+
so a deployment can back its event logs with managed Postgres (RDS/Aurora)
|
|
57
|
+
instead of DynamoDB, and on
|
|
58
|
+
[`reventless-infra`](https://www.npmjs.com/package/@reventlessdev/reventless-infra) /
|
|
59
|
+
[`reventless-spec`](https://www.npmjs.com/package/@reventlessdev/reventless-spec)
|
|
60
|
+
for the shared infrastructure and specification types.
|
|
61
|
+
|
|
62
|
+
You normally obtain `reventless-aws` by scaffolding an app rather than installing
|
|
63
|
+
it on its own.
|
|
64
|
+
|
|
65
|
+
## Install
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pnpm add @reventlessdev/reventless-aws
|
|
69
|
+
```
|
|
30
70
|
|
|
31
|
-
|
|
71
|
+
Then register it as a ReScript dependency in `rescript.json`:
|
|
32
72
|
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"dependencies": ["@reventlessdev/reventless-aws"]
|
|
76
|
+
}
|
|
33
77
|
```
|
|
34
|
-
// TODO: DEMONSTRATE API
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Contribution
|
|
38
78
|
|
|
39
|
-
|
|
79
|
+
Requires ReScript `^12.3.0` (peer dependency).
|
|
40
80
|
|
|
41
|
-
|
|
81
|
+
## Links
|
|
42
82
|
|
|
83
|
+
- 📚 Documentation — [docs.reventless.dev](https://docs.reventless.dev)
|
|
84
|
+
- 📦 Repository — [ReventlessDev/reventless-core](https://github.com/ReventlessDev/reventless-core)
|
|
85
|
+
- 📋 [Changelog](./CHANGELOG.md)
|
|
43
86
|
|
|
44
|
-
|
|
87
|
+
## License
|
|
45
88
|
|
|
46
|
-
|
|
47
|
-
reventless-aws
|
|
48
|
-
├── src
|
|
49
|
-
│ ├── adapter [adapter per Reventless Component]
|
|
50
|
-
│ │ ├── AtomicCounter
|
|
51
|
-
│ │ ├── CommandGenerator
|
|
52
|
-
│ │ ├── CommandTopic
|
|
53
|
-
│ │ ├── DataCleaner
|
|
54
|
-
│ │ ├── EventCollector
|
|
55
|
-
│ │ ├── EventLog
|
|
56
|
-
│ │ ├── EventTopic
|
|
57
|
-
│ │ ├── QueryDb
|
|
58
|
-
│ │ └── ScheduledPublisher
|
|
59
|
-
│ ├── components [components preconfigured with aws adapter]
|
|
60
|
-
│ └── util [util functions by aws-resource, used by several adapters]
|
|
61
|
-
└── __tests__ [tests for adapters & utils]
|
|
62
|
-
```
|
|
89
|
+
[Apache-2.0](https://opensource.org/licenses/Apache-2.0)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.198",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"dependencies": {
|
|
@@ -8,17 +8,17 @@
|
|
|
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-
|
|
12
|
-
"@reventlessdev/rescript-
|
|
13
|
-
"@reventlessdev/rescript-
|
|
14
|
-
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.
|
|
15
|
-
"@reventlessdev/rescript-
|
|
16
|
-
"@reventlessdev/
|
|
17
|
-
"@reventlessdev/
|
|
18
|
-
"@reventlessdev/reventless-infra": "3.0.0-alpha.
|
|
19
|
-
"@reventlessdev/reventless-
|
|
20
|
-
"@reventlessdev/reventless-
|
|
21
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.
|
|
11
|
+
"@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
|
|
12
|
+
"@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
|
|
13
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
14
|
+
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
15
|
+
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
16
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.157",
|
|
17
|
+
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
18
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.98",
|
|
19
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.21",
|
|
20
|
+
"@reventlessdev/reventless-interop": "3.0.0-alpha.26",
|
|
21
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"rescript": "^12.3.0",
|