@farthershore/farthershore-js 0.11.0 → 0.13.0

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 (59) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +1 -1
  3. package/dist/component-permissions.d.ts +6 -0
  4. package/dist/component-permissions.d.ts.map +1 -0
  5. package/dist/component-permissions.js +38 -0
  6. package/dist/component-permissions.js.map +1 -0
  7. package/dist/components/access-denied.d.ts +38 -0
  8. package/dist/components/access-denied.d.ts.map +1 -0
  9. package/dist/components/access-denied.js +48 -0
  10. package/dist/components/access-denied.js.map +1 -0
  11. package/dist/components/auth.d.ts +11 -2
  12. package/dist/components/auth.d.ts.map +1 -1
  13. package/dist/components/auth.js +21 -7
  14. package/dist/components/auth.js.map +1 -1
  15. package/dist/components/docs.css +1 -2
  16. package/dist/components/index.d.ts +4 -0
  17. package/dist/components/index.d.ts.map +1 -1
  18. package/dist/components/index.js +5 -0
  19. package/dist/components/index.js.map +1 -1
  20. package/dist/components/keys.d.ts.map +1 -1
  21. package/dist/components/keys.js +92 -4
  22. package/dist/components/keys.js.map +1 -1
  23. package/dist/components/permission-gate.d.ts +70 -0
  24. package/dist/components/permission-gate.d.ts.map +1 -0
  25. package/dist/components/permission-gate.js +105 -0
  26. package/dist/components/permission-gate.js.map +1 -0
  27. package/dist/components/product-docs/product-docs-shell.d.ts.map +1 -1
  28. package/dist/components/product-docs/product-docs-shell.js +13 -1
  29. package/dist/components/product-docs/product-docs-shell.js.map +1 -1
  30. package/dist/components/styles.css +90 -0
  31. package/dist/deny-codes.d.ts +2 -0
  32. package/dist/deny-codes.d.ts.map +1 -1
  33. package/dist/deny-codes.js +7 -0
  34. package/dist/deny-codes.js.map +1 -1
  35. package/dist/errors/index.d.ts +28 -0
  36. package/dist/errors/index.d.ts.map +1 -1
  37. package/dist/errors/index.js +55 -0
  38. package/dist/errors/index.js.map +1 -1
  39. package/dist/generated/version.d.ts +2 -2
  40. package/dist/generated/version.js +2 -2
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/permissions.d.ts +16 -0
  46. package/dist/permissions.d.ts.map +1 -1
  47. package/dist/permissions.js +28 -0
  48. package/dist/permissions.js.map +1 -1
  49. package/dist/react/hooks.d.ts +2 -0
  50. package/dist/react/hooks.d.ts.map +1 -1
  51. package/dist/react/hooks.js.map +1 -1
  52. package/dist/resources/keys.d.ts +11 -1
  53. package/dist/resources/keys.d.ts.map +1 -1
  54. package/dist/resources/keys.js +6 -1
  55. package/dist/resources/keys.js.map +1 -1
  56. package/dist/types.d.ts +16 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js.map +1 -1
  59. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -3,6 +3,47 @@
3
3
  All notable changes to `@farthershore/farthershore-js` are documented here.
4
4
  This project adheres to Semantic Versioning (pre-1.0: minors may break).
5
5
 
6
+ ## [0.12.0] - 2026-07-06
7
+
8
+ Unified Authorization — permission gating as a first-class UI primitive.
9
+
10
+ ### Added
11
+
12
+ - `usePermissionGate(permission)` + `<PermissionGate permission mode fallback>`
13
+ (`hide | disable | readOnly | fallback`): declarative RBAC gating for ANY
14
+ component — managed template or fully custom builder UI — with a
15
+ no-flash `loading` status until the auth claim resolves. `disable` renders
16
+ a real `<fieldset disabled>` with `inert` (applied via ref, React 18 + 19
17
+ compatible); `readOnly` exposes `PermissionReadOnlyContext`.
18
+ - `<AccessDenied variant requiredPermission onRequestAccess>` — the deny
19
+ surface that names the missing `<subject>:<verb>`.
20
+ - Component self-gating: SDK data components gate on their own permission key
21
+ (`componentPermission` map — `audit_log:read`, `team:read`, `apikey:read`,
22
+ …), overridable by prop.
23
+ - `useFsAuth()` exposes `authzLoaded`; `hasPermission` now evaluates the
24
+ canonical `permissionSatisfies` rule (`*` / `<subject>:*` / exact) plus the
25
+ `permissionWithin` subset-check parity.
26
+ - Deny codes: `permission_denied`, `permission_unresolved`, and
27
+ `context_unverified` join the typed gateway deny-code set.
28
+
29
+ ## [0.11.0] - 2026-07-04
30
+
31
+ Managed RBAC frontend.
32
+
33
+ ### Added
34
+
35
+ - `useFsAuth()` now returns `{ roles, permissions, hasPermission }` (from
36
+ `/portal/me`) for UX-level gating — the edge remains the enforcement boundary.
37
+ - `requirePermission` prop on `<AuthGuard>`.
38
+ - RBAC client methods (org RBAC settings, role CRUD, member role assignment)
39
+ and the audit-log **"Access control"** category in `<AuditLogTable />`.
40
+
41
+ ### Fixed
42
+
43
+ - Clerk dev-instance satellite-login session recovery — auto-recovers the
44
+ "click login → had to refresh to see the portal" case (one-shot, cookie-gated,
45
+ no-op on the primary domain).
46
+
6
47
  ## [0.10.0] - 2026-07-02
