@stigmer/react 3.15.2-dev.20260913223433 → 3.15.3-dev.20260914100347

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.
Files changed (31) hide show
  1. package/iam-policy/OrgMembersPanel.d.ts +4 -2
  2. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  3. package/iam-policy/OrgMembersPanel.js +4 -2
  4. package/iam-policy/OrgMembersPanel.js.map +1 -1
  5. package/iam-policy/PeopleWithAccess.d.ts +9 -0
  6. package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
  7. package/iam-policy/PeopleWithAccess.js +22 -1
  8. package/iam-policy/PeopleWithAccess.js.map +1 -1
  9. package/iam-policy/useCheckPermission.d.ts +15 -12
  10. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  11. package/iam-policy/useCheckPermission.js +10 -6
  12. package/iam-policy/useCheckPermission.js.map +1 -1
  13. package/package.json +4 -4
  14. package/provider.d.ts +2 -2
  15. package/settings/MembersSection.d.ts +11 -1
  16. package/settings/MembersSection.d.ts.map +1 -1
  17. package/settings/MembersSection.js +13 -4
  18. package/settings/MembersSection.js.map +1 -1
  19. package/sharing/useCanCreateAgentShare.d.ts +4 -3
  20. package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
  21. package/sharing/useCanCreateAgentShare.js +4 -3
  22. package/sharing/useCanCreateAgentShare.js.map +1 -1
  23. package/src/__tests__/deployment-mode.test.tsx +3 -1
  24. package/src/iam-policy/OrgMembersPanel.tsx +4 -2
  25. package/src/iam-policy/PeopleWithAccess.tsx +29 -0
  26. package/src/iam-policy/__tests__/PeopleWithAccess.test.tsx +73 -0
  27. package/src/iam-policy/useCheckPermission.ts +15 -12
  28. package/src/provider.tsx +2 -2
  29. package/src/settings/MembersSection.tsx +23 -9
  30. package/src/settings/__tests__/MembersSection.test.tsx +60 -0
  31. package/src/sharing/useCanCreateAgentShare.ts +4 -3
