@fusebase/fusebase-gate-sdk 2.2.21-sdk.8 → 2.3.1

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.
@@ -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 } from "../types";
8
+ import type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract, orgIdInPathRequired, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract } from "../types";
9
9
  export declare class AppApisApi {
10
10
  private client;
11
11
  constructor(client: Client);
@@ -64,4 +64,28 @@ export declare class AppApisApi {
64
64
  };
65
65
  headers?: Record<string, string>;
66
66
  }): Promise<AppApiOperationListResponseContract>;
67
+ /**
68
+ * Verify consumer app API contracts
69
+ * Loads stored consumer contracts for the selected app, executes each case through Gate's real app API call path as the authenticated user, and returns PASS/FAIL results plus schema warnings.
70
+ */
71
+ verifyConsumerAppApiContracts(params: {
72
+ path: {
73
+ orgId: orgIdInPathRequired;
74
+ appId: string;
75
+ };
76
+ headers?: Record<string, string>;
77
+ body?: VerifyAppApiContractsRequestContract;
78
+ }): Promise<VerifyAppApiContractsResponseContract>;
79
+ /**
80
+ * Verify inbound app API contracts
81
+ * Loads all stored consumer contracts targeting the selected provider app inside the organization and executes them through Gate's real app API call path as the authenticated user.
82
+ */
83
+ verifyProviderAppApiContracts(params: {
84
+ path: {
85
+ orgId: orgIdInPathRequired;
86
+ appId: string;
87
+ };
88
+ headers?: Record<string, string>;
89
+ body?: VerifyAppApiContractsRequestContract;
90
+ }): Promise<VerifyAppApiContractsResponseContract>;
67
91
  }
@@ -70,5 +70,35 @@ class AppApisApi {
70
70
  expectedContentType: "application/json",
71
71
  });
72
72
  }
73
+ /**
74
+ * Verify consumer app API contracts
75
+ * Loads stored consumer contracts for the selected app, executes each case through Gate's real app API call path as the authenticated user, and returns PASS/FAIL results plus schema warnings.
76
+ */
77
+ async verifyConsumerAppApiContracts(params) {
78
+ return this.client.request({
79
+ method: "POST",
80
+ path: "/:orgId/apps/:appId/app-api-contracts/verify-consumer",
81
+ pathParams: params.path,
82
+ headers: params.headers,
83
+ body: params.body,
84
+ opId: "verifyConsumerAppApiContracts",
85
+ expectedContentType: "application/json",
86
+ });
87
+ }
88
+ /**
89
+ * Verify inbound app API contracts
90
+ * Loads all stored consumer contracts targeting the selected provider app inside the organization and executes them through Gate's real app API call path as the authenticated user.
91
+ */
92
+ async verifyProviderAppApiContracts(params) {
93
+ return this.client.request({
94
+ method: "POST",
95
+ path: "/:orgId/apps/:appId/app-api-contracts/verify-provider",
96
+ pathParams: params.path,
97
+ headers: params.headers,
98
+ body: params.body,
99
+ opId: "verifyProviderAppApiContracts",
100
+ expectedContentType: "application/json",
101
+ });
102
+ }
73
103
  }
74
104
  exports.AppApisApi = AppApisApi;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Orgs API
