@reventlessdev/reventless-core 3.0.0-alpha.139 → 3.0.0-alpha.141
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 +15 -0
- package/package.json +6 -6
- package/src/admin/Platform_Admin.res.mjs +1 -1
- package/src/components/Dcb/Dcb_Builder.res +6 -0
- package/src/components/Dcb/Dcb_Builder.res.mjs +4 -1
- package/src/plugin/component/Plugin.res +1 -0
- package/src/plugin/component/Plugin_Builder.res +4 -0
- package/src/plugin/component/Plugin_Builder.res.mjs +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
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.141 (2026-07-05)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* @[@reventless](https://github.com/reventless).systemCallable slice opt-in for deploy-time system callers ([c5ed537](https://github.com/ReventlessDev/reventless-core/commit/c5ed537309f8e4b7d4a4d4af1ed1ec83d060aea3))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# 3.0.0-alpha.140 (2026-07-05)
|
|
14
|
+
|
|
15
|
+
**Note:** Version bump only for package @reventlessdev/reventless-core
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 3.0.0-alpha.139 (2026-07-05)
|
|
7
22
|
|
|
8
23
|
### Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.141",
|
|
4
4
|
"description": "Core package for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
"uuid": "^13.0.0",
|
|
31
31
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.24",
|
|
32
32
|
"@reventlessdev/rescript-fast-csv": "1.2.0-alpha.11",
|
|
33
|
+
"@reventlessdev/rescript-hash-object": "1.2.0-alpha.10",
|
|
33
34
|
"@reventlessdev/rescript-jest": "1.0.0-alpha.5",
|
|
34
35
|
"@reventlessdev/rescript-node-streams": "1.1.0-alpha.10",
|
|
35
|
-
"@reventlessdev/rescript-hash-object": "1.2.0-alpha.10",
|
|
36
36
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.14",
|
|
37
|
-
"@reventlessdev/rescript-uuid": "1.1.0-alpha.13",
|
|
38
37
|
"@reventlessdev/rescript-ssh2": "1.1.0-alpha.11",
|
|
38
|
+
"@reventlessdev/rescript-uuid": "1.1.0-alpha.13",
|
|
39
39
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.23",
|
|
40
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.
|
|
41
|
-
"@reventlessdev/reventless-infra": "3.0.0-alpha.
|
|
40
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.65",
|
|
41
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.87"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"rescript": "^12.3.0",
|
|
45
45
|
"sury-ppx": "11.0.0-alpha.2",
|
|
46
|
-
"@reventlessdev/reventless-ppx": "1.0.0-alpha.
|
|
46
|
+
"@reventlessdev/reventless-ppx": "1.0.0-alpha.51"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"rescript": "^12.3.0"
|
|
@@ -71,7 +71,7 @@ function Make(RuntimeEnvironment) {
|
|
|
71
71
|
let aggregatesWithoutEventMappers = Builder_Helpers$ReventlessCore.createAggregatesWithoutEventMappers(aggregates, api, opts);
|
|
72
72
|
let aggregateEventTopics = Aggregate$ReventlessCore.allEventTopics(aggregatesWithoutEventMappers);
|
|
73
73
|
Plugin_Helpers$ReventlessCore.registerAdminAggregateMutations(aggregates, Config.hooks);
|
|
74
|
-
let dcbResult = DcbBuilder.construct(name, name, undefined, undefined, aggregateEventTopics, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, undefined, opts);
|
|
74
|
+
let dcbResult = DcbBuilder.construct(name, name, undefined, undefined, aggregateEventTopics, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, undefined, undefined, opts);
|
|
75
75
|
let adminMutationEntries = AdminApi$ReventlessCore.mutationEntries(Config.cloner);
|
|
76
76
|
let allMutationEntries = adminMutationEntries.concat(dcbResult.mutationEntries);
|
|
77
77
|
let allQueryEntries = AdminApi$ReventlessCore.queryEntries.concat(dcbResult.queryEntries);
|
|
@@ -76,6 +76,10 @@ module Make = (
|
|
|
76
76
|
~automationSlices: array<module(AutomationSlice.T)>,
|
|
77
77
|
~outboundTranslationSlices: array<module(OutboundTranslationSlice.T)>,
|
|
78
78
|
~inboundTranslationSlices: array<module(InboundTranslationSlice.T)>,
|
|
79
|
+
// Spec names of slices whose GraphQL fields a deploy-time system caller
|
|
80
|
+
// (machine credentials — IAM/SigV4 on AWS) must invoke — sets
|
|
81
|
+
// `systemCallable` on the matching mutation / state-view query schema entries.
|
|
82
|
+
~systemCallableComponents: array<string>=[],
|
|
79
83
|
~pluginStructure: option<Reventless.Plugin.pluginStructure>=?,
|
|
80
84
|
~opts: Pulumi.ComponentResource.options,
|
|
81
85
|
): dcbResult => {
|
|
@@ -818,6 +822,7 @@ module Make = (
|
|
|
818
822
|
ReventlessInfra.Api.fieldNames: [fieldName],
|
|
819
823
|
commandSchema,
|
|
820
824
|
fieldPermissions,
|
|
825
|
+
systemCallable: systemCallableComponents->Array.includes(S.Spec.name),
|
|
821
826
|
linkedViews: ?sliceDef->Option.map(d => d.linkedViews),
|
|
822
827
|
consistencyRead: ?sliceDef->Option.flatMap(d => d.consistencyRead),
|
|
823
828
|
})
|
|
@@ -858,6 +863,7 @@ module Make = (
|
|
|
858
863
|
stateSchema: V.Spec.stateSchema->Reventless.DcbTag.toUnknownSchema,
|
|
859
864
|
authorization: None,
|
|
860
865
|
permission: V.Spec.authorization,
|
|
866
|
+
systemCallable: systemCallableComponents->Array.includes(V.Spec.name),
|
|
861
867
|
includeIdParam: qn.includeIdParam,
|
|
862
868
|
connectionSpec: true,
|
|
863
869
|
subIdField: ?subIdField,
|
|
@@ -78,10 +78,11 @@ let emptyResult = {
|
|
|
78
78
|
|
|
79
79
|
function Make(DcbEventLogStorage) {
|
|
80
80
|
return DcbEventTopicPublisher => (DcbCommandTopicChannel => (DcbCommandTopicChannelAsync => (RuntimeBuilder => (HooksConfig => {
|
|
81
|
-
let construct = (name, childName, environmentOpt, platformNameOpt, aggregateEventTopicsOpt, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, pluginStructure, opts) => {
|
|
81
|
+
let construct = (name, childName, environmentOpt, platformNameOpt, aggregateEventTopicsOpt, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, systemCallableComponentsOpt, pluginStructure, opts) => {
|
|
82
82
|
let environment = environmentOpt !== undefined ? environmentOpt : "";
|
|
83
83
|
let platformName = platformNameOpt !== undefined ? platformNameOpt : "";
|
|
84
84
|
let aggregateEventTopics = aggregateEventTopicsOpt !== undefined ? aggregateEventTopicsOpt : ({});
|
|
85
|
+
let systemCallableComponents = systemCallableComponentsOpt !== undefined ? systemCallableComponentsOpt : [];
|
|
85
86
|
let hasDcb = stateChangeSlices.length !== 0;
|
|
86
87
|
if (!hasDcb) {
|
|
87
88
|
return emptyResult;
|
|
@@ -466,6 +467,7 @@ function Make(DcbEventLogStorage) {
|
|
|
466
467
|
fieldNames: [fieldName],
|
|
467
468
|
commandSchema: commandSchema,
|
|
468
469
|
fieldPermissions: fieldPermissions,
|
|
470
|
+
systemCallable: systemCallableComponents.includes(S.Spec.name),
|
|
469
471
|
linkedViews: Stdlib_Option.map(sliceDef, d => d.linkedViews),
|
|
470
472
|
consistencyRead: Stdlib_Option.flatMap(sliceDef, d => d.consistencyRead)
|
|
471
473
|
};
|
|
@@ -495,6 +497,7 @@ function Make(DcbEventLogStorage) {
|
|
|
495
497
|
stateSchema: V.Spec.stateSchema,
|
|
496
498
|
authorization: undefined,
|
|
497
499
|
permission: V.Spec.authorization,
|
|
500
|
+
systemCallable: systemCallableComponents.includes(V.Spec.name),
|
|
498
501
|
includeIdParam: qn.includeIdParam,
|
|
499
502
|
connectionSpec: true,
|
|
500
503
|
subIdField: subIdField,
|
|
@@ -23,6 +23,7 @@ module type T = {
|
|
|
23
23
|
~automationSlices: array<module(ReventlessInfra.AutomationSlice.T)>=?,
|
|
24
24
|
~outboundTranslationSlices: array<module(ReventlessInfra.OutboundTranslationSlice.T)>=?,
|
|
25
25
|
~inboundTranslationSlices: array<module(ReventlessInfra.InboundTranslationSlice.T)>=?,
|
|
26
|
+
~systemCallableComponents: array<string>=?,
|
|
26
27
|
~uiFragments: Reventless.Plugin.uiFragmentManifest=?,
|
|
27
28
|
~pluginStructure: Reventless.Plugin.pluginStructure=?,
|
|
28
29
|
~opts: Pulumi.ComponentResource.options=?,
|
|
@@ -55,6 +55,7 @@ module Make = (
|
|
|
55
55
|
~automationSlices: array<module(ReventlessInfra.AutomationSlice.T)>,
|
|
56
56
|
~outboundTranslationSlices: array<module(ReventlessInfra.OutboundTranslationSlice.T)>,
|
|
57
57
|
~inboundTranslationSlices: array<module(ReventlessInfra.InboundTranslationSlice.T)>,
|
|
58
|
+
~systemCallableComponents: array<string>,
|
|
58
59
|
~uiFragments: option<Reventless.Plugin.uiFragmentManifest>,
|
|
59
60
|
~pluginStructure: option<Reventless.Plugin.pluginStructure>,
|
|
60
61
|
self,
|
|
@@ -155,6 +156,7 @@ module Make = (
|
|
|
155
156
|
~automationSlices,
|
|
156
157
|
~outboundTranslationSlices,
|
|
157
158
|
~inboundTranslationSlices,
|
|
159
|
+
~systemCallableComponents,
|
|
158
160
|
~pluginStructure?,
|
|
159
161
|
~opts,
|
|
160
162
|
)
|
|
@@ -985,6 +987,7 @@ module Make = (
|
|
|
985
987
|
~automationSlices=[],
|
|
986
988
|
~outboundTranslationSlices=[],
|
|
987
989
|
~inboundTranslationSlices=[],
|
|
990
|
+
~systemCallableComponents=[],
|
|
988
991
|
~uiFragments: option<Reventless.Plugin.uiFragmentManifest>=?,
|
|
989
992
|
~pluginStructure: option<Reventless.Plugin.pluginStructure>=?,
|
|
990
993
|
~opts=?,
|
|
@@ -1007,6 +1010,7 @@ module Make = (
|
|
|
1007
1010
|
~automationSlices,
|
|
1008
1011
|
~outboundTranslationSlices,
|
|
1009
1012
|
~inboundTranslationSlices,
|
|
1013
|
+
~systemCallableComponents,
|
|
1010
1014
|
~uiFragments,
|
|
1011
1015
|
~pluginStructure,
|
|
1012
1016
|
...
|
|
@@ -101,7 +101,7 @@ function Make(Spec) {
|
|
|
101
101
|
let extensionPoints = extensionPointsOpt !== undefined ? extensionPointsOpt : [];
|
|
102
102
|
return Plugin_Structure$ReventlessCore.make(name, aggregates, readModels, stateViewSlices, stateChangeSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, extensions, extensionPoints);
|
|
103
103
|
};
|
|
104
|
-
let make = (name, heartbeatInterval, extensionPointsOpt, extensionsOpt, aggregatesOpt, readModelsOpt, tasksOpt, stateChangeSlicesOpt, stateViewSlicesOpt, automationSlicesOpt, outboundTranslationSlicesOpt, inboundTranslationSlicesOpt, uiFragments, pluginStructure, opts) => {
|
|
104
|
+
let make = (name, heartbeatInterval, extensionPointsOpt, extensionsOpt, aggregatesOpt, readModelsOpt, tasksOpt, stateChangeSlicesOpt, stateViewSlicesOpt, automationSlicesOpt, outboundTranslationSlicesOpt, inboundTranslationSlicesOpt, systemCallableComponentsOpt, uiFragments, pluginStructure, opts) => {
|
|
105
105
|
let extensionPoints = extensionPointsOpt !== undefined ? extensionPointsOpt : [];
|
|
106
106
|
let extensions = extensionsOpt !== undefined ? extensionsOpt : [];
|
|
107
107
|
let aggregates = aggregatesOpt !== undefined ? aggregatesOpt : [];
|
|
@@ -112,6 +112,7 @@ function Make(Spec) {
|
|
|
112
112
|
let automationSlices = automationSlicesOpt !== undefined ? automationSlicesOpt : [];
|
|
113
113
|
let outboundTranslationSlices = outboundTranslationSlicesOpt !== undefined ? outboundTranslationSlicesOpt : [];
|
|
114
114
|
let inboundTranslationSlices = inboundTranslationSlicesOpt !== undefined ? inboundTranslationSlicesOpt : [];
|
|
115
|
+
let systemCallableComponents = systemCallableComponentsOpt !== undefined ? systemCallableComponentsOpt : [];
|
|
115
116
|
PluginRuntimeBuilder.registerPluginName(name);
|
|
116
117
|
let version = PackageVersion$Reventless.fromCaller();
|
|
117
118
|
return Component$ReventlessCore.make(ComponentType$ReventlessCore.toString(Plugin$ReventlessCore.componentType), name, (extra, extra$1) => {
|
|
@@ -144,7 +145,7 @@ function Make(Spec) {
|
|
|
144
145
|
let DcbBuilder = Dcb_Builder$ReventlessCore.Make(DcbEventLogStorage)(DcbEventTopicPublisher)(DcbCommandTopicChannel)(DcbCommandTopicChannelAsync)(PluginRuntimeBuilder)({
|
|
145
146
|
hooks: Spec.hooks
|
|
146
147
|
});
|
|
147
|
-
let dcbResult = DcbBuilder.construct(extra$1, childName, Spec.environment, Spec.platformName, aggregateEventTopics, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, pluginStructure, opts);
|
|
148
|
+
let dcbResult = DcbBuilder.construct(extra$1, childName, Spec.environment, Spec.platformName, aggregateEventTopics, stateChangeSlices, stateViewSlices, automationSlices, outboundTranslationSlices, inboundTranslationSlices, systemCallableComponents, pluginStructure, opts);
|
|
148
149
|
let mutationEntriesFromAggregates = aggregates.flatMap(M => {
|
|
149
150
|
let commandSchema = M.Spec.commandSchema;
|
|
150
151
|
if (ApiNoApiHelpers$ReventlessCore.isNoApi(commandSchema)) {
|