7
48
 
8
49
  Frontend SDK ergonomics redesign — the headless client + hooks are now the
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  The **Farther Shore Frontend SDK** — the browser + React integration layer for
4
4
  your product's subscriber portal.
5
5
 
6
- > **Status: `0.10.0`.** Pre-1.0 (`0.x`): a minor bump (e.g. `0.9.x` → `0.10.0`)
6
+ > **Status: `0.12.0`.** Pre-1.0 (`0.x`): a minor bump (e.g. `0.9.x` → `0.10.0`)
7
7
  > may include breaking changes, so a caret range is unsafe — **pin this package
8
8
  > exactly** (`0.9.0`) or use a patch-only tilde (`~0.9.0`). Changes are recorded
9
9
  > in [`CHANGELOG.md`](./CHANGELOG.md).
@@ -0,0 +1,6 @@
1
+ /** Manifest component id → default self-gate permission (or null for none). */
2
+ export declare const COMPONENT_PERMISSIONS: Readonly<Record<string, string | null>>;
3
+ /** The default self-gate permission for a component id, or null when it has
4
+ * none (public / feature-scoped). Unknown ids also return null. */
5
+ export declare function componentPermission(componentId: string): string | null;
6
+ //# sourceMappingURL=component-permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-permissions.d.ts","sourceRoot":"","sources":["../src/component-permissions.ts"],"names":[],"mappings":"AAiBA,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAczE,CAAC;AAEF;oEACoE;AACpE,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,38 @@
1
+ // ---------------------------------------------------------------------------
2
+ // component-permissions.ts (UA-1)
3
+ //
4
+ // The SELF-GATE map: each manifest component id → the default `<subject>:<verb>`
5
+ // permission a data component requires to render its data. SDK data components
6
+ // consult this so a registry-driven render (the template's component-registry,
7
+ // or any builder frontend that mounts a component by id) gates on the right
8
+ // permission with zero per-call wiring. A manifest `permission` override on the
9
+ // component always wins; `null` here means "no default self-gate" (the
10
+ // component is either public or feature-scoped and takes its key from props).
11
+ //
12
+ // These are the MANAGED permission keys from the unified grammar
13
+ // (`@farthershore/contracts/authz/verbs`) — the same tokens the edge enforces —
14
+ // so a component that hides itself for `apikey:read` is consistent end-to-end
15
+ // with the gateway denying `apikey:read` on the API.
16
+ // ---------------------------------------------------------------------------
17
+ /** Manifest component id → default self-gate permission (or null for none). */
18
+ export const COMPONENT_PERMISSIONS = {
19
+ plans_table: "subscription:read",
20
+ usage_card: "usage:read",
21
+ api_keys_panel: "apikey:read",
22
+ billing_summary: "invoice:read",
23
+ credit_balance: "invoice:read",
24
+ // feature_panel renders a builder feature — its permission is the feature's
25
+ // own `<feature>:read`, supplied via props/manifest, not a fixed managed key.
26
+ feature_panel: null,
27
+ // business_docs is public-facing product documentation.
28
+ business_docs: null,
29
+ audit_log: "audit_log:read",
30
+ team_panel: "team:read",
31
+ markdown: null,
32
+ };
33
+ /** The default self-gate permission for a component id, or null when it has
34
+ * none (public / feature-scoped). Unknown ids also return null. */
35
+ export function componentPermission(componentId) {
36
+ return COMPONENT_PERMISSIONS[componentId] ?? null;
37
+ }
38
+ //# sourceMappingURL=component-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-permissions.js","sourceRoot":"","sources":["../src/component-permissions.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,EAAE;AACF,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,uEAAuE;AACvE,8EAA8E;AAC9E,EAAE;AACF,iEAAiE;AACjE,gFAAgF;AAChF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAA4C;IAC5E,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,aAAa;IAC7B,eAAe,EAAE,cAAc;IAC/B,cAAc,EAAE,cAAc;IAC9B,4EAA4E;IAC5E,8EAA8E;IAC9E,aAAa,EAAE,IAAI;IACnB,wDAAwD;IACxD,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;oEACoE;AACpE,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACpD,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type ReactNode } from "react";
2
+ export interface AccessDeniedProps {
3
+ /** The missing permission, named for the user (e.g. `audit_log:read`).
4
+ * Omit when unknown (a bare 403). */
5
+ requiredPermission?: string;
6
+ /** Presentation size: `page` (default) for a route-level deny, `inline`
7
+ * for an embedded section. */
8
+ variant?: "page" | "inline";
9
+ /** Override the title. */
10
+ title?: string;
11
+ /** Extra context under the title (defaults to a role-based explanation). */
12
+ description?: ReactNode;
13
+ /**
14
+ * When provided, renders a "Request access" button. Resolve the promise to
15
+ * flip the button into a confirmation ("Request sent — an owner will
16
+ * review it."); reject to show a retryable error. Wire it to
17
+ * `fs.rbac.accessRequests.create(...)` or any custom flow.
18
+ */
19
+ onRequestAccess?: () => Promise<void> | void;
20
+ /** Appended to the root card. */
21
+ className?: string;
22
+ }
23
+ /**
24
+ * A self-contained "you don't have access" card that names the missing
25
+ * permission and (optionally) starts a request-access flow.
26
+ *
27
+ * @example route-level deny under a guard:
28
+ * ```tsx
29
+ * <AccessDenied
30
+ * requiredPermission="audit_log:read"
31
+ * onRequestAccess={() =>
32
+ * fs.rbac.accessRequests.create({ permission: "audit_log:read" })
33
+ * }
34
+ * />
35
+ * ```
36
+ */
37
+ export declare function AccessDenied({ requiredPermission, variant, title, description, onRequestAccess, className, }: AccessDeniedProps): import("react/jsx-runtime").JSX.Element;
38
+ //# sourceMappingURL=access-denied.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-denied.d.ts","sourceRoot":"","sources":["../../src/components/access-denied.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIjD,MAAM,WAAW,iBAAiB;IAChC;0CACsC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;mCAC+B;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,EAC3B,kBAAkB,EAClB,OAAgB,EAChB,KAAuC,EACvC,WAAW,EACX,eAAe,EACf,SAAS,GACV,EAAE,iBAAiB,2CAqEnB"}
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ // AccessDenied — the RBAC deny affordance (UA-7). Rendered when a signed-in
4
+ // member lacks a required permission: names EXACTLY what's missing (the
5
+ // unified-grammar `<subject>:<verb>` the edge would also deny) and offers an
6
+ // optional request-access hook. The permission axis never upsells — the
7
+ // viewer's PLAN allows the surface; their ROLE doesn't — so this deliberately
8
+ // has no plan/upgrade wiring (that's <UpgradePrompt> on the entitlement axis).
9
+ //
10
+ // Layout-agnostic (SDK-first tenet): a plain card that drops into any custom
11
+ // frontend — as a <PermissionGate mode="fallback"> node, a route guard's
12
+ // denied render, or a full page body.
13
+ import { useState } from "react";
14
+ import { cx } from "./_internal.js";
15
+ /**
16
+ * A self-contained "you don't have access" card that names the missing
17
+ * permission and (optionally) starts a request-access flow.
18
+ *
19
+ * @example route-level deny under a guard:
20
+ * ```tsx
21
+ * <AccessDenied
22
+ * requiredPermission="audit_log:read"
23
+ * onRequestAccess={() =>
24
+ * fs.rbac.accessRequests.create({ permission: "audit_log:read" })
25
+ * }
26
+ * />
27
+ * ```
28
+ */
29
+ export function AccessDenied({ requiredPermission, variant = "page", title = "You don't have access to this", description, onRequestAccess, className, }) {
30
+ const [requestState, setRequestState] = useState("idle");
31
+ const body = description ??
32
+ (requiredPermission ? (_jsxs(_Fragment, { children: ["Your role doesn't include the", " ", _jsx("code", { className: "fs-access-denied__permission", children: requiredPermission }), " ", "permission. An organization owner or admin can grant it."] })) : (_jsx(_Fragment, { children: "Your role doesn't allow this. An organization owner or admin can grant access." })));
33
+ const requestAccess = async () => {
34
+ if (!onRequestAccess || requestState === "sending")
35
+ return;
36
+ setRequestState("sending");
37
+ try {
38
+ await onRequestAccess();
39
+ setRequestState("sent");
40
+ }
41
+ catch {
42
+ setRequestState("error");
43
+ }
44
+ };
45
+ return (_jsxs("section", { role: "alert", className: cx("fs-card", "fs-access-denied", variant === "page" && "fs-access-denied--page", className), children: [_jsx("h2", { className: "fs-access-denied__title", children: title }), _jsx("p", { className: "fs-muted fs-access-denied__body", children: body }), onRequestAccess &&
46
+ (requestState === "sent" ? (_jsx("p", { className: "fs-access-denied__sent", children: "Request sent \u2014 an owner will review it." })) : (_jsxs("div", { className: "fs-access-denied__actions", children: [_jsx("button", { type: "button", className: "fs-btn fs-btn--outline fs-btn--sm", onClick: () => void requestAccess(), disabled: requestState === "sending", children: requestState === "sending" ? "Sending…" : "Request access" }), requestState === "error" && (_jsx("span", { className: "fs-access-denied__error", children: "Couldn't send the request \u2014 try again." }))] })))] }));
47
+ }
48
+ //# sourceMappingURL=access-denied.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-denied.js","sourceRoot":"","sources":["../../src/components/access-denied.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,4EAA4E;AAC5E,wEAAwE;AACxE,6EAA6E;AAC7E,wEAAwE;AACxE,8EAA8E;AAC9E,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,sCAAsC;AAEtC,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAwBpC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,kBAAkB,EAClB,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,+BAA+B,EACvC,WAAW,EACX,eAAe,EACf,SAAS,GACS;IAClB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAE9C,MAAM,CAAC,CAAC;IAEV,MAAM,IAAI,GACR,WAAW;QACX,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACpB,+DACgC,GAAG,EACjC,eAAM,SAAS,EAAC,8BAA8B,YAC3C,kBAAkB,GACd,EAAC,GAAG,gEAEV,CACJ,CAAC,CAAC,CAAC,CACF,+GAGG,CACJ,CAAC,CAAC;IAEL,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,eAAe,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO;QAC3D,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,eAAe,EAAE,CAAC;YACxB,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,mBACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CACX,SAAS,EACT,kBAAkB,EAClB,OAAO,KAAK,MAAM,IAAI,wBAAwB,EAC9C,SAAS,CACV,aAED,aAAI,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAM,EACpD,YAAG,SAAS,EAAC,iCAAiC,YAAE,IAAI,GAAK,EACxD,eAAe;gBACd,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,CACzB,YAAG,SAAS,EAAC,wBAAwB,6DAEjC,CACL,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mCAAmC,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACnC,QAAQ,EAAE,YAAY,KAAK,SAAS,YAEnC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,GACpD,EACR,YAAY,KAAK,OAAO,IAAI,CAC3B,eAAM,SAAS,EAAC,yBAAyB,4DAElC,CACR,IACG,CACP,CAAC,IACI,CACX,CAAC;AACJ,CAAC"}
@@ -36,14 +36,23 @@ export interface FsAuth {
36
36
  * access). `[]` while loading / signed out. */
