@reventlessdev/reventless-infra 3.0.0-alpha.140 → 3.0.0-alpha.142

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,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.142 (2026-08-15)
7
+
8
+ ### Features
9
+
10
+ * **core:** curate the pages a shell builds across a plugin's views ([589835a](https://github.com/ReventlessDev/reventless-core/commit/589835a1ad428c5e2dea8bf6e4c64e49d2f67e0d))
11
+
12
+
13
+ # 3.0.0-alpha.141 (2026-08-14)
14
+
15
+ ### Features
16
+
17
+ * **core:** one contract for which refusal a platform gave ([7705c13](https://github.com/ReventlessDev/reventless-core/commit/7705c13ec63f41a3a659bc98cfb45b880fd5b222))
18
+
19
+
6
20
  # 3.0.0-alpha.140 (2026-08-14)
7
21
 
8
22
  **Note:** Version bump only for package @reventlessdev/reventless-infra
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-infra",
3
- "version": "3.0.0-alpha.140",
3
+ "version": "3.0.0-alpha.142",
4
4
  "description": "Infrastructure types for Reventless framework",
5
5
  "license": "Apache-2.0",
6
6
  "jest": {
@@ -16,9 +16,9 @@
16
16
  "sury": "11.0.0-alpha.4",
17
17
  "sury-ppx": "11.0.0-alpha.2",
18
18
  "uuid": "^13.0.0",
19
- "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.19",
20
19
  "@reventlessdev/rescript-effect": "0.1.0-alpha.32",
21
- "@reventlessdev/reventless-spec": "3.0.0-alpha.113",
20
+ "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.19",
21
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.114",
22
22
  "@reventlessdev/rescript-uuid": "2.0.0-alpha.0"
23
23
  },
24
24
  "devDependencies": {
@@ -53,7 +53,7 @@ type mutationSchemaEntry = {
53
53
  authorization?: Reventless.ReadModel.authorization,
54
54
  /** Spec-level per-field authorization derived from `Spec.commandAuthorization`,
55
55
  keyed by mutation field name. Used by AWS to inject
56
- `@aws_auth(cognito_groups: ...)` per field (Stage E2 in
56
+ `@aws_cognito_user_pools(cognito_groups: ...)` per field (Stage E2 in
57
57
  `docs/plans/host-ui-login-core.md`). In-memory enforcement still happens
58
58
  at the resolver layer via the same `commandAuthorization` function. */
59
59
  fieldPermissions?: dict<Reventless.Authorization.permission>,
@@ -106,7 +106,7 @@ type querySchemaEntry = {
106
106
  authorization: option<Reventless.ReadModel.authorization>,
107
107
  /** Spec-level read-model authorization derived from `Spec.authorization`.
108
108
  Applies to both the single-id and list query fields. Used by AWS to
109
- inject `@aws_auth(cognito_groups: ...)` (Stage E2 in
109
+ inject `@aws_cognito_user_pools(cognito_groups: ...)` (Stage E2 in
110
110
  `docs/plans/host-ui-login-core.md`). In-memory enforcement happens at
111
111
  the QueryDb resolver via the same field. */
112
112
  permission?: Reventless.Authorization.permission,
@@ -114,16 +114,29 @@ type capability =
114
114
  // A provisioned geocoding place index, as returned by the framework's geocoding
115
115
  // capability helper. A record rather than a bare name so the handle can grow
116
116
  // (ARN, data source) without moving every call site.
117
- /** One plugin's slice of the baked manifest. `views` / `commands` unset
118
- every public component of that kind; set ⇒ exactly the named ones.
117
+ /** One plugin's slice of the baked manifest. `views` / `commands` / `derived`
118
+ unset ⇒ every public component of that kind; set ⇒ exactly the named ones.
119
119
  An include-list rather than an exclude-list, so a component added later
120
120
  has to be opted in and cannot silently widen a curated shell's surface.
121
121
  A name that matches nothing fails the deploy naming it — a silent no-op
122
- here produces a missing page no log explains. */
122
+ here produces a missing page no log explains.
123
+
124
+ `derived` curates the pages a shell builds ACROSS a plugin's views rather
125
+ than from any one of them — the dashboard, the lifecycle diagrams, the
126
+ canvases, the schedulers. They belong here for the reason the views do:
127
+ they are surfaces an audience either has or does not, and a deployment that
128
+ curated the views a lifecycle page is drawn from and still got the page
129
+ would have curated nothing. Kinds rather than page names, because what a
130
+ canvas is CALLED is resolved in the browser from the hints and the modes
131
+ that deployment registered, and a server validating names it cannot know
132
+ would fail deploys over a spelling only the shell can check.
133
+
134
+ The vocabulary is `Platform_BakedManifest.derivedKinds`. */
123
135
  type bakedManifestSelection = {
124
136
  plugin: string,
125
137
  views?: array<string>,
126
138
  commands?: array<string>,
139
+ derived?: array<string>,
127
140
  }
128
141
 
129
142
  /** Declaration for the baked component manifest — the static JSON a shell