@fusebase/fusebase-gate-sdk 2.3.16 → 2.3.17
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/dist/apis/NotesApi.d.ts +14 -1
- package/dist/apis/NotesApi.js +15 -0
- package/dist/apis/PortalsApi.d.ts +13 -1
- package/dist/apis/PortalsApi.js +15 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/note/note.d.ts +10 -0
- package/dist/types/portals/portals.d.ts +46 -0
- package/dist/types/token/token.d.ts +1 -0
- package/package.json +1 -1
- package/release-notes/2.3.16-sdk.2.md +49 -0
- package/release-notes/2.3.17.md +9 -0
- package/release-notes/latest.md +3 -3
- package/release-notes/2.3.16-sdk.1.md +0 -9
- package/release-notes/2.3.16.md +0 -9
package/dist/apis/NotesApi.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Domain: notes
|
|
6
6
|
*/
|
|
7
7
|
import type { Client } from "../runtime/transport";
|
|
8
|
-
import type { AddWorkspaceNoteAttachmentRequestContract, AddWorkspaceNoteAttachmentResponseContract, CreateWorkspaceNoteFolderRequestContract, CreateWorkspaceNoteFolderResponseContract, CreateWorkspaceNoteRequestContract, CreateWorkspaceNoteResponseContract, orgIdInPathRequired, WorkspaceIdInPathRequired, WorkspaceNoteContentResponseContract, WorkspaceNoteFolderListResponseContract, WorkspaceNoteIdInPathRequired, WorkspaceNoteListResponseContract, WorkspaceNoteParentIdInQueryOptional } from "../types";
|
|
8
|
+
import type { AddWorkspaceNoteAttachmentRequestContract, AddWorkspaceNoteAttachmentResponseContract, AppendWorkspaceNoteContentRequestContract, CreateWorkspaceNoteFolderRequestContract, CreateWorkspaceNoteFolderResponseContract, CreateWorkspaceNoteRequestContract, CreateWorkspaceNoteResponseContract, orgIdInPathRequired, WorkspaceIdInPathRequired, WorkspaceNoteContentResponseContract, WorkspaceNoteFolderListResponseContract, WorkspaceNoteIdInPathRequired, WorkspaceNoteListResponseContract, WorkspaceNoteParentIdInQueryOptional } from "../types";
|
|
9
9
|
export declare class NotesApi {
|
|
10
10
|
private client;
|
|
11
11
|
constructor(client: Client);
|
|
@@ -22,6 +22,19 @@ export declare class NotesApi {
|
|
|
22
22
|
headers?: Record<string, string>;
|
|
23
23
|
body: AddWorkspaceNoteAttachmentRequestContract;
|
|
24
24
|
}): Promise<AddWorkspaceNoteAttachmentResponseContract>;
|
|
25
|
+
/**
|
|
26
|
+
* Append content to workspace note
|
|
27
|
+
* Appends text or html to the end of an existing workspace note without replacing current content, then returns the refreshed note md. Prefer a real workspace id; when the path workspaceId is `default`, gate resolves it to the organization's default workspace before calling note-service and editor-server. For markdown sources, apps should render markdown to html before calling this operation when formatting fidelity matters; otherwise send markdown-like text as `format: text`.
|
|
28
|
+
*/
|
|
29
|
+
appendWorkspaceNoteContent(params: {
|
|
30
|
+
path: {
|
|
31
|
+
orgId: orgIdInPathRequired;
|
|
32
|
+
workspaceId: WorkspaceIdInPathRequired;
|
|
33
|
+
noteId: WorkspaceNoteIdInPathRequired;
|
|
34
|
+
};
|
|
35
|
+
headers?: Record<string, string>;
|
|
36
|
+
body: AppendWorkspaceNoteContentRequestContract;
|
|
37
|
+
}): Promise<WorkspaceNoteContentResponseContract>;
|
|
25
38
|
/**
|
|
26
39
|
* Create workspace note
|
|
27
40
|
* Creates a note in the requested workspace. Prefer a real workspace id; when the path workspaceId is `default`, gate resolves it to the organization's default workspace before calling note-service and editor-server. When parentId is omitted, gate uses `default`. Optional initial text or html can be appended after creation.
|
package/dist/apis/NotesApi.js
CHANGED
|
@@ -26,6 +26,21 @@ class NotesApi {
|
|
|
26
26
|
expectedContentType: "application/json",
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Append content to workspace note
|
|
31
|
+
* Appends text or html to the end of an existing workspace note without replacing current content, then returns the refreshed note md. Prefer a real workspace id; when the path workspaceId is `default`, gate resolves it to the organization's default workspace before calling note-service and editor-server. For markdown sources, apps should render markdown to html before calling this operation when formatting fidelity matters; otherwise send markdown-like text as `format: text`.
|
|
32
|
+
*/
|
|
33
|
+
async appendWorkspaceNoteContent(params) {
|
|
34
|
+
return this.client.request({
|
|
35
|
+
method: "POST",
|
|
36
|
+
path: "/:orgId/workspaces/:workspaceId/notes/:noteId/content",
|
|
37
|
+
pathParams: params.path,
|
|
38
|
+
headers: params.headers,
|
|
39
|
+
body: params.body,
|
|
40
|
+
opId: "appendWorkspaceNoteContent",
|
|
41
|
+
expectedContentType: "application/json",
|
|
42
|
+
});
|
|
43
|
+
}
|
|
29
44
|
/**
|
|
30
45
|
* Create workspace note
|
|
31
46
|
* Creates a note in the requested workspace. Prefer a real workspace id; when the path workspaceId is `default`, gate resolves it to the organization's default workspace before calling note-service and editor-server. When parentId is omitted, gate uses `default`. Optional initial text or html can be appended after creation.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Domain: portals
|
|
6
6
|
*/
|
|
7
7
|
import type { Client } from "../runtime/transport";
|
|
8
|
-
import type { AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, globalIdInPathRequired, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract } from "../types";
|
|
8
|
+
import type { AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalBlockRequestContract, AddPortalBlockResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, globalIdInPathRequired, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract } from "../types";
|
|
9
9
|
export declare class PortalsApi {
|
|
10
10
|
private client;
|
|
11
11
|
constructor(client: Client);
|
|
@@ -21,6 +21,18 @@ export declare class PortalsApi {
|
|
|
21
21
|
headers?: Record<string, string>;
|
|
22
22
|
body: AddPortalAppPageRequestContract;
|
|
23
23
|
}): Promise<AddPortalAppPageResponseContract>;
|
|
24
|
+
/**
|
|
25
|
+
* Add a block of any palette type to a portal page
|
|
26
|
+
* Stages a single block of any supported type onto an existing portal page — the universal building block behind the customizer's 'Add new block' palette (no new page or sidebar item is created). Pass pageId (the target page node id from listPortalContent) and type. Supported types: note, content, embed, chat, info, docs, help, request, meetings, links, task-list, projection, files-dashboard, tasks-dashboard, chats-dashboard, files-recent, files-bucket, flexible. Type-specific fields: note/content require noteId; flexible requires template (e.g. {type:'text'|'image'|'title'|'code'|'form'|'dashboard'|'ai-agent'|'app-feature'|...}) and may carry bricks; embed/info/projection/task-list and others take their fields via the free-form `properties` object (e.g. embedType/content/contentUrl, image/link, sourcePortalId/sourcePageId/sourceBlockId, taskListIds). Use addPortalNoteBlock for the common note case or addPortalAppPage for an app on its own page. Note: a `content` block renames the page to its title, so leave title empty for content blocks. The block is staged in the portal's customizer draft (not published immediately); the owner reviews and publishes it. Returns the block id and the draft branch/seqs. Requires portals.write access.
|
|
27
|
+
*/
|
|
28
|
+
addPortalBlock(params: {
|
|
29
|
+
path: {
|
|
30
|
+
orgId: orgIdInPathRequired;
|
|
31
|
+
portalId: globalIdInPathRequired;
|
|
32
|
+
};
|
|
33
|
+
headers?: Record<string, string>;
|
|
34
|
+
body: AddPortalBlockRequestContract;
|
|
35
|
+
}): Promise<AddPortalBlockResponseContract>;
|
|
24
36
|
/**
|
|
25
37
|
* Add an existing Fusebase note as a block to a portal page
|
|
26
38
|
* Embeds an existing Fusebase note as a content block on an existing portal page (no new page or sidebar item is created). The note must already exist in the portal's workspace and be shared into the portal (e.g. created via createPortalPageWithNote). Pass pageId (the target page node id, obtained from listPortalContent) and noteId. The block is staged in the portal's customizer draft (not published immediately): the portal owner opens the customizer, reviews the pending block, and publishes it. Returns the created block id and the draft branch/seqs. Requires portals.write access.
|
package/dist/apis/PortalsApi.js
CHANGED
|
@@ -26,6 +26,21 @@ class PortalsApi {
|
|
|
26
26
|
expectedContentType: "application/json",
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Add a block of any palette type to a portal page
|
|
31
|
+
* Stages a single block of any supported type onto an existing portal page — the universal building block behind the customizer's 'Add new block' palette (no new page or sidebar item is created). Pass pageId (the target page node id from listPortalContent) and type. Supported types: note, content, embed, chat, info, docs, help, request, meetings, links, task-list, projection, files-dashboard, tasks-dashboard, chats-dashboard, files-recent, files-bucket, flexible. Type-specific fields: note/content require noteId; flexible requires template (e.g. {type:'text'|'image'|'title'|'code'|'form'|'dashboard'|'ai-agent'|'app-feature'|...}) and may carry bricks; embed/info/projection/task-list and others take their fields via the free-form `properties` object (e.g. embedType/content/contentUrl, image/link, sourcePortalId/sourcePageId/sourceBlockId, taskListIds). Use addPortalNoteBlock for the common note case or addPortalAppPage for an app on its own page. Note: a `content` block renames the page to its title, so leave title empty for content blocks. The block is staged in the portal's customizer draft (not published immediately); the owner reviews and publishes it. Returns the block id and the draft branch/seqs. Requires portals.write access.
|
|
32
|
+
*/
|
|
33
|
+
async addPortalBlock(params) {
|
|
34
|
+
return this.client.request({
|
|
35
|
+
method: "POST",
|
|
36
|
+
path: "/:orgId/portals/:portalId/blocks",
|
|
37
|
+
pathParams: params.path,
|
|
38
|
+
headers: params.headers,
|
|
39
|
+
body: params.body,
|
|
40
|
+
opId: "addPortalBlock",
|
|
41
|
+
expectedContentType: "application/json",
|
|
42
|
+
});
|
|
43
|
+
}
|
|
29
44
|
/**
|
|
30
45
|
* Add an existing Fusebase note as a block to a portal page
|
|
31
46
|
* Embeds an existing Fusebase note as a content block on an existing portal page (no new page or sidebar item is created). The note must already exist in the portal's workspace and be shared into the portal (e.g. created via createPortalPageWithNote). Pass pageId (the target page node id, obtained from listPortalContent) and noteId. The block is staged in the portal's customizer draft (not published immediately): the portal owner opens the customizer, reviews the pending block, and publishes it. Returns the created block id and the draft branch/seqs. Requires portals.write access.
|
package/dist/types/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export * from "./org-group/org-group";
|
|
|
20
20
|
export type { CreateWorkspaceRequestContract, OrgInviteContract, OrgMagicLinkContract, OrgPortalContract, OrgPortalListResponseContract, OrgUserAddRequestContract, OrgUserAddResponseContract, OrgUserContract, OrgUserListResponseContract, OrgWorkspaceContract, OrgWorkspaceInviteContract, OrgWorkspaceListResponseContract, OrgWorkspaceMemberContract } from "./org-user/org-user";
|
|
21
21
|
export * from "./orgs/orgs";
|
|
22
22
|
export type { VerifyPortalFeatureContextTokenRequestContract, VerifyPortalFeatureContextTokenResponseContract } from "./portal-feature-context/portal-feature-context";
|
|
23
|
-
export type { AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, BulkInviteResultItemContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, BulkPortalInvitationContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, PortalContentItemContract, PortalDetailContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract, globalIdInPathRequired } from "./portals/portals";
|
|
23
|
+
export type { AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalBlockRequestContract, AddPortalBlockResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, BulkInviteResultItemContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, BulkPortalInvitationContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, PortalContentItemContract, PortalDetailContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract, globalIdInPathRequired } from "./portals/portals";
|
|
24
24
|
export * from "./shared/common";
|
|
25
25
|
export * from "./shared/enums";
|
|
26
26
|
export type { GetHealth200ResponseContract } from "./shared/health";
|
|
@@ -53,6 +53,16 @@ export interface CreateWorkspaceNoteRequestContract {
|
|
|
53
53
|
export interface CreateWorkspaceNoteResponseContract {
|
|
54
54
|
note: WorkspaceNoteSummaryContract;
|
|
55
55
|
}
|
|
56
|
+
export interface AppendWorkspaceNoteContentRequestContract {
|
|
57
|
+
/**
|
|
58
|
+
* Text or html to append to the end of the existing note.
|
|
59
|
+
*/
|
|
60
|
+
content: string;
|
|
61
|
+
/**
|
|
62
|
+
* Content format used with `content`. Defaults to `text`.
|
|
63
|
+
*/
|
|
64
|
+
format?: WorkspaceNoteContentFormatContract | null;
|
|
65
|
+
}
|
|
56
66
|
export interface AddWorkspaceNoteAttachmentRequestContract {
|
|
57
67
|
/**
|
|
58
68
|
* Stored-file UUID returned by completeMultipartFileUpload.
|
|
@@ -129,6 +129,52 @@ export interface AddPortalNoteBlockResponseContract {
|
|
|
129
129
|
*/
|
|
130
130
|
staged: boolean;
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Block types the portal-service draft reducer (`blockFromDto`) understands.
|
|
134
|
+
* Any other value is rejected with 400 (the reducer throws on unknown types,
|
|
135
|
+
* which would otherwise fail the whole draft at publish time).
|
|
136
|
+
*/
|
|
137
|
+
export type PortalBlockType = "note" | "content" | "embed" | "chat" | "info" | "docs" | "help" | "request" | "meetings" | "links" | "task-list" | "projection" | "files-dashboard" | "tasks-dashboard" | "chats-dashboard" | "files-recent" | "files-bucket" | "flexible";
|
|
138
|
+
export interface AddPortalBlockRequestContract {
|
|
139
|
+
/** Id of the existing portal page node to add the block to. */
|
|
140
|
+
pageId: string;
|
|
141
|
+
/** Block type to stage (see the op description for per-type fields). */
|
|
142
|
+
type: PortalBlockType;
|
|
143
|
+
/** Optional block title (defaults to the page's current title). */
|
|
144
|
+
title?: string;
|
|
145
|
+
/** Required for `note`/`content` blocks: the Fusebase note to embed. */
|
|
146
|
+
noteId?: string;
|
|
147
|
+
/** Required for `flexible` blocks: the flexible template, e.g. `{type:"text"}`. */
|
|
148
|
+
template?: {
|
|
149
|
+
type: string;
|
|
150
|
+
view?: string;
|
|
151
|
+
};
|
|
152
|
+
/** Optional bricks for `flexible` blocks. */
|
|
153
|
+
bricks?: unknown[];
|
|
154
|
+
/**
|
|
155
|
+
* Optional type-specific fields merged into the staged block verbatim, e.g.
|
|
156
|
+
* `embedType`/`content`/`contentUrl` for embed, `image`/`link` for info,
|
|
157
|
+
* `sourcePortalId`/`sourcePageId`/`sourceBlockId` for projection,
|
|
158
|
+
* `taskListIds` for task-list. Also overrides scaffold defaults (colspan,
|
|
159
|
+
* rowspan, …) when provided.
|
|
160
|
+
*/
|
|
161
|
+
properties?: Record<string, unknown>;
|
|
162
|
+
}
|
|
163
|
+
export interface AddPortalBlockResponseContract {
|
|
164
|
+
/** Id of the created block. */
|
|
165
|
+
blockId: string;
|
|
166
|
+
/** Id of the page the block was added to. */
|
|
167
|
+
pageId: string;
|
|
168
|
+
/** Draft branch the change was staged on. */
|
|
169
|
+
branchId: string;
|
|
170
|
+
/** Sequence numbers assigned to the staged change events (addBlock). */
|
|
171
|
+
seqs: number[];
|
|
172
|
+
/**
|
|
173
|
+
* Always true: the block is staged in the portal's customizer draft, not yet
|
|
174
|
+
* live. The portal owner reviews and publishes it from the customizer.
|
|
175
|
+
*/
|
|
176
|
+
staged: boolean;
|
|
177
|
+
}
|
|
132
178
|
export interface AddPortalAppPageRequestContract {
|
|
133
179
|
/**
|
|
134
180
|
* Global id of the published Fusebase product that owns the app (the product
|
package/package.json
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Release Notes 2.3.16-sdk.2
|
|
2
|
+
|
|
3
|
+
- Current ref: `HEAD`
|
|
4
|
+
- Previous tag: `v2.3.16`
|
|
5
|
+
- Generated at: 2026-06-30T20:37:18.064Z
|
|
6
|
+
|
|
7
|
+
## Included Drafts
|
|
8
|
+
|
|
9
|
+
- `docs/release-notes/2026-06-30-append-workspace-note-content.md` - Append workspace note content
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
### Append workspace note content
|
|
14
|
+
|
|
15
|
+
Add an append-only workspace note content operation for apps that need to add content to an existing note without replacing the note body.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## API / SDK Changes
|
|
19
|
+
|
|
20
|
+
### Append workspace note content
|
|
21
|
+
|
|
22
|
+
- Added `appendWorkspaceNoteContent`.
|
|
23
|
+
- The operation accepts a workspace note id plus non-empty `content`, with optional `format: "text" | "html"`.
|
|
24
|
+
- The operation appends to the end of the note and returns the refreshed note metadata plus `note.md`.
|
|
25
|
+
- Regenerated SDK/OpenAPI artifacts include the new Notes API method and request contract.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Consumer Impact
|
|
29
|
+
|
|
30
|
+
### Append workspace note content
|
|
31
|
+
|
|
32
|
+
Apps can now update existing notes by appending text or HTML instead of creating a new note. For Markdown sources, apps should render Markdown to HTML before calling the operation when formatting fidelity matters; otherwise send the content as text.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Verification
|
|
36
|
+
|
|
37
|
+
### Append workspace note content
|
|
38
|
+
|
|
39
|
+
- `npm run build:sdk`
|
|
40
|
+
- `npm run mcp:skills:generate`
|
|
41
|
+
- `npm run mcp:skills:validate`
|
|
42
|
+
- `npm run mcp:skills:copy-to-apps-cli:local`
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Follow-ups
|
|
46
|
+
|
|
47
|
+
### Append workspace note content
|
|
48
|
+
|
|
49
|
+
- Full note replacement/editing remains a separate product/API decision because it needs a canonical Markdown-to-editor-content conversion path.
|
package/release-notes/latest.md
CHANGED