37
37
  permissions: string[];
38
38
  /**
39
- * Whether the signed-in user's permissions grant `key`. `"*"` grants
40
- * everything; returns `false` while permissions load and when signed out.
39
+ * Whether the signed-in user's permissions grant `key` under the unified
40
+ * grammar (`*` / `<subject>:*` / exact — no verb-class widening). Returns
41
+ * `false` while permissions load and when signed out.
41
42
  *
42
43
  * ⚠️ UX ONLY — hide affordances with it, but the gateway's `permission`
43
44
  * constraint is the security boundary: a request the user isn't permitted
44
45
  * to make is denied at the edge regardless of what the client renders.
45
46
  */
46
47
  hasPermission(key: string): boolean;
48
+ /**
49
+ * True once the Managed-RBAC claim has settled: the `/me` read answered
50
+ * (or failed → deny-defaults locked in), or the viewer is signed out /
51
+ * auth finished loading without a session. While false, permission-gated
52
+ * UI should render a pending placeholder instead of flashing a deny —
53
+ * `usePermissionGate` consumes this so `<PermissionGate>` never flickers.
54
+ */
55
+ authzLoaded: boolean;
47
56
  }
48
57
  export declare function useFsAuth(): FsAuth;
49
58
  /** Like {@link useFsAuth} but null outside the managed auth layer — lets
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/components/auth.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU5D;;;+EAG+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB;iFAC6E;IAC7E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB;qFACiF;IACjF,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;mCAC+B;IAC/B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,OAAO,IAAI,IAAI,CAAC;IAChB;;;eAGW;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;oDAEgD;IAChD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC;AAaD,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED;0EAC0E;AAC1E,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAID,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG7D;AAED;oCACoC;AACpC,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG9D;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAGhE;AAED;;mEAEmE;AACnE,wBAAgB,cAAc,CAAC,EAC7B,SAA2C,EAC3C,QAAoB,GACrB,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CAOA;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,EAC9B,SAA+C,EAC/C,QAAqB,GACtB,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CAWA;AAqZD;;;+CAG+C;AAC/C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,aAAa,GAAG,SAAS,CAS3B;AAqED;iFACiF;AACjF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAgBA;AAID;;0EAE0E;AAC1E,wBAAgB,YAAY,mDA6B3B"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/components/auth.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU5D;;;+EAG+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB;iFAC6E;IAC7E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB;qFACiF;IACjF,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;mCAC+B;IAC/B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,OAAO,IAAI,IAAI,CAAC;IAChB;;;eAGW;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;oDAEgD;IAChD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;OAQG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAiBD,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED;0EAC0E;AAC1E,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAID,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG7D;AAED;oCACoC;AACpC,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG9D;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAGhE;AAED;;mEAEmE;AACnE,wBAAgB,cAAc,CAAC,EAC7B,SAA2C,EAC3C,QAAoB,GACrB,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CAOA;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,EAC9B,SAA+C,EAC/C,QAAqB,GACtB,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CAWA;AAqZD;;;+CAG+C;AAC/C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,aAAa,GAAG,SAAS,CAS3B;AAmFD;iFACiF;AACjF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAgBA;AAID;;0EAE0E;AAC1E,wBAAgB,YAAY,mDA6B3B"}
@@ -23,7 +23,7 @@ import { createContext, useContext, useEffect, useMemo, useRef, useState, } from
23
23
  import { FartherShoreConfigError } from "../errors/index.js";
24
24
  import { readRuntimeConfig } from "../config.js";
25
25
  import { normalizeAuthUser } from "../auth-user.js";
26
- import { permissionGrants } from "../permissions.js";
26
+ import { permissionSatisfies } from "../permissions.js";
27
27
  import { useFartherShore, useSession } from "../react/index.js";
28
28
  import { useReactiveOrganizationId } from "../react/organization-context.js";
29
29
  import { useOptionalFsTheme } from "./theme.js";
@@ -36,6 +36,7 @@ const NO_AUTHZ = {
36
36
  roles: [],
37
37
  permissions: [],
38
38
  hasPermission: () => false,
39
+ authzLoaded: false,
39
40
  };
40
41
  export function useFsAuth() {
41
42
  const ctx = useContext(Ctx);
@@ -426,12 +427,22 @@ function FsAuthzBridge({ children }) {
426
427
  // what /me resolves, so it re-keys the read.
427
428
  const organizationId = useReactiveOrganizationId();
428
429
  const signedIn = Boolean(base?.loaded && base.signedIn);
429
- const [authz, setAuthz] = useState({ roles: [], permissions: [] });
430
+ const [authz, setAuthz] = useState({ roles: [], permissions: [], loaded: false });
430
431
  useEffect(() => {
431
432
  if (!signedIn) {
432
- setAuthz({ roles: [], permissions: [] });
433
+ // Signed out (or auth still loading): deny-defaults. They are SETTLED
434
+ // (authzLoaded) only once the auth layer itself has loaded — before
435
+ // that we genuinely don't know who the viewer is.
436
+ setAuthz({
437
+ roles: [],
438
+ permissions: [],
439
+ loaded: Boolean(base?.loaded),
440
+ });
433
441
  return;
434
442
  }
443
+ // A sign-in / org switch re-keys the read — mark unsettled while it runs
444
+ // so gates hold their pending state instead of flashing a deny.
445
+ setAuthz((prev) => ({ ...prev, loaded: false }));
435
446
  let alive = true;
436
447
  void fs
437
448
  .me()
@@ -441,23 +452,26 @@ function FsAuthzBridge({ children }) {
441
452
  setAuthz({
442
453
  roles: me?.roles ?? [],
443
454
  permissions: me?.permissions ?? [],
455
+ loaded: true,
444
456
  });
445
457
  })
446
458
  .catch(() => {
447
- // Best-effort: an unreadable /me keeps the deny-by-default UX slice.
459
+ // Best-effort: an unreadable /me locks in the deny-by-default slice.
448
460
  if (alive)
449
- setAuthz({ roles: [], permissions: [] });
461
+ setAuthz({ roles: [], permissions: [], loaded: true });
450
462
  });
451
463
  return () => {
452
464
  alive = false;
453
465
  };
454
- }, [fs, signedIn, organizationId]);
466
+ }, [fs, signedIn, organizationId, base?.loaded]);
455
467
  const value = useMemo(() => base
456
468
  ? {
457
469
  ...base,
458
470
  roles: authz.roles,
459
471
  permissions: authz.permissions,
460
- hasPermission: (key) => permissionGrants(authz.permissions, key),
472
+ // The unified grammar check (UA-1): `*` / `<subject>:*` / exact.
473
+ hasPermission: (key) => permissionSatisfies(key, authz.permissions),
474
+ authzLoaded: authz.loaded,
461
475
  }
462
476
  : null, [base, authz]);
463
477
  if (!value)
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/components/auth.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/components/auth.tsx"],"names":[],"mappings":"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"}
@@ -117,8 +117,7 @@
117
117
  ),
118
118
  linear-gradient(
119
119
  135deg,
120
- var(--fs-docs-accent, var(--fs-color-brand))
121
- 0%,
120
+ var(--fs-docs-accent, var(--fs-color-brand)) 0%,
122
121
  #46ec84 42%,
123
122
  #19e7dd 73%,
124
123
  #58e2ff 100%
@@ -42,6 +42,10 @@ export { LimitNotice } from "./limit-notice.js";
42
42
  export type { LimitNoticeProps } from "./limit-notice.js";
43
43
  export { FeatureGate, RequireCapability } from "./feature-gate.js";
44
44
  export type { FeatureGateProps, RequireCapabilityProps, } from "./feature-gate.js";
45
+ export { PermissionGate, usePermissionGate, usePermissionReadOnly, } from "./permission-gate.js";
46
+ export type { PermissionGateProps, PermissionGateStatus, } from "./permission-gate.js";
47
+ export { AccessDenied } from "./access-denied.js";
48
+ export type { AccessDeniedProps } from "./access-denied.js";
45
49
  export { TeamPanel } from "./team-panel.js";
46
50
  export type { TeamPanelProps } from "./team-panel.js";
47
51
  export { CancelSubscription } from "./cancel-subscription.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5E,OAAO,EACL,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAkCtD,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAIf,mBAAmB,EAInB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAGrB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,GACb,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,EACT,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,UAAU,EACV,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAIjF,OAAO,EACL,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,YAAY,IAAI,gBAAgB,EAChC,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,11 @@ export { FsLimitBoundary, useLimitHandler } from "./limit-boundary.js";
55
55
  // adaptive get their own remediation + a live cooldown).
56
56
  export { LimitNotice } from "./limit-notice.js";
57
57
  export { FeatureGate, RequireCapability } from "./feature-gate.js";
58
+ // UA-7 — the RBAC axis of UI gating (WHO the member is), sibling of the
59
+ // entitlement gates above (WHAT the plan grants). Public builder surface:
60
+ // any custom component can piggyback on managed RBAC with these.
61
+ export { PermissionGate, usePermissionGate, usePermissionReadOnly, } from "./permission-gate.js";
62
+ export { AccessDenied } from "./access-denied.js";
58
63
  /* ── W10 data-rich data components (à la carte — all zero-prop capable) ── */
