@fusebase/fusebase-gate-sdk 2.3.15 → 2.3.16-sdk.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusebase/fusebase-gate-sdk",
3
- "version": "2.3.15",
3
+ "version": "2.3.16-sdk.0",
4
4
  "description": "TypeScript SDK for Fusebase Gate APIs - Generated from contract introspection",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -0,0 +1,9 @@
1
+ # Release Notes 2.3.16-sdk.0
2
+
3
+ - Current ref: `HEAD`
4
+ - Previous tag: `v2.3.16-sdk.0`
5
+ - Generated at: 2026-06-30T03:25:42.791Z
6
+
7
+ ## Included Drafts
8
+
9
+ - None
@@ -1,8 +1,8 @@
1
- # Release Notes 2.3.15
1
+ # Release Notes 2.3.16-sdk.0
2
2
 
3
3
  - Current ref: `HEAD`
4
- - Previous tag: `v2.3.15`
5
- - Generated at: 2026-06-29T18:10:56.382Z
4
+ - Previous tag: `v2.3.16-sdk.0`
5
+ - Generated at: 2026-06-30T03:25:42.791Z
6
6
 
7
7
  ## Included Drafts
8
8
 
@@ -1,102 +0,0 @@
1
- # Release Notes 2.3.13-sdk.0
2
-
3
- - Current ref: `HEAD`
4
- - Previous tag: `v2.3.12`
5
- - Generated at: 2026-06-29T09:24:21.148Z
6
-
7
- ## Included Drafts
8
-
9
- - `docs/release-notes/2026-06-16-bulk-invite-to-portal.md` - Bulk invite users to a portal
10
- - `docs/release-notes/2026-06-29-app-portal-embeds-iframe-kind.md` - App portal embeds — detect iframe embeds, add `kind`
11
-
12
- ## Summary
13
-
14
- ### Bulk invite users to a portal
15
-
16
- Gate exposes `POST /:orgId/portals/:portalId/invite/bulk` (`bulkInviteToPortal`) to invite many users to a single portal in one request, replacing N sequential `inviteToPortal` calls. Invites run with bounded concurrency (default 5, max 5); the rest are queued. Portal discovery (`listPortals`/`getPortal`) runs once for the whole batch. An optional `background` mode returns immediately without blocking the caller.
17
-
18
- ### App portal embeds — detect iframe embeds, add `kind`
19
-
20
- Extends `listAppPortalEmbeds` to also report portal pages where the app is embedded
21
- via a regular `embed` (iframe) block whose `contentUrl` points at the app host, in
22
- addition to the existing `app-feature` brick embeds. Every entry now carries a
23
- `kind` discriminator. Detection works for all consumers, including the in-app
24
- runtime app-token path.
25
-
26
-
27
- ## API / SDK Changes
28
-
29
- ### Bulk invite users to a portal
30
-
31
- - Added `bulkInviteToPortal` operation and `PortalsApi.bulkInviteToPortal` SDK client method.
32
- - Request: `invitations[]` (each item matches `inviteToPortal`: `email` required; optional `fullName`, `orgRole`, `workspaceRole`, `isFullAccess`), optional `concurrency` (1..5, default 5), optional `background` (default false).
33
- - Response: `total`, `status` (`completed` | `processing`). For `completed`: `succeeded`, `failed`, `results[]` (`{ email, status, magicLink?, url?, userId?, error? }`). For `processing`: `accepted`.
34
- - Per-invitation `orgRole`/`isFullAccess` semantics are identical to `inviteToPortal` (shared `invitePortalUser` helper).
35
- - Permission: `portals.manage` with org-scoped authz (same as `inviteToPortal`).
36
- - MCP: `bulkInviteToPortal` is MCP-visible under the `portals` prompt group; the prompt now documents batching, concurrency, background mode, and the client access-clarification rule.
37
-
38
- ### App portal embeds — detect iframe embeds, add `kind`
39
-
40
- - `ListAppPortalEmbedsResponse` entries gain `kind: 'app-feature' | 'iframe'`
41
- (additive, non-breaking).
42
- - `listAppPortalEmbeds` now merges two portal-service searches:
43
- - existing brick search (`blockType=flexible`, `brickType=app-feature`,
44
- `brickMatch=featureId:<appId>`) → `kind: 'app-feature'`.
45
- - new iframe search (`blockType=embed`, `attrContains=contentUrl:<host>` per
46
- resolved host) → `kind: 'iframe'`.
47
- - Host(s) resolved via nimbus-ai `apiGetAppByGlobalId` using a secret-only
48
- ("visitor") header (no caller user id), so the app-token runtime path works too.
49
- Takes the host of `url` and, when set, of `customDomainFqdn` (deduped).
50
- - Merge is per page with brick precedence: a page matched by both stays
51
- `app-feature`.
52
- - Graceful degrade: if host resolution yields nothing (app not found / unpublished
53
- / nimbus-ai unreachable), the iframe search is skipped and brick embeds are
54
- returned normally — the op never fails on this.
55
-
56
-
57
- ## Consumer Impact
58
-
59
- ### Bulk invite users to a portal
60
-
61
- - App agents inviting several clients can issue one call instead of N blocking sequential requests.
62
- - Single `inviteToPortal` is unchanged; behavior and response shape are preserved.
63
- - Failures are isolated per invitee in `completed` mode — a single bad invite does not fail the batch.
64
-
65
- ### App portal embeds — detect iframe embeds, add `kind`
66
-
67
- - public-api / CLI / frontend receive the new `kind` field; downstream consumers
68
- pass it through without behavioral or visual differentiation for now.
69
- - Requires `npm run build:sdk` to publish the additive `kind` field and the updated
70
- op description.
71
-
72
-
73
- ## Verification
74
-
75
- ### Bulk invite users to a portal
76
-
77
- - `npm test -- tests/unit/portals-bulk-invite-controller.test.ts tests/unit/concurrency.test.ts tests/unit/portals-controller.test.ts`
78
- - `npm run build`
79
- - `npm run build:sdk`
80
- - `npm run mcp:skills:generate` (validate blocked locally: `skills-ref` Python module unavailable in this environment)
81
-
82
- ### App portal embeds — detect iframe embeds, add `kind`
83
-
84
- - `eslint` and `tsc --noEmit` clean on the changed files (whole-project tsc: 0
85
- errors).
86
- - Runtime (user): embed an app via a regular `embed` block (managed or custom host,
87
- with path/query) → page appears with `kind: 'iframe'`; brick + iframe on the same
88
- page → one `app-feature` row; nimbus-ai down / app unpublished → brick results
89
- returned normally. Works for internal-user and app-token auth.
90
-
91
-
92
- ## Follow-ups
93
-
94
- ### Bulk invite users to a portal
95
-
96
- - Background mode is fire-and-forget within the request pod; if durable retry/observability is later required, move bulk processing to a worker/queue.
97
-
98
- ### App portal embeds — detect iframe embeds, add `kind`
99
-
100
- - Regenerate + publish the SDK (`npm run build:sdk` / `build:sdk:push`); note the
101
- version for the M3A (public-api) and M4A (nx-frontend) pin bumps.
102
- - M3A/M4A/M5A pass `kind` through unchanged.
@@ -1,9 +0,0 @@
1
- # Release Notes 2.3.15
2
-
3
- - Current ref: `HEAD`
4
- - Previous tag: `v2.3.15`
5
- - Generated at: 2026-06-29T18:10:56.382Z
6
-
7
- ## Included Drafts
8
-
9
- - None