@astrale-domains/shell 0.1.0-beta.41 → 0.1.0-beta.42

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/README.md CHANGED
@@ -23,10 +23,13 @@ not listed. Shell requires `read` on Kernel `Domain` and `of_domain`, and `trave
23
23
  and `View`. Its `usesFunction` Policy admits any caller whose composed profile holds `can_use`
24
24
  on the Function, so holding the capability is enough.
25
25
 
26
- The Core `applications` Group carries `can_use` on listEntrypoints and View.resolve. Administrators
27
- hold both directly (a Core Edge cannot author Kernel `extends_with`); members do not.
28
- Share them dynamically with `Group.assignMember({ member: user, group: applications })`, which
29
- composes the profile through `extends_with`; `unassignMember` withdraws it.
26
+ The workspace opens only once listEntrypoints answers, so every profile that admits a person to
27
+ the workspace holds it. Administrators and members hold both listEntrypoints and View.resolve
28
+ directly (a Core Edge cannot author Kernel `extends_with`): an invited person, whom Admin assigns
29
+ to Core member, can open the workspace. The Core `applications` Group carries the same two
30
+ capabilities for Identities outside Members. Share them dynamically with
31
+ `Group.assignMember({ member: identity, group: applications })`, which composes the profile through
32
+ `extends_with`; `unassignMember` withdraws it.
30
33
 
31
34
  User extends Kernel.Identity and owns only optional creationKey correlation.
32
35
  Concrete business classes may declare their own displayName/email; Shell never reads or writes them.
@@ -89,7 +92,8 @@ Kernel E2E evidence, not a handler test, qualifies this behavior.
89
92
  The Shell principal requests all Kernel root functions, the required extends_with operations,
90
93
  and the declared grant/revoke authority. Core admin receives the full declared Shell profile,
91
94
  including invite, assignMember and unassignMember so humans inheriting admin can call those methods.
92
- Core member receives Introspect, Query, Mutate and View.resolve, not blanket class-read grants.
95
+ Core member receives Download, Introspect, Query, Mutate, View.resolve and listEntrypoints, not
96
+ blanket class-read grants.
93
97
  The Domain definition's requirements, including Core Identity capabilities in requirements.core, are owned by domain.ts and materialized by installation,
94
98
  never by invitation handlers.
95
99
 
package/dist/domain.js CHANGED
@@ -60,10 +60,12 @@ const domainRequirements = requirements({
60
60
  K.functions.query,
61
61
  K.functions.mutate,
62
62
  K.classes.View.static.methods.resolve,
63
+ // The workspace opens only on this catalogue: an invited member must be able to read it.
64
+ S.functions.listEntrypoints,
63
65
  ],
64
66
  },
65
67
  {
66
- // Shared dynamically: Group.assignMember(user, applications) composes this profile.
68
+ // For Identities outside Members: Group.assignMember(identity, applications) composes it.
67
69
  subject: S.core.nodes.applications,
68
70
  functions: [S.functions.listEntrypoints, K.classes.View.static.methods.resolve],
69
71
  },
@@ -11,6 +11,6 @@ export const listEntrypoints = func({
11
11
  auth: 'authorized',
12
12
  input: z.strictObject({}),
13
13
  output: z.object({ entrypoints: z.array(entrypointEntry) }),
14
- // Holding can_use is enough: membership of the Applications Group shares it dynamically.
14
+ // Holding can_use is enough: Core admin and member hold it; the Applications Group shares it.
15
15
  policy: ({ check, ref }) => check(usesFunction, ref(() => listEntrypoints)),
16
16
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-domains/shell",
3
- "version": "0.1.0-beta.41",
3
+ "version": "0.1.0-beta.42",
4
4
  "description": "Astrale Shell Domain schema and remote product implementation",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -58,8 +58,8 @@
58
58
  },
59
59
  "devDependencies": {
60
60
  "@astrale-os/ox": "0.1.4",
61
- "@astrale-os/sdk": "0.6.0-beta.25",
62
- "@astrale-os/shell-react": ">=0.6.0-beta.1 <1.0.0",
61
+ "@astrale-os/sdk": "0.6.0-beta.28",
62
+ "@astrale-os/shell-react": ">=0.6.0-beta.2 <1.0.0",
63
63
  "@astrale-os/ui": "1.0.0-beta.32",
64
64
  "@astrale/typescript-config": "npm:@jsr/astrale__typescript-config@~2.0.0",
65
65
  "@testing-library/dom": "10.4.1",
@@ -76,7 +76,7 @@
76
76
  "vitest": "5.0.1"
77
77
  },
78
78
  "peerDependencies": {
79
- "@astrale-os/sdk": ">=0.6.0-beta.25 <1.0.0"
79
+ "@astrale-os/sdk": ">=0.6.0-beta.28 <1.0.0"
80
80
  },
81
81
  "devEngines": {
82
82
  "runtime": {