59
64
  export { TeamPanel } from "./team-panel.js";
60
65
  export { CancelSubscription } from "./cancel-subscription.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/components/keys.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAE,iBAAsB,2CAyGjE"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/components/keys.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8CD,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAE,iBAAsB,2CAgJjE"}
@@ -7,22 +7,91 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  //
8
8
  // Ported from the dev-portal-template `Dashboard.tsx` `ApiKeysCard`, reskinned to
9
9
  // the SSR portal look via `fs-*` classes.
10
- import { useState } from "react";
11
- import { useApiKeys } from "../react/index.js";
10
+ //
11
+ // Granular Token Permissions: when the org has Managed-RBAC enabled, the create
12
+ // flow GROWS — a role-binding multi-select (the org's roles) plus an optional
13
+ // per-verb "Restrict permissions" picker fed by `fs.rbac.catalog()`. The bound
14
+ // permissions can never exceed the creator's own (the backend 403s an
15
+ // over-reaching binding; surfaced inline). RBAC-DISABLED orgs keep the simple
16
+ // one-click form untouched — the panel never REQUIRES RBAC.
17
+ import { useEffect, useState } from "react";
18
+ import { useApiKeys, useFartherShore } from "../react/index.js";
19
+ import { useReactiveOrganizationId } from "../react/organization-context.js";
12
20
  import { cx } from "./_internal.js";
