@reventlessdev/reventless-infra 3.0.0-alpha.204 → 3.0.0-alpha.205
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,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.205 (2026-10-25)
|
|
7
|
+
|
|
8
|
+
* refactor(aws)!: deploy and runtime configuration a function may lack are optional fields ([de80a54](https://github.com/ReventlessDev/reventless-core/commit/de80a546501a97b39cbe71200120f062bb260da4))
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* a plugin declares per role how a person is admitted, and the local platform honors the self-service and provisioned halves ([9c37bf5](https://github.com/ReventlessDev/reventless-core/commit/9c37bf50f15cac1703bf2c351713518121a56211))
|
|
12
|
+
* a stash capability holds a value for minutes outside the log and hands it over once ([627f285](https://github.com/ReventlessDev/reventless-core/commit/627f28529ead2d2d31bdd091c9f42e7faca40f6f))
|
|
13
|
+
|
|
14
|
+
### BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
* code that builds these records drops `name: None` and
|
|
17
|
+
writes `name: x` for `name: Some(x)`.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 3.0.0-alpha.204 (2026-10-23)
|
|
7
22
|
|
|
8
23
|
### 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.205",
|
|
4
4
|
"description": "Infrastructure types for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"sury": "11.0.0",
|
|
17
17
|
"sury-ppx": "11.0.0",
|
|
18
18
|
"uuid": "^13.0.0",
|
|
19
|
-
"@reventlessdev/rescript-effect": "1.0.0-alpha.1",
|
|
20
19
|
"@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
|
|
21
20
|
"@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
|
|
22
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.
|
|
21
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.176",
|
|
22
|
+
"@reventlessdev/rescript-effect": "1.0.0-alpha.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"rescript": "12.3.1",
|
|
@@ -97,5 +97,7 @@ module type T = {
|
|
|
97
97
|
~componentChapters: dict<string>=?,
|
|
98
98
|
~lifecycleModel: array<Reventless.Plugin.derivedEdge>=?,
|
|
99
99
|
~identities: array<string>=?,
|
|
100
|
+
~admission: Reventless.Admission.t=?,
|
|
101
|
+
~admissionDoors: array<(string, Reventless.Admission.door)>=?,
|
|
100
102
|
) => Reventless.Plugin.pluginStructure
|
|
101
103
|
}
|
package/src/types/Platform.res
CHANGED
|
@@ -110,6 +110,7 @@ type capability =
|
|
|
110
110
|
| Geocoding
|
|
111
111
|
| Messaging
|
|
112
112
|
| IdentityProvider
|
|
113
|
+
| Stash
|
|
113
114
|
|
|
114
115
|
// A provisioned geocoding place index, as returned by the framework's geocoding
|
|
115
116
|
// capability helper. A record rather than a bare name so the handle can grow
|
|
@@ -11,12 +11,12 @@ not a literal cap — each platform adapter maps it to its own resource model
|
|
|
11
11
|
See docs/plans/configurable-component-runtime-resources.md.
|
|
12
12
|
*/
|
|
13
13
|
type t = {
|
|
14
|
-
memorySize
|
|
15
|
-
timeout
|
|
14
|
+
memorySize?: int,
|
|
15
|
+
timeout?: int,
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/** No hints — every field falls through to the per-kind builder default. */
|
|
19
|
-
let empty: t = {
|
|
19
|
+
let empty: t = {}
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
Resolve a component's memory floor: the per-component override raises the
|
|
@@ -25,7 +25,7 @@ the default unchanged.
|
|
|
25
25
|
*/
|
|
26
26
|
let resolveMemory = (hints: option<t>, ~default: int): int =>
|
|
27
27
|
switch hints {
|
|
28
|
-
| Some({memorySize: Some(m)}) => Math.Int.max(default, m)
|
|
28
|
+
| Some({memorySize: ?Some(m)}) => Math.Int.max(default, m)
|
|
29
29
|
| _ => default
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -36,6 +36,6 @@ override yields the default unchanged.
|
|
|
36
36
|
*/
|
|
37
37
|
let resolveTimeout = (hints: option<t>, ~default: int): int =>
|
|
38
38
|
switch hints {
|
|
39
|
-
| Some({timeout: Some(t)}) => t
|
|
39
|
+
| Some({timeout: ?Some(t)}) => t
|
|
40
40
|
| _ => default
|
|
41
41
|
}
|
|
@@ -12,23 +12,19 @@ describe("RuntimeHints.resolveMemory", () => {
|
|
|
12
12
|
expect(RH.resolveMemory(None, ~default=1024))->toBe(1024)
|
|
13
13
|
})
|
|
14
14
|
testSync("an override above the default wins", () => {
|
|
15
|
-
expect(RH.resolveMemory(Some({memorySize:
|
|
16
|
-
2048,
|
|
17
|
-
)
|
|
15
|
+
expect(RH.resolveMemory(Some({memorySize: 2048}), ~default=1024))->toBe(2048)
|
|
18
16
|
})
|
|
19
17
|
testSync("an override below the default is clamped up to the floor", () => {
|
|
20
|
-
expect(RH.resolveMemory(Some({memorySize:
|
|
21
|
-
1024,
|
|
22
|
-
)
|
|
18
|
+
expect(RH.resolveMemory(Some({memorySize: 256}), ~default=1024))->toBe(1024)
|
|
23
19
|
})
|
|
24
20
|
testSync("an absent memorySize field falls through to the default", () => {
|
|
25
|
-
expect(RH.resolveMemory(Some({
|
|
21
|
+
expect(RH.resolveMemory(Some({timeout: 60}), ~default=1024))->toBe(1024)
|
|
26
22
|
})
|
|
27
23
|
})
|
|
28
24
|
|
|
29
25
|
describe("RuntimeHints.resolveTimeout", () => {
|
|
30
26
|
testSync("an explicit timeout replaces the default (no max)", () => {
|
|
31
|
-
expect(RH.resolveTimeout(Some({
|
|
27
|
+
expect(RH.resolveTimeout(Some({timeout: 15}), ~default=30))->toBe(15)
|
|
32
28
|
})
|
|
33
29
|
testSync("no hint falls through to the default", () => {
|
|
34
30
|
expect(RH.resolveTimeout(None, ~default=30))->toBe(30)
|