3
+ *
4
+ * Generated from contract introspection
5
+ * Domain: orgs
6
+ */
7
+ import type { Client } from "../runtime/transport";
8
+ import type { orgIdInPathRequired, OrgUrlResponseContract } from "../types";
9
+ export declare class OrgsApi {
10
+ private client;
11
+ constructor(client: Client);
12
+ /**
13
+ * Get organization URL
14
+ * Returns the canonical HTTPS base URL for the organization. When a custom CNAME domain is configured, the response uses that hostname; otherwise it uses the org subdomain on the environment Fusebase host (for example `https://{sub}.dev-thefusebase.com`). Requires org.read and org access.
15
+ */
16
+ getOrgUrl(params: {
17
+ path: {
18
+ orgId: orgIdInPathRequired;
19
+ };
20
+ headers?: Record<string, string>;
21
+ }): Promise<OrgUrlResponseContract>;
22
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * Orgs API
4
+ *
5
+ * Generated from contract introspection
6
+ * Domain: orgs
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OrgsApi = void 0;
10
+ class OrgsApi {
11
+ constructor(client) {
12
+ this.client = client;
13
+ }
14
+ /**
15
+ * Get organization URL
16
+ * Returns the canonical HTTPS base URL for the organization. When a custom CNAME domain is configured, the response uses that hostname; otherwise it uses the org subdomain on the environment Fusebase host (for example `https://{sub}.dev-thefusebase.com`). Requires org.read and org access.
17
+ */
18
+ async getOrgUrl(params) {
19
+ return this.client.request({
20
+ method: "GET",
21
+ path: "/:orgId/url",
22
+ pathParams: params.path,
23
+ headers: params.headers,
24
+ opId: "getOrgUrl",
25
+ expectedContentType: "application/json",
26
+ });
27
+ }
28
+ }
29
+ exports.OrgsApi = OrgsApi;
@@ -5,7 +5,7 @@
5
5
  * Domain: portals
6
6
  */
7
7
  import type { Client } from "../runtime/transport";
8
- import type { CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalRequestContract, globalIdInPathRequired, InviteToPortalRequestContract, InviteToPortalResponseContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract } from "../types";
8
+ import type { CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalRequestContract, globalIdInPathRequired, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, orgIdInPathRequired, OrgPortalListResponseContract, PortalDetailContract } from "../types";
9
9
  export declare class PortalsApi {
10
10
  private client;
11
11
  constructor(client: Client);
@@ -34,7 +34,7 @@ export declare class PortalsApi {
34
34
  }): Promise<CreatePortalResponseContract>;
35
35
  /**
36
36
  * Get portal details
37
- * Returns detailed information for a single portal by ID. Requires org.read access.
37
+ * Returns detailed information for a single portal by ID. Requires portals.read access.
38
38
  */
39
39
  getPortal(params: {
40
40
  path: {
@@ -55,9 +55,20 @@ export declare class PortalsApi {
55
55
  headers?: Record<string, string>;
56
56
  body: InviteToPortalRequestContract;
57
57
  }): Promise<InviteToPortalResponseContract>;
58
+ /**
59
+ * List portal content (folders and pages)
60
+ * Returns the menu tree of a portal: folders, note pages, portal pages, and system items. Use this operation to discover existing content before creating new folders or pages. Item types match portal-service values: notesFolder, note, portalPage, home, link, etc. For items of type 'note', the noteId field contains the Fusebase note id. Requires portals.read access.
61
+ */
62
+ listPortalContent(params: {
63
+ path: {
64
+ orgId: orgIdInPathRequired;
65
+ portalId: globalIdInPathRequired;
66
+ };
67
+ headers?: Record<string, string>;
68
+ }): Promise<ListPortalContentResponseContract>;
58
69
  /**
59
70
  * List organization portals
60
- * Returns portals visible for the caller in the organization. Requires org.read and org access.
71
+ * Returns portals visible for the caller in the organization. Requires portals.read and org access.
61
72
  */
62
73
  listPortals(params: {
63
74
  path: {
@@ -43,7 +43,7 @@ class PortalsApi {
43
43
  }
44
44
  /**
45
45
  * Get portal details
46
- * Returns detailed information for a single portal by ID. Requires org.read access.
46
+ * Returns detailed information for a single portal by ID. Requires portals.read access.
47
47
  */
48
48
  async getPortal(params) {
49
49
  return this.client.request({
@@ -70,9 +70,23 @@ class PortalsApi {
70
70
  expectedContentType: "application/json",
71
71
  });
72
72
  }
73
+ /**
74
+ * List portal content (folders and pages)
75
+ * Returns the menu tree of a portal: folders, note pages, portal pages, and system items. Use this operation to discover existing content before creating new folders or pages. Item types match portal-service values: notesFolder, note, portalPage, home, link, etc. For items of type 'note', the noteId field contains the Fusebase note id. Requires portals.read access.
76
+ */
77
+ async listPortalContent(params) {
78
+ return this.client.request({
79
+ method: "GET",
80
+ path: "/:orgId/portals/:portalId/content",
81
+ pathParams: params.path,
82
+ headers: params.headers,
83
+ opId: "listPortalContent",
84
+ expectedContentType: "application/json",
85
+ });
86
+ }
73
87
  /**
74
88
  * List organization portals
75
- * Returns portals visible for the caller in the organization. Requires org.read and org access.
89
+ * Returns portals visible for the caller in the organization. Requires portals.read and org access.
76
90
  */
77
91
  async listPortals(params) {
78
92
  return this.client.request({
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export { McpManagerApi } from "./apis/McpManagerApi";
18
18
  export { NotesApi } from "./apis/NotesApi";
19
19
  export { OrgGroupsApi } from "./apis/OrgGroupsApi";
20
20
  export { OrgUsersApi } from "./apis/OrgUsersApi";
21
+ export { OrgsApi } from "./apis/OrgsApi";
21
22
  export { PortalsApi } from "./apis/PortalsApi";
22
23
  export { SystemApi } from "./apis/SystemApi";
23
24
  export { TokensApi } from "./apis/TokensApi";
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.WorkspacesApi = exports.TokensApi = exports.SystemApi = exports.PortalsApi = exports.OrgUsersApi = exports.OrgGroupsApi = exports.NotesApi = exports.McpManagerApi = exports.IsolatedStoresApi = exports.HealthApi = exports.FusebaseAuthApi = exports.FilesApi = exports.EmailsApi = exports.BillingApi = exports.AppMagicLinksApi = exports.AppApisApi = exports.AccessApi = void 0;
22
+ exports.WorkspacesApi = exports.TokensApi = exports.SystemApi = exports.PortalsApi = exports.OrgsApi = exports.OrgUsersApi = exports.OrgGroupsApi = exports.NotesApi = exports.McpManagerApi = exports.IsolatedStoresApi = exports.HealthApi = exports.FusebaseAuthApi = exports.FilesApi = exports.EmailsApi = exports.BillingApi = exports.AppMagicLinksApi = exports.AppApisApi = exports.AccessApi = void 0;
23
23
  __exportStar(require("./runtime"), exports);
24
24
  __exportStar(require("./types"), exports);
25
25
  var AccessApi_1 = require("./apis/AccessApi");
@@ -48,6 +48,8 @@ var OrgGroupsApi_1 = require("./apis/OrgGroupsApi");
48
48
  Object.defineProperty(exports, "OrgGroupsApi", { enumerable: true, get: function () { return OrgGroupsApi_1.OrgGroupsApi; } });
49
49
  var OrgUsersApi_1 = require("./apis/OrgUsersApi");
50
50
  Object.defineProperty(exports, "OrgUsersApi", { enumerable: true, get: function () { return OrgUsersApi_1.OrgUsersApi; } });
51
+ var OrgsApi_1 = require("./apis/OrgsApi");
52
+ Object.defineProperty(exports, "OrgsApi", { enumerable: true, get: function () { return OrgsApi_1.OrgsApi; } });
51
53
  var PortalsApi_1 = require("./apis/PortalsApi");
52
54
  Object.defineProperty(exports, "PortalsApi", { enumerable: true, get: function () { return PortalsApi_1.PortalsApi; } });
53
55
  var SystemApi_1 = require("./apis/SystemApi");
@@ -34,3 +34,35 @@ export interface CallAppApiResponseContract {
34
34
  data?: unknown;
35
35
  text?: string;
36
36
  }
37
+ export interface VerifyAppApiContractsRequestContract {
38
+ provider?: string;
39
+ operation?: string;
40
+ }
41
+ export interface VerifyCaseResultContract {
42
+ consumerAppId?: string;
43
+ providerAppId: string;
44
+ operationId: string;
45
+ caseName: string;
46
+ status: "PASS" | "FAIL";
47
+ warnings: string[];
48
+ message?: string;
49
+ request?: {
50
+ url?: string;
51
+ envelope?: CallAppApiRequestContract;
52
+ };
53
+ response?: {
54
+ status?: number;
55
+ body?: unknown;
56
+ };
57
+ }
58
+ export interface VerifyAppApiContractsResponseContract {
59
+ ok: boolean;
60
+ summary: {
61
+ contractCount: number;
62
+ caseCount: number;
63
+ passCount: number;
64
+ failCount: number;
65
+ warnCount: number;
66
+ };
67
+ cases: VerifyCaseResultContract[];
68
+ }
@@ -46,6 +46,22 @@ export interface FusebaseAuthRegisterMemberResponseContract extends FusebaseAuth
46
46
  memberTTL?: number | null;
47
47
  };
48
48
  }
49
+ /**
50
+ * Body returned with HTTP 409 when the Fusebase account (or org membership)
51
+ * already exists. `data.errorCode` is a stable machine-readable marker
52
+ * (`fusebase_account_already_exists` or `org_member_already_exists`) so callers
53
+ * can distinguish a duplicate from a transient upstream failure without a
54
+ * follow-up read.
55
+ */
56
+ export interface FusebaseAuthConflictErrorBodyContract {
57
+ success: false;
58
+ message: string;
59
+ data: {
60
+ code: string;
61
+ errorCode: string;
62
+ upstreamErrorCode?: number;
63
+ };
64
+ }
49
65
  export interface FusebaseAuthLoginRequestContract {
50
66
  /**
51
67
  * User email. Forwarded to auth-form as `login`.
@@ -5,19 +5,20 @@
5
5
  * Generated by SDK codegen
6
6
  */
7
7
  export type { AuthenticatedUserSummaryContract, MyOrgAccessResponseContract } from "./access/access";
8
- export type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract } from "./app-api/app-api";
8
+ export type { AppApiOperationContract, AppApiOperationListResponseContract, CallAppApiRequestContract, CallAppApiResponseContract, VerifyAppApiContractsRequestContract, VerifyAppApiContractsResponseContract, VerifyCaseResultContract } from "./app-api/app-api";
9
9
  export type { ActivateAppMagicLinkResponseContract, CreateAppMagicLinkRequestContract, CreateAppMagicLinkResponseContract, RequestAppMagicLinkRequestContract, RequestAppMagicLinkResponseContract } from "./app-magic-link/app-magic-link";
10
10
  export * from "./billing/billing";
11
11
  export type { OrgEmailSendRequestContract, OrgEmailSendResponseContract } from "./email/email";
12
12
  export * from "./file/file";
13
- export type { FusebaseAuthChallengeContract, FusebaseAuthChallengeRequestContract, FusebaseAuthChallengeResponseContract, FusebaseAuthLoginRequestContract, FusebaseAuthLoginResponseContract, FusebaseAuthLogoutResponseContract, FusebaseAuthPasswordResetRequestContract, FusebaseAuthPasswordResetResponseContract, FusebaseAuthPasswordRestoreKeyResponseContract, FusebaseAuthPasswordRestoreRequestContract, FusebaseAuthPasswordRestoreResponseContract, FusebaseAuthRegisterMemberRequestContract, FusebaseAuthRegisterMemberResponseContract, FusebaseAuthRegisterRequestContract, FusebaseAuthRegisterResponseContract, FusebaseAuthSessionContract } from "./fusebase-auth/fusebase-auth";
13
+ export type { FusebaseAuthChallengeContract, FusebaseAuthChallengeRequestContract, FusebaseAuthChallengeResponseContract, FusebaseAuthConflictErrorBodyContract, FusebaseAuthLoginRequestContract, FusebaseAuthLoginResponseContract, FusebaseAuthLogoutResponseContract, FusebaseAuthPasswordResetRequestContract, FusebaseAuthPasswordResetResponseContract, FusebaseAuthPasswordRestoreKeyResponseContract, FusebaseAuthPasswordRestoreRequestContract, FusebaseAuthPasswordRestoreResponseContract, FusebaseAuthRegisterMemberRequestContract, FusebaseAuthRegisterMemberResponseContract, FusebaseAuthRegisterRequestContract, FusebaseAuthRegisterResponseContract, FusebaseAuthSessionContract } from "./fusebase-auth/fusebase-auth";
14
14
  export * from "./isolated-store/isolated-store";
15
15
  export * from "./mcp-manager/mcp-manager";
16
16
  export type { MeAuthContract, MeOrgGroupContract, MeResponseContract, MeScopeContract, MeUserContract } from "./me/me";
17
17
  export * from "./note/note";
18
18
  export * from "./org-group/org-group";
19
19
  export type { CreateWorkspaceRequestContract, OrgInviteContract, OrgMagicLinkContract, OrgPortalContract, OrgPortalListResponseContract, OrgUserAddRequestContract, OrgUserAddResponseContract, OrgUserContract, OrgUserListResponseContract, OrgWorkspaceContract, OrgWorkspaceInviteContract, OrgWorkspaceListResponseContract, OrgWorkspaceMemberContract } from "./org-user/org-user";
20
- export type { CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalRequestContract, InviteToPortalRequestContract, InviteToPortalResponseContract, PortalDetailContract, globalIdInPathRequired } from "./portals/portals";
20
+ export * from "./orgs/orgs";
21
+ export type { CreatePortalRequestContract, CreatePortalResponseContract, DuplicatePortalRequestContract, InviteToPortalRequestContract, InviteToPortalResponseContract, ListPortalContentResponseContract, PortalContentItemContract, PortalDetailContract, globalIdInPathRequired } from "./portals/portals";
21
22
  export * from "./shared/common";
22
23
  export * from "./shared/enums";
23
24
  export type { GetHealth200ResponseContract } from "./shared/health";
@@ -26,6 +26,7 @@ __exportStar(require("./isolated-store/isolated-store"), exports);
26
26
  __exportStar(require("./mcp-manager/mcp-manager"), exports);
27
27
  __exportStar(require("./note/note"), exports);
28
28
  __exportStar(require("./org-group/org-group"), exports);
29
+ __exportStar(require("./orgs/orgs"), exports);
29
30
  __exportStar(require("./shared/common"), exports);
30
31
  __exportStar(require("./shared/enums"), exports);
31
32
  __exportStar(require("./system/system"), exports);
@@ -334,6 +334,7 @@ export interface IsolatedStoreSqlQueryRequestContract {
334
334
  sql: string;
335
335
  params?: unknown[] | null;
336
336
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
337
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
337
338
  }
338
339
  export interface IsolatedStoreSqlQueryResultContract {
339
340
  command: string;
@@ -348,9 +349,22 @@ export interface IsolatedStoreSqlExecuteRequestContract {
348
349
  sql: string;
349
350
  params?: unknown[] | null;
350
351
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
352
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
351
353
  }
352
354
  export type IsolatedStoreSqlRlsContextValueContract = string | number | boolean | null;
353
355
  export type IsolatedStoreSqlRlsContextContract = Record<string, IsolatedStoreSqlRlsContextValueContract>;
356
+ export interface IsolatedStoreSqlTrustedRuntimeContextContract {
357
+ /**
358
+ * Trusted delegated portal context for backend/operator paths.
359
+ * Requires `isolated_store.rls.delegate`; callers cannot set this through `rlsContext`.
360
+ */
361
+ portalId?: string | null;
362
+ /**
363
+ * Trusted delegated workspace context for backend/operator paths.
364
+ * Requires `isolated_store.rls.delegate`; callers cannot set this through `rlsContext`.
365
+ */
366
+ workspaceId?: string | null;
367
+ }
354
368
  export interface IsolatedStoreSqlExecuteResponseContract {
355
369
  result: IsolatedStoreSqlQueryResultContract;
356
370
  }
@@ -370,6 +384,7 @@ export interface IsolatedStoreSqlCountRequestContract {
370
384
  tableName: string;
371
385
  filters?: IsolatedStoreSqlFilterContract[] | null;
372
386
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
387
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
373
388
  }
374
389
  export interface IsolatedStoreSqlCountResponseContract {
375
390
  count: number;
@@ -383,6 +398,7 @@ export interface IsolatedStoreSqlSelectRequestContract {
383
398
  limit?: number | null;
384
399
  offset?: number | null;
385
400
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
401
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
386
402
  }
387
403
  export interface IsolatedStoreSqlSelectResponseContract {
388
404
  columns: string[];
@@ -399,6 +415,7 @@ export interface IsolatedStoreSqlInsertRequestContract {
399
415
  values: Record<string, unknown>;
400
416
  returning?: string[] | null;
401
417
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
418
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
402
419
  }
403
420
  export interface IsolatedStoreSqlInsertResponseContract {
404
421
  rowCount: number;
@@ -410,6 +427,7 @@ export interface IsolatedStoreSqlBatchInsertRequestContract {
410
427
  rows: Record<string, unknown>[];
411
428
  returning?: string[] | null;
412
429
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
430
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
413
431
  }
414
432
  export interface IsolatedStoreSqlBatchInsertResponseContract {
415
433
  rowCount: number;
@@ -425,6 +443,7 @@ export interface IsolatedStoreSqlImportRequestContract {
425
443
  hasHeader?: boolean | null;
426
444
  nullString?: string | null;
427
445
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
446
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
428
447
  }
429
448
  export interface IsolatedStoreSqlImportResponseContract {
430
449
  imported: true;
@@ -440,6 +459,7 @@ export interface IsolatedStoreSqlUpdateRequestContract {
440
459
  allowAll?: boolean | null;
441
460
  returning?: string[] | null;
442
461
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
462
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
443
463
  }
444
464
  export interface IsolatedStoreSqlUpdateResponseContract {
445
465
  rowCount: number;
@@ -451,6 +471,7 @@ export interface IsolatedStoreSqlDeleteRequestContract {
451
471
  filters?: IsolatedStoreSqlFilterContract[] | null;
452
472
  allowAll?: boolean | null;
453
473
  rlsContext?: IsolatedStoreSqlRlsContextContract | null;
474
+ trustedRuntimeContext?: IsolatedStoreSqlTrustedRuntimeContextContract | null;
454
475
  }
455
476
  export interface IsolatedStoreSqlDeleteResponseContract {
456
477
  rowCount: number;
@@ -0,0 +1,20 @@
1
+ export type OrgUrlKindContract = "cname" | "subdomain";
2
+ export interface OrgUrlResponseContract {
3
+ orgId: string;
4
+ /** Canonical HTTPS base URL for the organization (no trailing path). */
5
+ url: string;
6
+ /** Hostname used in `url` (custom CNAME domain or `{sub}.{fusebaseHost}`). */
7
+ host: string;
8
+ /** `cname` when the org uses a custom domain; otherwise `subdomain`. */
9
+ kind: OrgUrlKindContract;
10
+ /** Organization subdomain slug from org-service. */
11
+ sub: string;
12
+ /** Custom CNAME domain when configured; null for subdomain-only orgs. */
13
+ customDomain: string | null;
14
+ /** Org branding flag from org-service; does not change hostname resolution. */
15
+ domainShorter: boolean;
16
+ }
17
+ export declare const OrgUrlKindContract: {
18
+ readonly Cname: "cname";
19
+ readonly Subdomain: "subdomain";
20
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrgUrlKindContract = void 0;
4
+ exports.OrgUrlKindContract = {
5
+ Cname: "cname",
6
+ Subdomain: "subdomain"
7
+ };
@@ -55,3 +55,21 @@ export interface InviteToPortalResponseContract {
55
55
  /** User ID in the system. */
56
56
  userId: number;
57
57
  }
58
+ export type PortalMenuItemType = "home" | "link" | "notesFolder" | "note" | "portalSection" | "portalProcess" | "portalPage" | "unknown" | "allPages" | "tasks" | "chat" | "folders" | "tags" | "portalFilesDashboard" | "filesManager" | "portalTasksDashboard" | "portalChatsDashboard";
59
+ export type PortalContentPositionType = "top" | "sidebar" | "footer";
60
+ export interface PortalContentItemContract {
61
+ id: string;
62
+ type: PortalMenuItemType;
63
+ name: string;
64
+ slug: string;
65
+ positionType: PortalContentPositionType;
66
+ index: number;
67
+ visible: boolean;
68
+ pageId?: string;
69
+ /** Only for type === 'note': id of the Fusebase note (from targetId). */
70
+ noteId?: string;
71
+ children: PortalContentItemContract[];
72
+ }
73
+ export interface ListPortalContentResponseContract {
74
+ items: PortalContentItemContract[];
75
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusebase/fusebase-gate-sdk",
3
- "version": "2.2.21-sdk.8",
3
+ "version": "2.3.1",
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.2.21-sdk.18
2
+
3
+ - Current ref: `HEAD`
4
+ - Previous tag: `v2.2.21-sdk.17`
5
+ - Generated at: 2026-06-12T08:54:55.755Z
6
+
7
+ ## Included Drafts
8
+
9
+ - None
@@ -0,0 +1,9 @@
1
+ # Release Notes 2.3.1
2
+
3
+ - Current ref: `HEAD`
4
+ - Previous tag: `v2.3.1`
5
+ - Generated at: 2026-06-16T10:52:49.024Z
6
+
7
+ ## Included Drafts
8
+
9
+ - None
@@ -1,8 +1,8 @@
1
- # Release Notes 2.2.21-sdk.8
1
+ # Release Notes 2.3.1
2
2
 
3
3
  - Current ref: `HEAD`
4
- - Previous tag: `v2.2.21-sdk.8`
5
- - Generated at: 2026-06-04T14:59:09.554Z
4
+ - Previous tag: `v2.3.1`
5
+ - Generated at: 2026-06-16T10:52:49.024Z
6
6
 
7
7
  ## Included Drafts
8
8
 
@@ -1,9 +0,0 @@
1
- # Release Notes 2.2.21-sdk.8
2
-
3
- - Current ref: `HEAD`
4
- - Previous tag: `v2.2.21-sdk.8`
5
- - Generated at: 2026-06-04T14:59:09.554Z
6
-
7
- ## Included Drafts
8
-
9
- - None