@fusebase/fusebase-gate-sdk 2.10.0 → 2.11.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/dist/apis/AppApisApi.d.ts +12 -1
- package/dist/apis/AppApisApi.js +14 -0
- package/dist/apis/OrgUsersApi.d.ts +1 -1
- package/dist/apis/OrgUsersApi.js +1 -1
- package/dist/apis/PortalsApi.d.ts +11 -1
- package/dist/apis/PortalsApi.js +14 -0
- package/dist/types/app-api/app-api.d.ts +32 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/org-user/org-user.d.ts +7 -0
- package/dist/types/portals/portals.d.ts +34 -0
- package/package.json +1 -1
- package/release-notes/2.10.1-sdk.0.md +47 -0
- package/release-notes/2.11.0.md +9 -0
- package/release-notes/latest.md +3 -3
- package/release-notes/2.10.0.md +0 -9
- package/release-notes/2.7.2-sdk.2.md +0 -9
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Domain: app-apis
|
|
6
6
|
*/
|
|
7
7
|
import type { Client } from "../runtime/transport";
|
|
8
|
-
import type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract, orgIdInPathRequired, PublishedAppListResponseContract, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract } from "../types";
|
|
8
|
+
import type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract, orgIdInPathRequired, PublishedAppApiManifestContract, PublishedAppListResponseContract, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract } from "../types";
|
|
9
9
|
export declare class AppApisApi {
|
|
10
10
|
private client;
|
|
11
11
|
constructor(client: Client);
|
|
@@ -48,6 +48,17 @@ export declare class AppApisApi {
|
|
|
48
48
|
};
|
|
49
49
|
headers?: Record<string, string>;
|
|
50
50
|
}): Promise<AppApiOperationContract>;
|
|
51
|
+
/**
|
|
52
|
+
* Get a published app API manifest
|
|
53
|
+
* Returns the selected app's published app-api-registry manifest, including the complete parsed OpenAPI document. The caller must have org.read access and user-bound context.
|
|
54
|
+
*/
|
|
55
|
+
getPublishedAppApiManifest(params: {
|
|
56
|
+
path: {
|
|
57
|
+
orgId: orgIdInPathRequired;
|
|
58
|
+
appId: string;
|
|
59
|
+
};
|
|
60
|
+
headers?: Record<string, string>;
|
|
61
|
+
}): Promise<PublishedAppApiManifestContract>;
|
|
51
62
|
/**
|
|
52
63
|
* List app API operations
|
|
53
64
|
* Returns published app API operations visible inside the organization. Optional filters narrow the result by app, feature, visibility, and limit.
|
package/dist/apis/AppApisApi.js
CHANGED
|
@@ -55,6 +55,20 @@ class AppApisApi {
|
|
|
55
55
|
expectedContentType: "application/json",
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Get a published app API manifest
|
|
60
|
+
* Returns the selected app's published app-api-registry manifest, including the complete parsed OpenAPI document. The caller must have org.read access and user-bound context.
|
|
61
|
+
*/
|
|
62
|
+
async getPublishedAppApiManifest(params) {
|
|
63
|
+
return this.client.request({
|
|
64
|
+
method: "GET",
|
|
65
|
+
path: "/:orgId/apps/:appId/app-api-manifest",
|
|
66
|
+
pathParams: params.path,
|
|
67
|
+
headers: params.headers,
|
|
68
|
+
opId: "getPublishedAppApiManifest",
|
|
69
|
+
expectedContentType: "application/json",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
58
72
|
/**
|
|
59
73
|
* List app API operations
|
|
60
74
|
* Returns published app API operations visible inside the organization. Optional filters narrow the result by app, feature, visibility, and limit.
|
|
@@ -11,7 +11,7 @@ export declare class OrgUsersApi {
|
|
|
11
11
|
constructor(client: Client);
|
|
12
12
|
/**
|
|
13
13
|
* Add user to organization
|
|
14
|
-
* Invites a user into the organization. Without workspaceId it performs an org invite. With workspaceId it performs a workspace-aware invite and can resolve `default` to the organization's default workspace. For org-only instant client onboarding, send orgRole=`client` with autoConfirmClientInvite=`true`. A successful write does not prove that the current session already has org access; confirm access with getMyOrgAccess. Requires org.members.write and org access.
|
|
14
|
+
* Invites a user into the organization. Without workspaceId it performs an org invite. With workspaceId it performs a workspace-aware invite and can resolve `default` to the organization's default workspace. For org-only instant client onboarding, send orgRole=`client` with autoConfirmClientInvite=`true`. For service accounts (bots) that cannot click an invite email, send autoConfirmInvite=`true` to add an existing Fusebase account as a member of the path org right away with the requested orgRole. A successful write does not prove that the current session already has org access; confirm access with getMyOrgAccess. Requires org.members.write and org access.
|
|
15
15
|
*/
|
|
16
16
|
addOrgUser(params: {
|
|
17
17
|
path: {
|
package/dist/apis/OrgUsersApi.js
CHANGED
|
@@ -13,7 +13,7 @@ class OrgUsersApi {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Add user to organization
|
|
16
|
-
* Invites a user into the organization. Without workspaceId it performs an org invite. With workspaceId it performs a workspace-aware invite and can resolve `default` to the organization's default workspace. For org-only instant client onboarding, send orgRole=`client` with autoConfirmClientInvite=`true`. A successful write does not prove that the current session already has org access; confirm access with getMyOrgAccess. Requires org.members.write and org access.
|
|
16
|
+
* Invites a user into the organization. Without workspaceId it performs an org invite. With workspaceId it performs a workspace-aware invite and can resolve `default` to the organization's default workspace. For org-only instant client onboarding, send orgRole=`client` with autoConfirmClientInvite=`true`. For service accounts (bots) that cannot click an invite email, send autoConfirmInvite=`true` to add an existing Fusebase account as a member of the path org right away with the requested orgRole. A successful write does not prove that the current session already has org access; confirm access with getMyOrgAccess. Requires org.members.write and org access.
|
|
17
17
|
*/
|
|
18
18
|
async addOrgUser(params) {
|
|
19
19
|
return this.client.request({
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Domain: portals
|
|
6
6
|
*/
|
|
7
7
|
import type { Client } from "../runtime/transport";
|
|
8
|
-
import type { AddPortalAiAgentBlockRequestContract, AddPortalAiAgentBlockResponseContract, AddPortalAppBlockRequestContract, AddPortalAppBlockResponseContract, AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalBlankNoteBlockRequestContract, AddPortalBlankNoteBlockResponseContract, AddPortalBpmnDiagramBlockRequestContract, AddPortalBpmnDiagramBlockResponseContract, AddPortalCardBlockRequestContract, AddPortalCardBlockResponseContract, AddPortalCardGroupBlockRequestContract, AddPortalCardGroupBlockResponseContract, AddPortalCarouselBlockRequestContract, AddPortalCarouselBlockResponseContract, AddPortalChatBlockRequestContract, AddPortalChatBlockResponseContract, AddPortalChatsDashboardMenuItemRequestContract, AddPortalChatsDashboardMenuItemResponseContract, AddPortalCountdownBlockRequestContract, AddPortalCountdownBlockResponseContract, AddPortalCustomWidgetBlockRequestContract, AddPortalCustomWidgetBlockResponseContract, AddPortalDatabaseBlockRequestContract, AddPortalDatabaseBlockResponseContract, AddPortalDynamicTableBlockRequestContract, AddPortalDynamicTableBlockResponseContract, AddPortalEmbedBlockRequestContract, AddPortalEmbedBlockResponseContract, AddPortalFilesDashboardMenuItemRequestContract, AddPortalFilesDashboardMenuItemResponseContract, AddPortalFileUploaderBlockRequestContract, AddPortalFileUploaderBlockResponseContract, AddPortalFormBlockRequestContract, AddPortalFormBlockResponseContract, AddPortalHeadingBlockRequestContract, AddPortalHtmlCssBlockRequestContract, AddPortalHtmlCssBlockResponseContract, AddPortalImageBlockRequestContract, AddPortalInfoBlockRequestContract, AddPortalInfoBlockResponseContract, AddPortalInternalSpacePageRequestContract, AddPortalInternalSpacePageResponseContract, AddPortalKanbanBlockRequestContract, AddPortalKanbanBlockResponseContract, AddPortalLinkedBlockRequestContract, AddPortalLinkedBlockResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, AddPortalRecentFilesBlockRequestContract, AddPortalRecentFilesBlockResponseContract, AddPortalTaskListBlockRequestContract, AddPortalTaskListBlockResponseContract, AddPortalTasksDashboardMenuItemRequestContract, AddPortalTasksDashboardMenuItemResponseContract, AddPortalTextBlockRequestContract, AddPortalTimelineBlockRequestContract, AddPortalTimelineBlockResponseContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalLinkRequestContract, CreatePortalLinkResponseContract, CreatePortalPageRequestContract, CreatePortalPageResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DeletePortalItemResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, GetPortalBlockResponseContract, GetPortalPageBlockCountResponseContract, globalIdInPathRequired, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalAiAgentsResponseContract, ListPortalChatChannelsResponseContract, ListPortalChatUsersResponseContract, ListPortalContentResponseContract, ListPortalDatabaseBlockSourcesResponseContract, ListPortalLinkableBlocksResponseContract, ListPortalPageBlocksResponseContract, MovePortalBlockRequestContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract, PortalTextAndMediaBlockResponseContract, PublishPortalDraftResponseContract, SearchPortalInfoBlockIconsResponseContract, SetDashboardViewReadonlyRequestContract, SetDashboardViewReadonlyResponseContract, StagedPortalBlockResponseContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalAiAgentBlockRequestContract, UpdatePortalAppBlockRequestContract, UpdatePortalBpmnDiagramBlockRequestContract, UpdatePortalCardBlockRequestContract, UpdatePortalCardGroupBlockRequestContract, UpdatePortalCarouselBlockRequestContract, UpdatePortalChatBlockRequestContract, UpdatePortalContentPermissionsRequestContract, UpdatePortalContentPermissionsResponseContract, UpdatePortalCountdownBlockRequestContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract, UpdatePortalCustomWidgetBlockRequestContract, UpdatePortalDatabaseBlockRequestContract, UpdatePortalDynamicTableBlockRequestContract, UpdatePortalEmbedBlockRequestContract, UpdatePortalFileUploaderBlockRequestContract, UpdatePortalFormBlockRequestContract, UpdatePortalHomepageRequestContract, UpdatePortalHomepageResponseContract, UpdatePortalHtmlCssBlockRequestContract, UpdatePortalImageBlockRequestContract, UpdatePortalInfoBlockRequestContract, UpdatePortalItemRequestContract, UpdatePortalItemResponseContract, UpdatePortalLinkedBlockRequestContract, UpdatePortalNoteBlockRequestContract, UpdatePortalRecentFilesBlockRequestContract, UpdatePortalStyleRequestContract, UpdatePortalStyleResponseContract, UpdatePortalTextBlockRequestContract, UpdatePortalTimelineBlockRequestContract } from "../types";
|
|
8
|
+
import type { AddPortalAiAgentBlockRequestContract, AddPortalAiAgentBlockResponseContract, AddPortalAppBlockRequestContract, AddPortalAppBlockResponseContract, AddPortalAppPageRequestContract, AddPortalAppPageResponseContract, AddPortalBlankNoteBlockRequestContract, AddPortalBlankNoteBlockResponseContract, AddPortalBpmnDiagramBlockRequestContract, AddPortalBpmnDiagramBlockResponseContract, AddPortalCardBlockRequestContract, AddPortalCardBlockResponseContract, AddPortalCardGroupBlockRequestContract, AddPortalCardGroupBlockResponseContract, AddPortalCarouselBlockRequestContract, AddPortalCarouselBlockResponseContract, AddPortalChatBlockRequestContract, AddPortalChatBlockResponseContract, AddPortalChatsDashboardMenuItemRequestContract, AddPortalChatsDashboardMenuItemResponseContract, AddPortalCountdownBlockRequestContract, AddPortalCountdownBlockResponseContract, AddPortalCustomWidgetBlockRequestContract, AddPortalCustomWidgetBlockResponseContract, AddPortalDatabaseBlockRequestContract, AddPortalDatabaseBlockResponseContract, AddPortalDynamicTableBlockRequestContract, AddPortalDynamicTableBlockResponseContract, AddPortalEmbedBlockRequestContract, AddPortalEmbedBlockResponseContract, AddPortalFilesDashboardMenuItemRequestContract, AddPortalFilesDashboardMenuItemResponseContract, AddPortalFileUploaderBlockRequestContract, AddPortalFileUploaderBlockResponseContract, AddPortalFormBlockRequestContract, AddPortalFormBlockResponseContract, AddPortalHeadingBlockRequestContract, AddPortalHtmlCssBlockRequestContract, AddPortalHtmlCssBlockResponseContract, AddPortalImageBlockRequestContract, AddPortalInfoBlockRequestContract, AddPortalInfoBlockResponseContract, AddPortalInternalSpacePageRequestContract, AddPortalInternalSpacePageResponseContract, AddPortalKanbanBlockRequestContract, AddPortalKanbanBlockResponseContract, AddPortalLinkedBlockRequestContract, AddPortalLinkedBlockResponseContract, AddPortalNoteBlockRequestContract, AddPortalNoteBlockResponseContract, AddPortalRecentFilesBlockRequestContract, AddPortalRecentFilesBlockResponseContract, AddPortalTaskListBlockRequestContract, AddPortalTaskListBlockResponseContract, AddPortalTasksDashboardMenuItemRequestContract, AddPortalTasksDashboardMenuItemResponseContract, AddPortalTextBlockRequestContract, AddPortalTimelineBlockRequestContract, AddPortalTimelineBlockResponseContract, BulkInviteToPortalRequestContract, BulkInviteToPortalResponseContract, CreatePortalFolderRequestContract, CreatePortalFolderResponseContract, CreatePortalLinkRequestContract, CreatePortalLinkResponseContract, CreatePortalPageRequestContract, CreatePortalPageResponseContract, CreatePortalPageWithNoteRequestContract, CreatePortalPageWithNoteResponseContract, CreatePortalRequestContract, CreatePortalResponseContract, DeletePortalItemResponseContract, DuplicatePortalItemRequestContract, DuplicatePortalItemResponseContract, DuplicatePortalRequestContract, GetPortalBlockResponseContract, GetPortalPageBlockCountResponseContract, globalIdInPathRequired, InvitePortalManagerRequestContract, InvitePortalManagerResponseContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalAiAgentsResponseContract, ListPortalChatChannelsResponseContract, ListPortalChatUsersResponseContract, ListPortalContentResponseContract, ListPortalDatabaseBlockSourcesResponseContract, ListPortalLinkableBlocksResponseContract, ListPortalPageBlocksResponseContract, MovePortalBlockRequestContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract, PortalStyleContractResponseContract, PortalTextAndMediaBlockResponseContract, PublishPortalDraftResponseContract, SearchPortalInfoBlockIconsResponseContract, SetDashboardViewReadonlyRequestContract, SetDashboardViewReadonlyResponseContract, StagedPortalBlockResponseContract, UpdatePortalAccessRequestContract, UpdatePortalAccessResponseContract, UpdatePortalAiAgentBlockRequestContract, UpdatePortalAppBlockRequestContract, UpdatePortalBpmnDiagramBlockRequestContract, UpdatePortalCardBlockRequestContract, UpdatePortalCardGroupBlockRequestContract, UpdatePortalCarouselBlockRequestContract, UpdatePortalChatBlockRequestContract, UpdatePortalContentPermissionsRequestContract, UpdatePortalContentPermissionsResponseContract, UpdatePortalCountdownBlockRequestContract, UpdatePortalCustomCodeRequestContract, UpdatePortalCustomCodeResponseContract, UpdatePortalCustomWidgetBlockRequestContract, UpdatePortalDatabaseBlockRequestContract, UpdatePortalDynamicTableBlockRequestContract, UpdatePortalEmbedBlockRequestContract, UpdatePortalFileUploaderBlockRequestContract, UpdatePortalFormBlockRequestContract, UpdatePortalHomepageRequestContract, UpdatePortalHomepageResponseContract, UpdatePortalHtmlCssBlockRequestContract, UpdatePortalImageBlockRequestContract, UpdatePortalInfoBlockRequestContract, UpdatePortalItemRequestContract, UpdatePortalItemResponseContract, UpdatePortalLinkedBlockRequestContract, UpdatePortalNoteBlockRequestContract, UpdatePortalRecentFilesBlockRequestContract, UpdatePortalStyleRequestContract, UpdatePortalStyleResponseContract, UpdatePortalTextBlockRequestContract, UpdatePortalTimelineBlockRequestContract } from "../types";
|
|
9
9
|
export declare class PortalsApi {
|
|
10
10
|
private client;
|
|
11
11
|
constructor(client: Client);
|
|
@@ -567,6 +567,16 @@ export declare class PortalsApi {
|
|
|
567
567
|
};
|
|
568
568
|
headers?: Record<string, string>;
|
|
569
569
|
}): Promise<GetPortalPageBlockCountResponseContract>;
|
|
570
|
+
/**
|
|
571
|
+
* Get the portal styling contract
|
|
572
|
+
* Returns the machine-readable styling contract for portals: the stable `data-portal` structural hooks and class hooks that custom CSS may target, how to write selectors that apply, a verified example override, and the anti-contract. Pull it at runtime instead of hard-coding hooks; `version` is the same value getPortal returns as `style.styleContractVersion`, so a consumer can cache the contract and refetch when it changes. The contract is the same for every portal — orgId only scopes access. Requires portals.read access.
|
|
573
|
+
*/
|
|
574
|
+
getPortalStyleContract(params: {
|
|
575
|
+
path: {
|
|
576
|
+
orgId: orgIdInPathRequired;
|
|
577
|
+
};
|
|
578
|
+
headers?: Record<string, string>;
|
|
579
|
+
}): Promise<PortalStyleContractResponseContract>;
|
|
570
580
|
/**
|
|
571
581
|
* Invite a portal manager (customizer access)
|
|
572
582
|
* Invites a user as a PORTAL MANAGER via a magic link. A manager has access to the portal customizer and can build, edit, and publish the portal (layout, settings, widgets, custom code); they always get full access to all portal pages. This is a dedicated shortcut for inviteToPortal with orgRole='manager' — no access question is needed (managers are always full access). Returns a magic link for direct portal/customizer access without email confirmation. Requires portals.manage access.
|
package/dist/apis/PortalsApi.js
CHANGED
|
@@ -667,6 +667,20 @@ class PortalsApi {
|
|
|
667
667
|
expectedContentType: "application/json",
|
|
668
668
|
});
|
|
669
669
|
}
|
|
670
|
+
/**
|
|
671
|
+
* Get the portal styling contract
|
|
672
|
+
* Returns the machine-readable styling contract for portals: the stable `data-portal` structural hooks and class hooks that custom CSS may target, how to write selectors that apply, a verified example override, and the anti-contract. Pull it at runtime instead of hard-coding hooks; `version` is the same value getPortal returns as `style.styleContractVersion`, so a consumer can cache the contract and refetch when it changes. The contract is the same for every portal — orgId only scopes access. Requires portals.read access.
|
|
673
|
+
*/
|
|
674
|
+
async getPortalStyleContract(params) {
|
|
675
|
+
return this.client.request({
|
|
676
|
+
method: "GET",
|
|
677
|
+
path: "/:orgId/portal-style-contract",
|
|
678
|
+
pathParams: params.path,
|
|
679
|
+
headers: params.headers,
|
|
680
|
+
opId: "getPortalStyleContract",
|
|
681
|
+
expectedContentType: "application/json",
|
|
682
|
+
});
|
|
683
|
+
}
|
|
670
684
|
/**
|
|
671
685
|
* Invite a portal manager (customizer access)
|
|
672
686
|
* Invites a user as a PORTAL MANAGER via a magic link. A manager has access to the portal customizer and can build, edit, and publish the portal (layout, settings, widgets, custom code); they always get full access to all portal pages. This is a dedicated shortcut for inviteToPortal with orgRole='manager' — no access question is needed (managers are always full access). Returns a magic link for direct portal/customizer access without email confirmation. Requires portals.manage access.
|
|
@@ -40,6 +40,38 @@ export interface PublishedAppListResponseContract {
|
|
|
40
40
|
apps: PublishedAppContract[];
|
|
41
41
|
total: number;
|
|
42
42
|
}
|
|
43
|
+
export interface AppApiManifestOperationContract {
|
|
44
|
+
operationId: string;
|
|
45
|
+
method: string;
|
|
46
|
+
path: string;
|
|
47
|
+
summary?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
tags?: string[];
|
|
50
|
+
visibility?: string;
|
|
51
|
+
executionMode?: string;
|
|
52
|
+
allowedCallers?: string[];
|
|
53
|
+
requiredPermissions?: string[];
|
|
54
|
+
}
|
|
55
|
+
export interface AppApiRegistryManifestContract {
|
|
56
|
+
kind: "app-api-registry";
|
|
57
|
+
format: "openapi";
|
|
58
|
+
schemaVersion: string;
|
|
59
|
+
sourceFile: string;
|
|
60
|
+
publishedAt: string;
|
|
61
|
+
info: {
|
|
62
|
+
title: string;
|
|
63
|
+
version: string;
|
|
64
|
+
};
|
|
65
|
+
openapiVersion: string;
|
|
66
|
+
operations: AppApiManifestOperationContract[];
|
|
67
|
+
document: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
export interface PublishedAppApiManifestContract {
|
|
70
|
+
productId: string;
|
|
71
|
+
appId: string;
|
|
72
|
+
title: string;
|
|
73
|
+
manifest: AppApiRegistryManifestContract;
|
|
74
|
+
}
|
|
43
75
|
export interface CallAppApiRequestContract {
|
|
44
76
|
path?: Record<string, string>;
|
|
45
77
|
query?: Record<string, string | number | boolean>;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type { AuthenticatedUserSummaryContract, MyOrgAccessResponseContract } from "./access/access";
|
|
8
8
|
export type { AppAccessPrincipalContract, RemoveAppAccessPrincipalRequestContract, RemoveAppAccessPrincipalResponseContract } from "./app-access-principal/app-access-principal";
|
|
9
|
-
export type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract, PublishedAppContract, PublishedAppListResponseContract, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract, VerifyCaseResultContract } from "./app-api/app-api";
|
|
9
|
+
export type { AppApiManifestOperationContract, AppApiOperationContract, AppApiOperationListResponseContract, AppApiRegistryManifestContract, CallAppApiRequestContract, CallAppApiResponseContract, PublishedAppApiManifestContract, PublishedAppContract, PublishedAppListResponseContract, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract, VerifyCaseResultContract } from "./app-api/app-api";
|
|
10
10
|
export type { AppPortalEmbedContract, ListAppPortalEmbedsResponseContract } from "./app-embed-targets/app-embed-targets";
|
|
11
11
|
export type { ActivateAppMagicLinkResponseContract, AppMagicLinkSummaryContract, BulkAppMagicLinkInvitationContract, BulkAppMagicLinkResultItemContract, BulkCreateAppMagicLinksRequestContract, BulkCreateAppMagicLinksResponseContract, CreateAppClientInviteRequestContract, CreateAppMagicLinkRequestContract, CreateAppMagicLinkResponseContract, ListAppMagicLinksResponseContract, RequestAppMagicLinkRequestContract, RequestAppMagicLinkResponseContract, RevokeAppMagicLinkResponseContract } from "./app-magic-link/app-magic-link";
|
|
12
12
|
export * from "./billing/billing";
|
|
@@ -51,6 +51,13 @@ export interface OrgUserAddRequestContract {
|
|
|
51
51
|
* is omitted.
|
|
52
52
|
*/
|
|
53
53
|
autoConfirmClientInvite?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Org-only shortcut for service accounts (bots): when the email already has
|
|
56
|
+
* a Fusebase account, add it as an org member right away with `orgRole`
|
|
57
|
+
* instead of sending an invite email a bot can never click. Falls back to a
|
|
58
|
+
* normal invite when no account exists yet. Requires `workspaceId` omitted.
|
|
59
|
+
*/
|
|
60
|
+
autoConfirmInvite?: boolean;
|
|
54
61
|
}
|
|
55
62
|
export interface OrgInviteContract {
|
|
56
63
|
id: number;
|
|
@@ -2926,6 +2926,12 @@ export interface PortalDetailContract {
|
|
|
2926
2926
|
}
|
|
2927
2927
|
/** Published branding of a portal, as stored in its theme. */
|
|
2928
2928
|
export interface PortalStyleContract {
|
|
2929
|
+
/**
|
|
2930
|
+
* Version of the portal styling contract this portal renders with. Compare it
|
|
2931
|
+
* against a cached value to detect a breaking change; call
|
|
2932
|
+
* getPortalStyleContract for the contract itself.
|
|
2933
|
+
*/
|
|
2934
|
+
styleContractVersion: string;
|
|
2929
2935
|
/** Color theme key. Absent when the portal never had one set explicitly. */
|
|
2930
2936
|
theme?: PortalThemeKey;
|
|
2931
2937
|
/** Logo image URL, as rendered in the portal header. */
|
|
@@ -2933,6 +2939,34 @@ export interface PortalStyleContract {
|
|
|
2933
2939
|
/** Favicon image URL, used as the portal's browser tab icon. */
|
|
2934
2940
|
faviconUrl?: string;
|
|
2935
2941
|
}
|
|
2942
|
+
/**
|
|
2943
|
+
* The portal styling contract: the stable hooks custom CSS may target. Mirrors
|
|
2944
|
+
* PORTAL_STYLE_CONTRACT in nx-frontend, where a CI guard fails the portal build
|
|
2945
|
+
* if any hook below disappears from the source.
|
|
2946
|
+
*/
|
|
2947
|
+
export interface PortalStyleContractResponseContract {
|
|
2948
|
+
/**
|
|
2949
|
+
* Contract version. Removing or renaming a hook bumps the major, adding one
|
|
2950
|
+
* bumps the minor.
|
|
2951
|
+
*/
|
|
2952
|
+
version: string;
|
|
2953
|
+
/**
|
|
2954
|
+
* Preferred surface: `data-portal` attribute values, targeted as
|
|
2955
|
+
* `[data-portal="sidebar"]`.
|
|
2956
|
+
*/
|
|
2957
|
+
structuralHooks: string[];
|
|
2958
|
+
/** Legacy stable class hooks, also part of the contract, e.g. `.container`. */
|
|
2959
|
+
classHooks: string[];
|
|
2960
|
+
/** How to write CSS that actually applies. */
|
|
2961
|
+
usage: string;
|
|
2962
|
+
/** A working override, verified against the portal build. */
|
|
2963
|
+
canonicalOverride: string;
|
|
2964
|
+
/**
|
|
2965
|
+
* Things that look styleable but are not part of the contract, each written
|
|
2966
|
+
* as a sentence explaining why targeting it fails.
|
|
2967
|
+
*/
|
|
2968
|
+
antiContract: string[];
|
|
2969
|
+
}
|
|
2936
2970
|
export interface UpdatePortalStyleRequestContract {
|
|
2937
2971
|
/** Color theme to apply, the same picker the customizer's Theme screen shows. */
|
|
2938
2972
|
theme?: PortalThemeKey;
|
package/package.json
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Release Notes 2.10.1-sdk.0
|
|
2
|
+
|
|
3
|
+
- Current ref: `HEAD`
|
|
4
|
+
- Previous tag: `v2.10.1-sdk.0`
|
|
5
|
+
- Generated at: 2026-08-25T11:38:27.682Z
|
|
6
|
+
|
|
7
|
+
## Included Drafts
|
|
8
|
+
|
|
9
|
+
- `docs/release-notes/2026-08-25-published-app-api-manifest.md` - Published App API manifest endpoint
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
### Published App API manifest endpoint
|
|
14
|
+
|
|
15
|
+
Gate now exposes the complete published OpenAPI manifest for a selected FuseBase App so authenticated HTTP clients such as FuseBase Work can discover an App's request and response schemas without using the frontend proxy or MCP.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## API / SDK Changes
|
|
19
|
+
|
|
20
|
+
### Published App API manifest endpoint
|
|
21
|
+
|
|
22
|
+
- Added `GET /:orgId/apps/:appId/app-api-manifest`.
|
|
23
|
+
- Added the `getPublishedAppApiManifest` generated SDK operation.
|
|
24
|
+
- The response includes stable Product/App identifiers and the complete `app-api-registry` manifest, including `manifest.document`.
|
|
25
|
+
- The operation requires `org.read`, accepts user or user-bound token authentication, and is intentionally not exposed as an MCP tool.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Consumer Impact
|
|
29
|
+
|
|
30
|
+
### Published App API manifest endpoint
|
|
31
|
+
|
|
32
|
+
HTTP clients can list Apps and operations through the existing Gate APIs, then fetch the selected App's full OpenAPI contract through Gate. Existing operations are unchanged.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Verification
|
|
36
|
+
|
|
37
|
+
### Published App API manifest endpoint
|
|
38
|
+
|
|
39
|
+
- Unit coverage verifies complete manifest delivery and rejects Apps without a published App API manifest.
|
|
40
|
+
- Generated SDK and OpenAPI artifacts were rebuilt.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## Follow-ups
|
|
44
|
+
|
|
45
|
+
### Published App API manifest endpoint
|
|
46
|
+
|
|
47
|
+
- FuseBase Work will consume this operation through its direct server-to-server Gate client.
|
package/release-notes/latest.md
CHANGED
package/release-notes/2.10.0.md
DELETED