21
+ /** Best-effort RBAC context for the create form: whether the org enforces
22
+ * roles, its role list, and the grantable catalog. All THREE stay empty/false
23
+ * when RBAC is unavailable (the `fs.rbac.*` methods throw typed errors for
24
+ * non-team / RBAC-off orgs — we swallow them and keep the simple form). */
25
+ function useRbacGrantContext() {
26
+ const fs = useFartherShore();
27
+ const organizationId = useReactiveOrganizationId();
28
+ const [enabled, setEnabled] = useState(false);
29
+ const [roles, setRoles] = useState([]);
30
+ const [catalog, setCatalog] = useState([]);
31
+ useEffect(() => {
32
+ let active = true;
33
+ setEnabled(false);
34
+ setRoles([]);
35
+ setCatalog([]);
36
+ void (async () => {
37
+ try {
38
+ const settings = await fs.rbac.settings.get();
39
+ if (!active || !settings.enabled)
40
+ return;
41
+ const [roleList, catalogEntries] = await Promise.all([
42
+ fs.rbac.roles.list(),
43
+ fs.rbac.catalog(),
44
+ ]);
45
+ if (!active)
46
+ return;
47
+ setEnabled(true);
48
+ setRoles(roleList);
49
+ setCatalog(catalogEntries);
50
+ }
51
+ catch {
52
+ /* RBAC unavailable — keep the simple form */
53
+ }
54
+ })();
55
+ return () => {
56
+ active = false;
57
+ };
58
+ }, [fs, organizationId]);
59
+ return { enabled, roles, catalog };
60
+ }
13
61
  export function ApiKeysPanel({ className } = {}) {
14
62
  const { data, isLoading, error, create, revoke } = useApiKeys();
63
+ const rbac = useRbacGrantContext();
64
+ const organizationId = useReactiveOrganizationId();
15
65
  const [secret, setSecret] = useState(null);
16
66
  const [busy, setBusy] = useState(false);
17
67
  const [actionError, setActionError] = useState(null);
68
+ // Advanced-form selections (only meaningful when rbac.enabled).
69
+ const [roleKeys, setRoleKeys] = useState([]);
70
+ const [restrictedPermissions, setRestrictedPermissions] = useState([]);
71
+ useEffect(() => {
72
+ setRoleKeys([]);
73
+ setRestrictedPermissions([]);
74
+ }, [organizationId]);
18
75
  async function onCreate() {
19
76
  setBusy(true);
20
77
  setActionError(null);
21
78
  try {
22
- const key = await create({ label: "portal" });
79
+ const key = await create(rbac.enabled
80
+ ? {
81
+ label: "portal",
82
+ roleKeys: roleKeys.length > 0 ? roleKeys : undefined,
83
+ restrictedPermissions: restrictedPermissions.length > 0
84
+ ? restrictedPermissions
85
+ : undefined,
86
+ }
87
+ : { label: "portal" });
23
88
  setSecret(key.secret);
89
+ setRoleKeys([]);
90
+ setRestrictedPermissions([]);
24
91
  }
25
92
  catch (err) {
93
+ // Surfaces the backend creator-intersection 403 ("Key bindings exceed
94
+ // your own permissions: …") and any validation message inline.
26
95
  setActionError(err instanceof Error ? err.message : "Could not create key");
27
96
  }
28
97
  finally {
@@ -38,9 +107,28 @@ export function ApiKeysPanel({ className } = {}) {
38
107
  setActionError(err instanceof Error ? err.message : "Could not revoke key");
39
108
  }
40
109
  }
41
- return (_jsxs("section", { className: cx("fs-card", className), children: [_jsxs("div", { className: "fs-card__head", children: [_jsx("h3", { className: "fs-card__title", children: "API keys" }), _jsx("button", { type: "button", className: "fs-btn fs-btn--outline fs-btn--sm", disabled: busy, onClick: () => void onCreate(), children: busy ? "Creating…" : "New key" })] }), secret && (_jsxs("div", { className: "fs-secret", children: [_jsx("div", { className: "fs-secret__label", children: "New key \u2014 copy it now, it is shown only once." }), _jsx("code", { className: "fs-secret__value", children: secret }), _jsx("button", { type: "button", className: "fs-linkbtn fs-secret__dismiss", onClick: () => setSecret(null), children: "Dismiss" })] })), actionError && _jsx("p", { className: "fs-error fs-card__note", children: actionError }), isLoading ? (_jsx("p", { className: "fs-muted", children: "Loading\u2026" })) : error ? (_jsx("p", { className: "fs-error", children: error.message })) : data && data.length > 0 ? (_jsx("ul", { className: "fs-rows", children: data.map((k) => {
110
+ return (_jsxs("section", { className: cx("fs-card", className), children: [_jsxs("div", { className: "fs-card__head", children: [_jsx("h3", { className: "fs-card__title", children: "API keys" }), _jsx("button", { type: "button", className: "fs-btn fs-btn--outline fs-btn--sm", disabled: busy, onClick: () => void onCreate(), children: busy ? "Creating…" : "New key" })] }), rbac.enabled && (_jsx(KeyGrantForm, { roles: rbac.roles, catalog: rbac.catalog, roleKeys: roleKeys, onRoleKeysChange: setRoleKeys, restrictedPermissions: restrictedPermissions, onRestrictedPermissionsChange: setRestrictedPermissions, disabled: busy })), secret && (_jsxs("div", { className: "fs-secret", children: [_jsx("div", { className: "fs-secret__label", children: "New key \u2014 copy it now, it is shown only once." }), _jsx("code", { className: "fs-secret__value", children: secret }), _jsx("button", { type: "button", className: "fs-linkbtn fs-secret__dismiss", onClick: () => setSecret(null), children: "Dismiss" })] })), actionError && _jsx("p", { className: "fs-error fs-card__note", children: actionError }), isLoading ? (_jsx("p", { className: "fs-muted", children: "Loading\u2026" })) : error ? (_jsx("p", { className: "fs-error", children: error.message })) : data && data.length > 0 ? (_jsx("ul", { className: "fs-rows", children: data.map((k) => {
42
111
  const active = k.status === "active";
43
112
  return (_jsxs("li", { className: "fs-row", children: [_jsxs("span", { className: "fs-row__main", children: [_jsxs("code", { className: "fs-code-inline", children: [k.keyPrefix, "\u2026"] }), k.label && (_jsx("span", { className: "fs-muted fs-row__label", children: k.label }))] }), _jsxs("span", { className: "fs-row__actions", children: [_jsx("span", { className: `fs-tag${active ? " fs-tag--ok" : " fs-tag--muted"}`, children: k.status }), active && (_jsx("button", { type: "button", className: "fs-linkbtn fs-linkbtn--danger", onClick: () => void onRevoke(k.id), children: "Revoke" }))] })] }, k.id));
44
113
  }) })) : (_jsx("p", { className: "fs-muted", children: "No keys yet \u2014 create one to call the API." }))] }));
45
114
  }
115
+ // Advanced create form (RBAC-enabled orgs): bind roles + optionally narrow to a
116
+ // per-verb subset. The bound permissions are the union of the selected roles ∩
117
+ // the checked restriction; both are capped at the creator's own permissions by
118
+ // the backend.
119
+ function KeyGrantForm({ roles, catalog, roleKeys, onRoleKeysChange, restrictedPermissions, onRestrictedPermissionsChange, disabled, }) {
120
+ const selectedRoles = new Set(roleKeys);
121
+ const selectedPerms = new Set(restrictedPermissions);
122
+ function toggle(value, set, onChange) {
123
+ const next = new Set(set);
124
+ if (next.has(value))
125
+ next.delete(value);
126
+ else
127
+ next.add(value);
128
+ onChange([...next]);
129
+ }
130
+ return (_jsxs("div", { className: "fs-keygrant", children: [roles.length > 0 && (_jsxs("fieldset", { className: "fs-keygrant__group", children: [_jsx("legend", { className: "fs-keygrant__legend", children: "Roles" }), _jsx("div", { className: "fs-keygrant__opts", children: roles.map((role) => (_jsxs("label", { className: "fs-keygrant__opt", children: [_jsx("input", { type: "checkbox", checked: selectedRoles.has(role.roleKey), disabled: disabled, onChange: () => toggle(role.roleKey, selectedRoles, onRoleKeysChange) }), _jsx("span", { children: role.name })] }, role.roleKey))) })] })), catalog.length > 0 && (_jsxs("details", { className: "fs-keygrant__restrict", children: [_jsxs("summary", { className: "fs-keygrant__legend", children: ["Restrict permissions (optional)", restrictedPermissions.length > 0
131
+ ? ` — ${restrictedPermissions.length} selected`
132
+ : ""] }), _jsx("p", { className: "fs-muted fs-keygrant__hint", children: "Leave unchecked to grant the full set of the selected roles. Selecting permissions narrows the key to that subset." }), catalog.map((entry) => (_jsxs("fieldset", { className: "fs-keygrant__group", children: [_jsx("legend", { className: "fs-keygrant__legend", children: entry.title ?? entry.feature }), _jsx("div", { className: "fs-keygrant__opts", children: entry.permissions.map((permission) => (_jsxs("label", { className: "fs-keygrant__opt", children: [_jsx("input", { type: "checkbox", checked: selectedPerms.has(permission), disabled: disabled, onChange: () => toggle(permission, selectedPerms, onRestrictedPermissionsChange) }), _jsx("span", { className: "fs-code-inline", children: permission.split(":")[1] ?? permission })] }, permission))) })] }, entry.feature)))] }))] }));
133
+ }
46
134
  //# sourceMappingURL=keys.js.map