@@ -12,8 +12,10 @@ export interface OrgMembersPanelProps {
12
12
  *
13
13
  * Displays all principals with access to the organization, their
14
14
  * role grants, and provides actions to change roles and remove
15
- * members. New members are added through the invitation flow.
16
- * The current user is identified via
15
+ * members. New members arrive through invitations where the edition
16
+ * serves them (Enterprise and Cloud); on open source people join the
17
+ * organization the first time they sign in and the server records their
18
+ * role. The current user is identified via
17
19
  * `identityAccount.whoAmI()` for self-protection (disabling
18
20
  * destructive actions on yourself).
19
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OrgMembersPanel.d.ts","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"AAgCA,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE,oBAAoB,2CAiFtB"}
1
+ {"version":3,"file":"OrgMembersPanel.d.ts","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"AAgCA,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE,oBAAoB,2CAiFtB"}
@@ -21,8 +21,10 @@ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
21
21
  *
22
22
  * Displays all principals with access to the organization, their
23
23
  * role grants, and provides actions to change roles and remove
24
- * members. New members are added through the invitation flow.
25
- * The current user is identified via
24
+ * members. New members arrive through invitations where the edition
25
+ * serves them (Enterprise and Cloud); on open source people join the
26
+ * organization the first time they sign in and the server records their
27
+ * role. The current user is identified via
26
28
  * `identityAccount.whoAmI()` for self-protection (disabling
27
29
  * destructive actions on yourself).
28
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OrgMembersPanel.js","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrgMembersPanel.js","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"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"}
@@ -28,6 +28,15 @@ export interface PeopleWithAccessProps {
28
28
  * `can_grant_access`, so a viewer sees *who* has access without being offered
29
29
  * controls the server would reject. The backend remains the enforcer.
30
30
  *
31
+ * On the open-source edition (`"local"`) a resource that is not an
32
+ * organization is never shared with individual people — the server's grant
33
+ * scope admits organizations only, and `checkMyPermission` answers
34
+ * `can_grant_access` false for everything else — so the body is one honest
35
+ * sentence naming the editions that do share per resource, never "0 people
36
+ * with access" with no controls. This is a facility question answered by
37
+ * deployment mode, the pattern `useDeploymentMode` documents; the tier
38
+ * question ("is IAM served?") is yes in every edition.
39
+ *
31
40
  * All visual properties flow through `--stgm-*` design tokens.
32
41
  */
33
42
  export declare function PeopleWithAccess({ resource, resourceKindString, resourceKind, orgId, className, }: PeopleWithAccessProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PeopleWithAccess.d.ts","sourceRoot":"","sources":["../../src/iam-policy/PeopleWithAccess.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAK3H,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,KAAK,EACL,SAAS,GACV,EAAE,qBAAqB,2CA6FvB"}
1
+ {"version":3,"file":"PeopleWithAccess.d.ts","sourceRoot":"","sources":["../../src/iam-policy/PeopleWithAccess.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAM3H,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAYzE,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,KAAK,EACL,SAAS,GACV,EAAE,qBAAqB,2CAwGvB"}
@@ -1,12 +1,20 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { UNSTYLED_LIST } from "../internal/element-resets.js";
6
6
  import { getUserMessage } from "@stigmer/sdk";
7
+ import { useDeploymentMode } from "../deployment-mode.js";
7
8
  import { useShareFlow } from "./useShareFlow.js";
8
9
  import { GrantAccessForm } from "./GrantAccessForm.js";
9
10
  import { PermissionGate } from "./PermissionGate.js";
11
+ /**
12
+ * The one resource kind every edition grants roles on. On the open-source
13
+ * edition it is the ONLY one: the composed grant scope there admits
14
+ * organizations alone, and per-person sharing of any other resource is
15
+ * what the Enterprise and Cloud editions add.
16
+ */
17
+ const ORGANIZATION_KIND = "organization";
10
18
  /**
11
19
  * The "people with access" body shared by {@link SharePanel} and the unified
12
20
  * Manage access dialog: the list of principals with their roles, plus the
@@ -19,11 +27,24 @@ import { PermissionGate } from "./PermissionGate.js";
19
27
  * `can_grant_access`, so a viewer sees *who* has access without being offered
20
28
  * controls the server would reject. The backend remains the enforcer.
21
29
  *
30
+ * On the open-source edition (`"local"`) a resource that is not an
31
+ * organization is never shared with individual people — the server's grant
32
+ * scope admits organizations only, and `checkMyPermission` answers
33
+ * `can_grant_access` false for everything else — so the body is one honest
34
+ * sentence naming the editions that do share per resource, never "0 people
35
+ * with access" with no controls. This is a facility question answered by
36
+ * deployment mode, the pattern `useDeploymentMode` documents; the tier
37
+ * question ("is IAM served?") is yes in every edition.
38
+ *
22
39
  * All visual properties flow through `--stgm-*` design tokens.
23
40
  */
24
41
  export function PeopleWithAccess({ resource, resourceKindString, resourceKind, orgId, className, }) {
25
42
  const { accessList, isLoading, fetchError, revokeAccess, isRevoking, revokeError, refetch, hasGrantableRoles, } = useShareFlow(resource);
43
+ const deploymentMode = useDeploymentMode();
26
44
  const [showGrantForm, setShowGrantForm] = useState(false);
45
+ if (deploymentMode === "local" && resource.kind !== ORGANIZATION_KIND) {
46
+ return (_jsxs("p", { className: cn("stg:text-xs stg:text-muted-foreground", className), children: ["This edition does not share ", resourceKindString.replaceAll("_", " "), "s with individual people. Sharing with specific people is available in Stigmer Enterprise and Cloud."] }));
47
+ }
27
48
  const existingPrincipalIds = accessList
28
49
  .map((entry) => entry.principal?.id)
29
50
  .filter((id) => Boolean(id));
@@ -1 +1 @@
1
- {"version":3,"file":"PeopleWithAccess.js","sourceRoot":"","sources":["../../src/iam-policy/PeopleWithAccess.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PeopleWithAccess.js","sourceRoot":"","sources":["../../src/iam-policy/PeopleWithAccess.tsx"],"names":[],"mappings":"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"}
@@ -9,17 +9,16 @@ export interface PermissionCheckResource {
9
9
  export interface CheckPermissionOptions {
10
10
  /**
11
11
  * Behavior when authorization cannot be confirmed — the check is in
12
- * flight, the RPC failed, the resource is `null`, or the server does
13
- * not implement authorization checks (OSS edition).
12
+ * flight, the RPC failed, or the resource is `null`.
14
13
  *
15
14
  * - `"open"` (default): `allowed` is `true`. Right for gating
16
15
  * *capabilities* (buttons, actions) — the server re-checks every
17
- * request anyway, and all UI stays visible in single-user local
18
- * mode.
16
+ * request anyway, so a transient failure never hides a control the
17
+ * server would honor.
19
18
  * - `"closed"`: `allowed` is `false` until the server explicitly
20
19
  * authorizes. Right for *discoverability* surfaces (navigation to
21
- * operator-only areas) that must not appear on deployments where
22
- * the feature does not exist.
20
+ * operator-only areas) that must not appear before the server has
21
+ * said yes.
23
22
  */
24
23
  readonly fail?: "open" | "closed";
25
24
  }
@@ -39,12 +38,16 @@ export interface UseCheckPermissionReturn {
39
38
  * Wraps `iamPolicy.checkMyPermission()` — the dedicated self-check RPC
40
39
  * where the server derives the principal from the authenticated token
41
40
  * (the client never names a principal) — with caching and configurable
42
- * degradation. By default the hook *fails open*: when the server does
43
- * not support authorization checks (OSS edition where the IAM service
44
- * is not registered), it returns `allowed: true` so all UI remains
45
- * visible in single-user local mode. Pass `{ fail: "closed" }` for
46
- * surfaces that must stay hidden until authorization is confirmed
47
- * (see {@link CheckPermissionOptions}).
41
+ * degradation. The RPC is served in every edition and its answer has one
42
+ * definition: a permission on a kind the edition does not serve is
43
+ * `false` (so operator-only navigation never appears where the seat
44
+ * does not exist), `can_grant_access` on a resource the edition does not
45
+ * share per person is `false` (open source grants roles on organizations
46
+ * only), and everything else is the edition's authorizer's answer. By
47
+ * default the hook *fails open* while the check is in flight or when the
48
+ * RPC fails, so a transient error never hides a control the server would
49
+ * honor. Pass `{ fail: "closed" }` for surfaces that must stay hidden
50
+ * until authorization is confirmed (see {@link CheckPermissionOptions}).
48
51
  *
49
52
  * Pass `null` as `resource` to skip the check — the result resolves
50
53
  * through the fail mode (`allowed: true` under the default fail-open).
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckPermission.d.ts","sourceRoot":"","sources":["../../src/iam-policy/useCheckPermission.ts"],"names":[],"mappings":"AAYA,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,EACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,wBAAwB,CAiE1B"}
1
+ {"version":3,"file":"useCheckPermission.d.ts","sourceRoot":"","sources":["../../src/iam-policy/useCheckPermission.ts"],"names":[],"mappings":"AAYA,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,EACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,wBAAwB,CAiE1B"}
@@ -11,12 +11,16 @@ import { useStigmer } from "../hooks.js";
11
11
  * Wraps `iamPolicy.checkMyPermission()` — the dedicated self-check RPC
12
12
  * where the server derives the principal from the authenticated token
13
13
  * (the client never names a principal) — with caching and configurable
14
- * degradation. By default the hook *fails open*: when the server does
15
- * not support authorization checks (OSS edition where the IAM service
16
- * is not registered), it returns `allowed: true` so all UI remains
17
- * visible in single-user local mode. Pass `{ fail: "closed" }` for
18
- * surfaces that must stay hidden until authorization is confirmed
19
- * (see {@link CheckPermissionOptions}).
14
+ * degradation. The RPC is served in every edition and its answer has one
15
+ * definition: a permission on a kind the edition does not serve is
16
+ * `false` (so operator-only navigation never appears where the seat
17
+ * does not exist), `can_grant_access` on a resource the edition does not
18
+ * share per person is `false` (open source grants roles on organizations
19
+ * only), and everything else is the edition's authorizer's answer. By
20
+ * default the hook *fails open* while the check is in flight or when the
21
+ * RPC fails, so a transient error never hides a control the server would
22
+ * honor. Pass `{ fail: "closed" }` for surfaces that must stay hidden
23
+ * until authorization is confirmed (see {@link CheckPermissionOptions}).
20
24
  *
21
25
  * Pass `null` as `resource` to skip the check — the result resolves
22
26
  * through the fail mode (`allowed: true` under the default fail-open).
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckPermission.js","sourceRoot":"","sources":["../../src/iam-policy/useCheckPermission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCheckPermission.js","sourceRoot":"","sources":["../../src/iam-policy/useCheckPermission.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/react",
3
- "version": "3.15.2-dev.20260913223433",
3
+ "version": "3.15.3-dev.20260914100347",
4
4
  "description": "React provider and client hook for the Stigmer platform SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@bufbuild/protovalidate": "^1.1.1",
39
39
  "@dagrejs/dagre": "^1.1.4",
40
- "@stigmer/theme": "3.15.2-dev.20260913223433",
40
+ "@stigmer/theme": "3.15.3-dev.20260914100347",
41
41
  "diff": "^8.0.3",
42
42
  "fflate": "^0.8.2",
43
43
  "hast-util-to-jsx-runtime": "^2.3.6",
@@ -60,8 +60,8 @@
60
60
  "@codemirror/state": "^6.0.0",
61
61
  "@codemirror/view": "^6.0.0",
62
62
  "@lezer/highlight": "^1.0.0",
63
- "@stigmer/protos": "3.15.2-dev.20260913223433",
64
- "@stigmer/sdk": "3.15.2-dev.20260913223433",
63
+ "@stigmer/protos": "3.15.3-dev.20260914100347",
64
+ "@stigmer/sdk": "3.15.3-dev.20260914100347",
65
65
  "@tanstack/react-table": "^8.20.0",
66
66
  "@xyflow/react": "^12.0.0",
67
67
  "elkjs": "^0.9.0",
package/provider.d.ts CHANGED
@@ -16,8 +16,8 @@ export interface StigmerProviderProps {
16
16
  * Edition of the connected Stigmer backend.
17
17
  *
18
18
  * - `"local"` — Stigmer, the open-source edition. Open-source-tier
19
- * resources are served; Enterprise- and cloud-only kinds (IAM policies,
20
- * identity providers, invitations) are hidden.
19
+ * resources are served; Enterprise- and cloud-only kinds (identity
20
+ * providers, invitations) are hidden.
21
21
  * - `"enterprise"` — Stigmer Enterprise, self-hosted. Open-source- and
22
22
  * Enterprise-tier resources are served.
23
23
  * - `"cloud"` — Stigmer Cloud. Every resource is served.
@@ -1,3 +1,13 @@
1
- /** Settings section for organization membership and role management. */
1
+ /**
2
+ * Settings section for organization membership and role management.
3
+ *
4
+ * Rendered in every edition: the IamPolicy row half — who holds which
5
+ * role on the organization — is served by open source as well as the
6
+ * Enterprise and Cloud editions. What differs is how people ARRIVE: where
7
+ * the edition serves invitations, the Invitations section beside this one
8
+ * is the door; where it does not (open source), people join the
9
+ * organization the first time they sign in and the server records their
10
+ * role, so this section says so.
11
+ */
2
12
  export declare function MembersSection(): import("react/jsx-runtime").JSX.Element;
3
13
  //# sourceMappingURL=MembersSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MembersSection.d.ts","sourceRoot":"","sources":["../../src/settings/MembersSection.tsx"],"names":[],"mappings":"AASA,wEAAwE;AACxE,wBAAgB,cAAc,4CAsD7B"}
1
+ {"version":3,"file":"MembersSection.d.ts","sourceRoot":"","sources":["../../src/settings/MembersSection.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,4CA2D7B"}
@@ -3,19 +3,28 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
3
3
  import { useId } from "react";
4
4
  import { OrgMembersPanel } from "../iam-policy/OrgMembersPanel.js";
5
5
  import { useResourceAvailable, ApiResourceKind } from "../deployment-mode.js";
6
- import { CloudFeatureNotice } from "../internal/CloudFeatureNotice.js";
7
6
  import { useOrg } from "../organization/OrgProvider.js";
8
7
  import { useIdentityProviderList } from "../identity-provider/useIdentityProviderList.js";
9
- /** Settings section for organization membership and role management. */
8
+ /**
9
+ * Settings section for organization membership and role management.
10
+ *
11
+ * Rendered in every edition: the IamPolicy row half — who holds which
12
+ * role on the organization — is served by open source as well as the
13
+ * Enterprise and Cloud editions. What differs is how people ARRIVE: where
14
+ * the edition serves invitations, the Invitations section beside this one
15
+ * is the door; where it does not (open source), people join the
16
+ * organization the first time they sign in and the server records their
17
+ * role, so this section says so.
18
+ */
10
19
  export function MembersSection() {
11
20
  const headingId = useId();
12
21
  const { activeOrg } = useOrg();
13
- const membersAvailable = useResourceAvailable(ApiResourceKind.iam_policy);
22
+ const invitationsAvailable = useResourceAvailable(ApiResourceKind.invitation);
14
23
  const idpAvailable = useResourceAvailable(ApiResourceKind.identity_provider);
15
24
  const orgId = activeOrg?.metadata?.id ?? "";
16
25
  const orgSlug = activeOrg?.metadata?.slug ?? "";
17
26
  const { identityProviders } = useIdentityProviderList(idpAvailable && orgSlug ? orgSlug : null);
18
27
  const hasJitProviders = identityProviders.some((idp) => idp.spec?.autoProvisionAccounts || idp.spec?.isSsoProvider);
19
- return (_jsxs("section", { "aria-labelledby": headingId, children: [_jsx("h2", { id: headingId, className: "stg:text-foreground stg:mb-1 stg:text-sm stg:font-semibold", children: "Members" }), _jsx("p", { className: "stg:text-muted-foreground stg:mb-4 stg:text-xs", children: "Manage who has access to this organization and what they can do. Members can be granted owner, admin, member, or viewer roles." }), !membersAvailable ? (_jsx(CloudFeatureNotice, { children: "Members management is not available in local mode. IAM policies require Stigmer Cloud." })) : !orgId ? (_jsx("p", { className: "stg:text-muted-foreground stg:py-4 stg:text-center stg:text-xs", children: "Select an organization to manage members." })) : (_jsxs(_Fragment, { children: [hasJitProviders && (_jsx("div", { className: "stg:mb-3 stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2", children: _jsx("p", { className: "stg:text-[0.65rem] stg:text-muted-foreground", children: "This organization has identity providers with auto-provisioning enabled. Members may appear here automatically when users authenticate via federated identity." }) })), _jsx(OrgMembersPanel, { orgId: orgId })] }))] }));
28
+ return (_jsxs("section", { "aria-labelledby": headingId, children: [_jsx("h2", { id: headingId, className: "stg:text-foreground stg:mb-1 stg:text-sm stg:font-semibold", children: "Members" }), _jsxs("p", { className: "stg:text-muted-foreground stg:mb-4 stg:text-xs", children: ["Manage who has access to this organization and what they can do. Members can be granted owner, admin, member, or viewer roles.", !invitationsAvailable && (_jsxs(_Fragment, { children: [" ", "There are no invitations on this edition: people join this organization the first time they sign in, and you adjust their roles here."] }))] }), !orgId ? (_jsx("p", { className: "stg:text-muted-foreground stg:py-4 stg:text-center stg:text-xs", children: "Select an organization to manage members." })) : (_jsxs(_Fragment, { children: [hasJitProviders && (_jsx("div", { className: "stg:mb-3 stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2", children: _jsx("p", { className: "stg:text-[0.65rem] stg:text-muted-foreground", children: "This organization has identity providers with auto-provisioning enabled. Members may appear here automatically when users authenticate via federated identity." }) })), _jsx(OrgMembersPanel, { orgId: orgId })] }))] }));
20
29
  }
21
30
  //# sourceMappingURL=MembersSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MembersSection.js","sourceRoot":"","sources":["../../src/settings/MembersSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F,wEAAwE;AACxE,MAAM,UAAU,cAAc;IAC5B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,oBAAoB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;IAEhD,MAAM,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CACnD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC;IAEF,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,qBAAqB,IAAI,GAAG,CAAC,IAAI,EAAE,aAAa,CACpE,CAAC;IAEF,OAAO,CACL,sCAA0B,SAAS,aACjC,aACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,4DAA4D,wBAGnE,EACL,YAAG,SAAS,EAAC,gDAAgD,+IAGzD,EAEH,CAAC,gBAAgB,CAAC,CAAC,CAAC,CACnB,KAAC,kBAAkB,yGAGE,CACtB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACX,YAAG,SAAS,EAAC,gEAAgE,0DAEzE,CACL,CAAC,CAAC,CAAC,CACF,8BACG,eAAe,IAAI,CAClB,cAAK,SAAS,EAAC,iGAAiG,YAC9G,YAAG,SAAS,EAAC,8CAA8C,+KAIvD,GACA,CACP,EACD,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI,IAChC,CACJ,IACO,CACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MembersSection.js","sourceRoot":"","sources":["../../src/settings/MembersSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,oBAAoB,GAAG,oBAAoB,CAC/C,eAAe,CAAC,UAAU,CAC3B,CAAC;IACF,MAAM,YAAY,GAAG,oBAAoB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;IAEhD,MAAM,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CACnD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC;IAEF,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,qBAAqB,IAAI,GAAG,CAAC,IAAI,EAAE,aAAa,CACpE,CAAC;IAEF,OAAO,CACL,sCAA0B,SAAS,aACjC,aACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,4DAA4D,wBAGnE,EACL,aAAG,SAAS,EAAC,gDAAgD,+IAG1D,CAAC,oBAAoB,IAAI,CACxB,8BACG,GAAG,6IAIH,CACJ,IACC,EAEH,CAAC,KAAK,CAAC,CAAC,CAAC,CACR,YAAG,SAAS,EAAC,gEAAgE,0DAEzE,CACL,CAAC,CAAC,CAAC,CACF,8BACG,eAAe,IAAI,CAClB,cAAK,SAAS,EAAC,iGAAiG,YAC9G,YAAG,SAAS,EAAC,8CAA8C,+KAIvD,GACA,CACP,EACD,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI,IAChC,CACJ,IACO,CACX,CAAC;AACJ,CAAC"}
@@ -28,9 +28,10 @@ export interface UseCanCreateAgentShareReturn {
28
28
  * resource id — an Organization's id equals its slug
29
29
  * (ApiResourceMetadata.id).
30
30
  *
31
- * On the OSS edition {@link useCheckPermission} degrades to allowed
32
- * (no IAM service), matching the backend's documented no-op
33
- * authorization (decision 011 D4).
31
+ * On the open-source edition both checks reach the server's permissive
32
+ * single-team authorizer and answer allowed — the same posture the
33
+ * backend enforces there (decision 011 D4), so the affordance matches
34
+ * what a create would do.
34
35
  *
35
36
  * Pass `null` for `agent` while it loads — `allowed` stays `false` so
36
37
  * no affordance flashes before the gate can be evaluated.
@@ -1 +1 @@
1
- {"version":3,"file":"useCanCreateAgentShare.d.ts","sourceRoot":"","sources":["../../src/sharing/useCanCreateAgentShare.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAIhF,sDAAsD;AACtD,MAAM,WAAW,4BAA4B;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,4BAA4B,CAuB9B"}
1
+ {"version":3,"file":"useCanCreateAgentShare.d.ts","sourceRoot":"","sources":["../../src/sharing/useCanCreateAgentShare.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAIhF,sDAAsD;AACtD,MAAM,WAAW,4BAA4B;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,4BAA4B,CAuB9B"}
@@ -17,9 +17,10 @@ import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
17
17
  * resource id — an Organization's id equals its slug
18
18
  * (ApiResourceMetadata.id).
19
19
  *
20
- * On the OSS edition {@link useCheckPermission} degrades to allowed
21
- * (no IAM service), matching the backend's documented no-op
22
- * authorization (decision 011 D4).
20
+ * On the open-source edition both checks reach the server's permissive
21
+ * single-team authorizer and answer allowed — the same posture the
22
+ * backend enforces there (decision 011 D4), so the affordance matches
23
+ * what a create would do.
23
24
  *
24
25
  * Pass `null` for `agent` while it loads — `allowed` stays `false` so
25
26
  * no affordance flashes before the gate can be evaluated.
@@ -1 +1 @@
1
- {"version":3,"file":"useCanCreateAgentShare.js","sourceRoot":"","sources":["../../src/sharing/useCanCreateAgentShare.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAgBzE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAmB,EACnB,SAAkB;IAElB,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,QAAQ,CAAC;IAC5D,MAAM,QAAQ,GACZ,KAAK,EAAE,QAAQ,EAAE,UAAU,KAAK,qBAAqB,CAAC,iBAAiB,CAAC;IAE1E,oEAAoE;IACpE,oEAAoE;IACpE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClD,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAC9D,UAAU,CACX,CAAC;IACF,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,kBAAkB,CACpD,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EACtE,wBAAwB,CACzB,CAAC;IAEF,MAAM,OAAO,GACX,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAEtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"useCanCreateAgentShare.js","sourceRoot":"","sources":["../../src/sharing/useCanCreateAgentShare.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAgBzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAmB,EACnB,SAAkB;IAElB,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,QAAQ,CAAC;IAC5D,MAAM,QAAQ,GACZ,KAAK,EAAE,QAAQ,EAAE,UAAU,KAAK,qBAAqB,CAAC,iBAAiB,CAAC;IAE1E,oEAAoE;IACpE,oEAAoE;IACpE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClD,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAC9D,UAAU,CACX,CAAC;IACF,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,kBAAkB,CACpD,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EACtE,wBAAwB,CACzB,CAAC;IAEF,MAAM,OAAO,GACX,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAEtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC3C,CAAC"}
@@ -45,8 +45,10 @@ describe("useDeploymentMode", () => {
45
45
 
46
46
  describe("useResourceAvailable under the enterprise mode", () => {
47
47
  it("serves an enterprise-tier kind", () => {
48
+ // `invitation` is the example since `iam_policy` moved to open_source
49
+ // (20260913.01: the row half is served by every edition).
48
50
  const { result } = renderHook(
49
- () => useResourceAvailable(ApiResourceKind.iam_policy),
51
+ () => useResourceAvailable(ApiResourceKind.invitation),
50
52
  { wrapper: wrapper("enterprise") },
51
53
  );
52
54
  expect(result.current).toBe(true);
@@ -45,8 +45,10 @@ export interface OrgMembersPanelProps {
45
45
  *
46
46
  * Displays all principals with access to the organization, their
47
47
  * role grants, and provides actions to change roles and remove
48
- * members. New members are added through the invitation flow.
49
- * The current user is identified via
48
+ * members. New members arrive through invitations where the edition
49
+ * serves them (Enterprise and Cloud); on open source people join the
50
+ * organization the first time they sign in and the server records their
51
+ * role. The current user is identified via
50
52
  * `identityAccount.whoAmI()` for self-protection (disabling
51
53
  * destructive actions on yourself).
52
54
  *
@@ -6,10 +6,19 @@ import type { PrincipalAccess } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v
6
6
  import { cn } from "@stigmer/theme";
7
7
  import { UNSTYLED_LIST } from "../internal/element-resets.js";
8
8
  import { getUserMessage } from "@stigmer/sdk";
9
+ import { useDeploymentMode } from "../deployment-mode.js";
9
10
  import { useShareFlow, type ShareFlowResource } from "./useShareFlow.js";
10
11
  import { GrantAccessForm } from "./GrantAccessForm.js";
11
12
  import { PermissionGate } from "./PermissionGate.js";
12
13
 
14
+ /**
15
+ * The one resource kind every edition grants roles on. On the open-source
16
+ * edition it is the ONLY one: the composed grant scope there admits
17
+ * organizations alone, and per-person sharing of any other resource is
18
+ * what the Enterprise and Cloud editions add.
19
+ */
20
+ const ORGANIZATION_KIND = "organization";
21
+
13
22
  /** Props for {@link PeopleWithAccess}. */
14
23
  export interface PeopleWithAccessProps {
15
24
  /** The resource whose access list is shown. */
@@ -39,6 +48,15 @@ export interface PeopleWithAccessProps {
39
48
  * `can_grant_access`, so a viewer sees *who* has access without being offered
40
49
  * controls the server would reject. The backend remains the enforcer.
41
50
  *
51
+ * On the open-source edition (`"local"`) a resource that is not an
52
+ * organization is never shared with individual people — the server's grant
53
+ * scope admits organizations only, and `checkMyPermission` answers
54
+ * `can_grant_access` false for everything else — so the body is one honest
55
+ * sentence naming the editions that do share per resource, never "0 people
56
+ * with access" with no controls. This is a facility question answered by
57
+ * deployment mode, the pattern `useDeploymentMode` documents; the tier
58
+ * question ("is IAM served?") is yes in every edition.
59
+ *
42
60
  * All visual properties flow through `--stgm-*` design tokens.
43
61
  */
44
62
  export function PeopleWithAccess({
@@ -58,9 +76,20 @@ export function PeopleWithAccess({
58
76
  refetch,
59
77
  hasGrantableRoles,
60
78
  } = useShareFlow(resource);
79
+ const deploymentMode = useDeploymentMode();
61
80
 
62
81
  const [showGrantForm, setShowGrantForm] = useState(false);
63
82
 
83
+ if (deploymentMode === "local" && resource.kind !== ORGANIZATION_KIND) {
84
+ return (
85
+ <p className={cn("stg:text-xs stg:text-muted-foreground", className)}>
86
+ This edition does not share {resourceKindString.replaceAll("_", " ")}s
87
+ with individual people. Sharing with specific people is available in
88
+ Stigmer Enterprise and Cloud.
89
+ </p>
90
+ );
91
+ }
92
+
64
93
  const existingPrincipalIds = accessList
65
94
  .map((entry) => entry.principal?.id)
66
95
  .filter((id): id is string => Boolean(id));
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Pins PeopleWithAccess's edition posture (20260913.01 slice 5, Q-S5-6):
3
+ * on the open-source edition ("local"), a resource that is not an
4
+ * organization is never shared with individual people — the composed
5
+ * grant scope grants on organizations only — so the body is one honest
6
+ * sentence naming the editions that do, never "0 people with access" with
7
+ * no controls. Organizations, and every resource on the other editions,
8
+ * render the list and its grant controls as before. The share flow and the
9
+ * permission gate are stubbed: they are proven by their own tests.
10
+ */
11
+ import { describe, it, expect, vi, afterEach } from "vitest";
12
+ import { cleanup, render, screen } from "@testing-library/react";
13
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
14
+ import type { DeploymentMode } from "@stigmer/sdk";
15
+ import { DeploymentModeContext } from "../../deployment-mode";
16
+
17
+ vi.mock("../useShareFlow.js", () => ({
18
+ useShareFlow: () => ({
19
+ accessList: [],
20
+ isLoading: false,
21
+ fetchError: null,
22
+ revokeAccess: async () => {},
23
+ isRevoking: false,
24
+ revokeError: null,
25
+ refetch: () => {},
26
+ hasGrantableRoles: true,
27
+ }),
28
+ }));
29
+ vi.mock("../PermissionGate.js", () => ({
30
+ PermissionGate: ({ children }: { children: React.ReactNode }) => <>{children}</>,
31
+ }));
32
+
33
+ import { PeopleWithAccess } from "../PeopleWithAccess";
34
+
35
+ function renderPeople(mode: DeploymentMode, kind: "agent" | "organization") {
36
+ return render(
37
+ <DeploymentModeContext.Provider value={mode}>
38
+ <PeopleWithAccess
39
+ resource={{ kind, id: "x1" }}
40
+ resourceKindString={kind}
41
+ resourceKind={kind === "agent" ? ApiResourceKind.agent : ApiResourceKind.organization}
42
+ orgId="acme"
43
+ />
44
+ </DeploymentModeContext.Provider>,
45
+ );
46
+ }
47
+
48
+ afterEach(cleanup);
49
+
50
+ describe("PeopleWithAccess on the open-source edition", () => {
51
+ it("explains that an agent is not shared with individual people and offers no grant control", () => {
52
+ renderPeople("local", "agent");
53
+ expect(screen.getByText(/does not share agents with individual people/i)).toBeTruthy();
54
+ expect(screen.getByText(/Stigmer Enterprise and Cloud/)).toBeTruthy();
55
+ expect(screen.queryByRole("button", { name: /Add people/ })).toBeNull();
56
+ expect(screen.queryByText(/people with access/i)).toBeNull();
57
+ });
58
+
59
+ it("renders the list and the grant control for an organization", () => {
60
+ renderPeople("local", "organization");
61
+ expect(screen.getByText(/0 people with access/i)).toBeTruthy();
62
+ expect(screen.getByRole("button", { name: /Add people/ })).toBeTruthy();
63
+ });
64
+ });
65
+
66
+ describe("PeopleWithAccess on the editions that share per resource", () => {
67
+ it("renders the list and the grant control for an agent", () => {
68
+ renderPeople("cloud", "agent");
69
+ expect(screen.getByText(/0 people with access/i)).toBeTruthy();
70
+ expect(screen.getByRole("button", { name: /Add people/ })).toBeTruthy();
71
+ expect(screen.queryByText(/individual people/i)).toBeNull();
72
+ });
73
+ });
@@ -22,17 +22,16 @@ export interface PermissionCheckResource {
22
22
  export interface CheckPermissionOptions {
23
23
  /**
24
24
  * Behavior when authorization cannot be confirmed — the check is in
25
- * flight, the RPC failed, the resource is `null`, or the server does
26
- * not implement authorization checks (OSS edition).
25
+ * flight, the RPC failed, or the resource is `null`.
27
26
  *
28
27
  * - `"open"` (default): `allowed` is `true`. Right for gating
29
28
  * *capabilities* (buttons, actions) — the server re-checks every
30
- * request anyway, and all UI stays visible in single-user local
31
- * mode.
29
+ * request anyway, so a transient failure never hides a control the
30
+ * server would honor.
32
31
  * - `"closed"`: `allowed` is `false` until the server explicitly
33
32
  * authorizes. Right for *discoverability* surfaces (navigation to
34
- * operator-only areas) that must not appear on deployments where
35
- * the feature does not exist.
33
+ * operator-only areas) that must not appear before the server has
34
+ * said yes.
36
35
  */
37
36
  readonly fail?: "open" | "closed";
38
37
  }
@@ -54,12 +53,16 @@ export interface UseCheckPermissionReturn {
54
53
  * Wraps `iamPolicy.checkMyPermission()` — the dedicated self-check RPC
55
54
  * where the server derives the principal from the authenticated token
56
55
  * (the client never names a principal) — with caching and configurable
57
- * degradation. By default the hook *fails open*: when the server does
58
- * not support authorization checks (OSS edition where the IAM service
59
- * is not registered), it returns `allowed: true` so all UI remains
60
- * visible in single-user local mode. Pass `{ fail: "closed" }` for
61
- * surfaces that must stay hidden until authorization is confirmed
62
- * (see {@link CheckPermissionOptions}).
56
+ * degradation. The RPC is served in every edition and its answer has one
57
+ * definition: a permission on a kind the edition does not serve is
58
+ * `false` (so operator-only navigation never appears where the seat
59
+ * does not exist), `can_grant_access` on a resource the edition does not
60
+ * share per person is `false` (open source grants roles on organizations
61
+ * only), and everything else is the edition's authorizer's answer. By
62
+ * default the hook *fails open* while the check is in flight or when the
63
+ * RPC fails, so a transient error never hides a control the server would
64
+ * honor. Pass `{ fail: "closed" }` for surfaces that must stay hidden
65
+ * until authorization is confirmed (see {@link CheckPermissionOptions}).
63
66
  *
64
67
  * Pass `null` as `resource` to skip the check — the result resolves
65
68
  * through the fail mode (`allowed: true` under the default fail-open).
package/src/provider.tsx CHANGED
@@ -41,8 +41,8 @@ export interface StigmerProviderProps {
41
41
  * Edition of the connected Stigmer backend.
42
42
  *
43
43
  * - `"local"` — Stigmer, the open-source edition. Open-source-tier
44
- * resources are served; Enterprise- and cloud-only kinds (IAM policies,
45
- * identity providers, invitations) are hidden.
44
+ * resources are served; Enterprise- and cloud-only kinds (identity
45
+ * providers, invitations) are hidden.
46
46
  * - `"enterprise"` — Stigmer Enterprise, self-hosted. Open-source- and
47
47
  * Enterprise-tier resources are served.
48
48
  * - `"cloud"` — Stigmer Cloud. Every resource is served.
@@ -3,15 +3,26 @@
3
3
  import { useId } from "react";
4
4
  import { OrgMembersPanel } from "../iam-policy/OrgMembersPanel.js";
5
5
  import { useResourceAvailable, ApiResourceKind } from "../deployment-mode.js";
6
- import { CloudFeatureNotice } from "../internal/CloudFeatureNotice.js";
7
6
  import { useOrg } from "../organization/OrgProvider.js";
8
7
  import { useIdentityProviderList } from "../identity-provider/useIdentityProviderList.js";
9
8
 
10
- /** Settings section for organization membership and role management. */
9
+ /**
10
+ * Settings section for organization membership and role management.
11
+ *
12
+ * Rendered in every edition: the IamPolicy row half — who holds which
13
+ * role on the organization — is served by open source as well as the
14
+ * Enterprise and Cloud editions. What differs is how people ARRIVE: where
15
+ * the edition serves invitations, the Invitations section beside this one
16
+ * is the door; where it does not (open source), people join the
17
+ * organization the first time they sign in and the server records their
18
+ * role, so this section says so.
19
+ */
11
20
  export function MembersSection() {
12
21
  const headingId = useId();
13
22
  const { activeOrg } = useOrg();
14
- const membersAvailable = useResourceAvailable(ApiResourceKind.iam_policy);
23
+ const invitationsAvailable = useResourceAvailable(
24
+ ApiResourceKind.invitation,
25
+ );
15
26
  const idpAvailable = useResourceAvailable(ApiResourceKind.identity_provider);
16
27
  const orgId = activeOrg?.metadata?.id ?? "";
17
28
  const orgSlug = activeOrg?.metadata?.slug ?? "";
@@ -35,14 +46,17 @@ export function MembersSection() {
35
46
  <p className="stg:text-muted-foreground stg:mb-4 stg:text-xs">
36
47
  Manage who has access to this organization and what they can do.
37
48
  Members can be granted owner, admin, member, or viewer roles.
49
+ {!invitationsAvailable && (
50
+ <>
51
+ {" "}
52
+ There are no invitations on this edition: people join this
53
+ organization the first time they sign in, and you adjust their
54
+ roles here.
55
+ </>
56
+ )}
38
57
  </p>
39
58
 
40
- {!membersAvailable ? (
41
- <CloudFeatureNotice>
42
- Members management is not available in local mode. IAM policies
43
- require Stigmer Cloud.
44
- </CloudFeatureNotice>
45
- ) : !orgId ? (
59
+ {!orgId ? (
46
60
  <p className="stg:text-muted-foreground stg:py-4 stg:text-center stg:text-xs">
47
61
  Select an organization to manage members.
48
62
  </p>
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Pins MembersSection's edition posture (20260913.01 slice 5, Q-S5-6):
3
+ * the Members page renders the members panel in EVERY edition —
4
+ * `iam_policy` is an open-source kind since the row half moved into
5
+ * @stigmer/server — and says how people join on an edition that serves
6
+ * no invitations. The cloud (invitations served) shows no such sentence.
7
+ * The panel itself is proven by its own tests; it is stubbed here.
8
+ */
9
+ import { describe, it, expect, vi, afterEach } from "vitest";
10
+ import { cleanup, render, screen } from "@testing-library/react";
11
+ import type { DeploymentMode } from "@stigmer/sdk";
12
+ import { DeploymentModeContext } from "../../deployment-mode";
13
+
14
+ vi.mock("../../organization/OrgProvider.js", () => ({
15
+ useOrg: () => ({
16
+ activeOrg: { metadata: { id: "org_acme", slug: "acme", name: "Acme" } },
17
+ }),
18
+ }));
19
+ vi.mock("../../identity-provider/useIdentityProviderList.js", () => ({
20
+ useIdentityProviderList: () => ({ identityProviders: [] }),
21
+ }));
22
+ vi.mock("../../iam-policy/OrgMembersPanel.js", () => ({
23
+ OrgMembersPanel: ({ orgId }: { orgId: string }) => (
24
+ <div data-testid="members-panel">panel for {orgId}</div>
25
+ ),
26
+ }));
27
+
28
+ import { MembersSection } from "../MembersSection";
29
+
30
+ function renderSection(mode: DeploymentMode) {
31
+ return render(
32
+ <DeploymentModeContext.Provider value={mode}>
33
+ <MembersSection />
34
+ </DeploymentModeContext.Provider>,
35
+ );
36
+ }
37
+
38
+ afterEach(cleanup);
39
+
40
+ describe("MembersSection across editions", () => {
41
+ it("renders the members panel on the open-source edition — no cloud notice", () => {
42
+ renderSection("local");
43
+ expect(screen.getByTestId("members-panel").textContent).toContain("org_acme");
44
+ expect(screen.queryByText(/not available in local mode/i)).toBeNull();
45
+ expect(screen.queryByText(/require Stigmer Cloud/i)).toBeNull();
46
+ });
47
+
48
+ it("says how people join where the edition serves no invitations", () => {
49
+ renderSection("local");
50
+ expect(
51
+ screen.getByText(/people join this organization the first time they sign in/i),
52
+ ).toBeTruthy();
53
+ });
54
+
55
+ it("renders the panel and no join sentence on the cloud, where invitations are the door", () => {
56
+ renderSection("cloud");
57
+ expect(screen.getByTestId("members-panel")).toBeTruthy();
58
+ expect(screen.queryByText(/the first time they sign in/i)).toBeNull();
59
+ });
60
+ });
@@ -34,9 +34,10 @@ export interface UseCanCreateAgentShareReturn {
34
34
  * resource id — an Organization's id equals its slug
35
35
  * (ApiResourceMetadata.id).
36
36
  *
37
- * On the OSS edition {@link useCheckPermission} degrades to allowed
38
- * (no IAM service), matching the backend's documented no-op
39
- * authorization (decision 011 D4).
37
+ * On the open-source edition both checks reach the server's permissive
38
+ * single-team authorizer and answer allowed — the same posture the
39
+ * backend enforces there (decision 011 D4), so the affordance matches
40
+ * what a create would do.
40
41
  *
41
42
  * Pass `null` for `agent` while it loads — `allowed` stays `false` so
42
43
  * no affordance flashes before the gate can be evaluated.