@reventlessdev/reventless-infra 3.0.0-alpha.97 → 3.0.0-alpha.99
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.99 (2026-07-14)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @reventlessdev/reventless-infra
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# 3.0.0-alpha.98 (2026-07-12)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **admin:** event-source the UI fragment registry as admin DCB slices ([711581e](https://github.com/ReventlessDev/reventless-core/commit/711581e77c626e7d0fc35db8ec351f62a70bd8f2))
|
|
19
|
+
* **admin:** make the API fragment registry per-target (Domain | Platform) ([30491a9](https://github.com/ReventlessDev/reventless-core/commit/30491a9e14b4236c98cc756efb6de68ede1e77d7))
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
# 3.0.0-alpha.97 (2026-07-11)
|
|
7
23
|
|
|
8
24
|
### Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-infra",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.99",
|
|
4
4
|
"description": "Infrastructure types for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"sury-ppx": "11.0.0-alpha.2",
|
|
18
18
|
"uuid": "^13.0.0",
|
|
19
19
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
20
|
+
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
20
21
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
21
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.
|
|
22
|
-
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15"
|
|
22
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"rescript": "^12.3.0",
|
package/src/components/Api.res
CHANGED
|
@@ -112,28 +112,9 @@ type eventLogSchemaEntry = {
|
|
|
112
112
|
eventSchema: S.t<unknown>,
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
Runtime operations for the `Api` component.
|
|
125
|
-
- `updateSchema` — rebuild the stitched schema from the current plugin fragments
|
|
126
|
-
*/
|
|
127
|
-
type operations = {
|
|
128
|
-
updateSchema: array<Reventless.Plugin.apiSchemaFragment> => promise<unit>,
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
type t
|
|
132
|
-
type component = Component.t<t, outputs, operations>
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
Module type produced by `Platform.Api.Make(Config)`.
|
|
136
|
-
*/
|
|
137
|
-
module type T = {
|
|
138
|
-
let make: (~name: string, ~opts: Pulumi.ComponentResource.options=?) => component
|
|
139
|
-
}
|
|
115
|
+
// (The Api component contract — outputs/operations/`module type T` and the
|
|
116
|
+
// whole `updateSchema` push chain — was retired with the merged-API cutover:
|
|
117
|
+
// AWS composes source APIs via SourceApiAssociation and the local platform
|
|
118
|
+
// composes in-process; nothing rebuilds a stitched schema at runtime. The
|
|
119
|
+
// schema-entry types above remain the live surface, consumed by
|
|
120
|
+
// `Api_Adapter.Provider.generateFragment` and the MCP/AutoUI generators.)
|
|
@@ -26,14 +26,4 @@ module type Provider = {
|
|
|
26
26
|
~mutationEntries: array<Api.mutationSchemaEntry>,
|
|
27
27
|
~queryEntries: array<Api.querySchemaEntry>,
|
|
28
28
|
) => Reventless.Plugin.apiSchemaFragment
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
Rebuild and publish the full stitched schema whenever the set of plugin
|
|
32
|
-
fragments changes (e.g. on `Connected` / `Disconnected` Plugin events).
|
|
33
|
-
*/
|
|
34
|
-
let updateSchema: (
|
|
35
|
-
~api: Pulumi.Output.t<api>,
|
|
36
|
-
~baseFragment: Reventless.Plugin.apiSchemaFragment,
|
|
37
|
-
~pluginFragments: array<Reventless.Plugin.apiSchemaFragment>,
|
|
38
|
-
) => promise<unit>
|
|
39
29
|
}
|
package/src/types/Platform.res
CHANGED
|
@@ -45,9 +45,6 @@ module App = CatalogPlugin.Make(Platform)
|
|
|
45
45
|
```
|
|
46
46
|
*/
|
|
47
47
|
|
|
48
|
-
// Type alias to avoid shadowing by the nested `module Api` inside Platform.T.
|
|
49
|
-
type apiComponent = Api.component
|
|
50
|
-
|
|
51
48
|
// Type alias so `deployPlugin` can reference `Plugin.outputs` inside module type T,
|
|
52
49
|
// where `module Plugin: Plugin.T` shadows the package-level Plugin module.
|
|
53
50
|
type pluginOutputs = Plugin.outputs
|
|
@@ -210,13 +207,6 @@ module type T = {
|
|
|
210
207
|
) => InboundTranslationSlice.T with module Spec = Spec
|
|
211
208
|
}
|
|
212
209
|
|
|
213
|
-
/** Factory for the API (GraphQL) component. */
|
|
214
|
-
module Api: {
|
|
215
|
-
module Make: (Config: {
|
|
216
|
-
let baseFragment: Api.schemaFragment
|
|
217
|
-
}) => Api.T
|
|
218
|
-
}
|
|
219
|
-
|
|
220
210
|
/** Whether this platform supports MCP (Model Context Protocol) for AI agent access.
|
|
221
211
|
In-memory: starts an MCP server alongside GraphQL in makePlatform.
|
|
222
212
|
AWS: deploys a Lambda Function URL with Streamable HTTP transport. */
|
|
@@ -18,6 +18,12 @@ type command =
|
|
|
18
18
|
| ConnectPlugin(pluginDefinition)
|
|
19
19
|
| DisconnectPlugin
|
|
20
20
|
| ForwardCommand(forwardCommand)
|
|
21
|
+
// Registers this plugin's UI-fragment manifest with the admin UiFragmentRegistry slice.
|
|
22
|
+
// Sent by the plugin's connect extension alongside ConnectPlugin (see
|
|
23
|
+
// docs/plans/event-sourced-fragment-registries.md). Routed by the admin EP's UI-fragment
|
|
24
|
+
// mapping to UiFragmentRegistry.RegisterUiFragment; DisconnectPlugin drives the matching
|
|
25
|
+
// DeregisterUiFragment. Decoupling the manifest from the Plugin aggregate's lifecycle.
|
|
26
|
+
| RegisterUiFragment(uiFragmentManifest)
|
|
21
27
|
// Deploy-time re-detect: fired once by `deployPlugin` on every (re)deploy. Unlike
|
|
22
28
|
// a keep-alive `Heartbeat`, this forces the connect handshake to run again for an
|
|
23
29
|
// already-connected version so its current definition (e.g. a newly added `kind`,
|
|
@@ -23,6 +23,10 @@ let commandSchema = S.union([
|
|
|
23
23
|
TAG: "ForwardCommand",
|
|
24
24
|
_0: s.m(forwardCommandSchema)
|
|
25
25
|
})),
|
|
26
|
+
S.schema(s => ({
|
|
27
|
+
TAG: "RegisterUiFragment",
|
|
28
|
+
_0: s.m(Plugin$Reventless.uiFragmentManifestSchema)
|
|
29
|
+
})),
|
|
26
30
|
S.schema(s => ({
|
|
27
31
|
TAG: "RedetectPlugin",
|
|
28
32
|
_0: s.m(S.int)
|
|
@@ -105,6 +109,8 @@ let extensionProtocolSchema = Plugin$Reventless.extensionProtocolSchema;
|
|
|
105
109
|
|
|
106
110
|
let apiSchemaFragmentSchema = Plugin$Reventless.apiSchemaFragmentSchema;
|
|
107
111
|
|
|
112
|
+
let apiTargetSchema = Plugin$Reventless.apiTargetSchema;
|
|
113
|
+
|
|
108
114
|
let apiSchemaFragmentOptionSchema = Plugin$Reventless.apiSchemaFragmentOptionSchema;
|
|
109
115
|
|
|
110
116
|
let dcbEventLogOptionSchema = Plugin$Reventless.dcbEventLogOptionSchema;
|
|
@@ -173,6 +179,7 @@ export {
|
|
|
173
179
|
dcbEventLogDefinitionSchema,
|
|
174
180
|
extensionProtocolSchema,
|
|
175
181
|
apiSchemaFragmentSchema,
|
|
182
|
+
apiTargetSchema,
|
|
176
183
|
apiSchemaFragmentOptionSchema,
|
|
177
184
|
dcbEventLogOptionSchema,
|
|
178
185
|
stringOptionSchema,
|