@fusebase/fusebase-gate-sdk 2.2.2-sdk.7 → 2.2.2-sdk.9

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.
@@ -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. 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`. 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: {
@@ -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. 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`. 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,10 +5,17 @@
5
5
  * Domain: system
6
6
  */
7
7
  import type { Client } from "../runtime/transport";
8
- import type { ResolveOperationPermissionsRequestContract, ResolveOperationPermissionsResponseContract } from "../types";
8
+ import type { ListPermissionCatalogResponseContract, ResolveOperationPermissionsRequestContract, ResolveOperationPermissionsResponseContract } from "../types";
9
9
  export declare class SystemApi {
10
10
  private client;
11
11
  constructor(client: Client);
12
+ /**
13
+ * List all registered permissions
14
+ * Return the full permission catalog registered by the current service, including platform base permissions and service-owned permissions.
15
+ */
16
+ listPermissionCatalog(params: {
17
+ headers?: Record<string, string>;
18
+ }): Promise<ListPermissionCatalogResponseContract>;
12
19
  /**
13
20
  * Resolve required permissions for operations
14
21
  * Return the unique required permissions for a list of operation identifiers. Supports exact operation ids and sanitized MCP tool names. Public operations contribute no permission.
@@ -11,6 +11,19 @@ class SystemApi {
11
11
  constructor(client) {
12
12
  this.client = client;
13
13
  }
14
+ /**
15
+ * List all registered permissions
16
+ * Return the full permission catalog registered by the current service, including platform base permissions and service-owned permissions.
17
+ */
18
+ async listPermissionCatalog(params) {
19
+ return this.client.request({
20
+ method: "GET",
21
+ path: "/system/permissions/catalog",
22
+ headers: params.headers,
23
+ opId: "listPermissionCatalog",
24
+ expectedContentType: "application/json",
25
+ });
26
+ }
14
27
  /**
15
28
  * Resolve required permissions for operations
16
29
  * Return the unique required permissions for a list of operation identifiers. Supports exact operation ids and sanitized MCP tool names. Public operations contribute no permission.
@@ -43,6 +43,11 @@ export interface OrgUserAddRequestContract {
43
43
  * Without `workspaceId`, this remains an org invite email hint only.
44
44
  */
45
45
  portalUrl?: string;
46
+ /**
47
+ * Org-only shortcut for instant client onboarding without invite
48
+ * confirmation. Valid only when `orgRole` is `client` and `workspaceId`
49
+ * is omitted.
50
+ */
46
51
  autoConfirmClientInvite?: boolean;
47
52
  }
48
53
  export interface OrgInviteContract {
@@ -122,6 +127,8 @@ export interface OrgUserAddResponseContract {
122
127
  /**
123
128
  * org-service returns `invite` or `member` for org invites, and
124
129
  * `invite`, `member`, or `link` for workspace-aware invites.
130
+ * `invite` means an invite exists; it is not proof that org access is
131
+ * already active for the current session.
125
132
  */
126
133
  result: "invite" | "member" | "link";
127
134
  orgInvite?: OrgInviteContract;
@@ -2,6 +2,14 @@ import type { PermissionContract } from "../shared/enums";
2
2
  export interface ResolveOperationPermissionsRequestContract {
3
3
  operations: string[];
4
4
  }
5
+ export interface ListPermissionCatalogResultContract {
6
+ permissions: PermissionContract[];
7
+ }
8
+ export interface ListPermissionCatalogResponseContract {
9
+ success: boolean;
10
+ message?: string | null;
11
+ data: ListPermissionCatalogResultContract;
12
+ }
5
13
  export type OperationPermissionMatchTypeContract = "operation_id" | "mcp_tool_name";
6
14
  export interface ResolvedOperationPermissionContract {
7
15
  requested: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusebase/fusebase-gate-sdk",
3
- "version": "2.2.2-sdk.7",
3
+ "version": "2.2.2-sdk.9",
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.2-sdk.9
2
+
3
+ - Current ref: `HEAD`
4
+ - Previous tag: `v2.2.2-sdk.9`
5
+ - Generated at: 2026-03-31T14:50:15.029Z
6
+
7
+ ## Included Drafts
8
+
9
+ - None
@@ -1,48 +1,9 @@
1
- # Release Notes 2.2.2-sdk.7
1
+ # Release Notes 2.2.2-sdk.9
2
2
 
3
3
  - Current ref: `HEAD`
4
- - Previous tag: `v2.2.2-sdk.7`
5
- - Generated at: 2026-03-31T12:18:57.038Z
4
+ - Previous tag: `v2.2.2-sdk.9`
5
+ - Generated at: 2026-03-31T14:50:15.029Z
6
6
 
7
7
  ## Included Drafts
8
8
 
9
- - `docs/release-notes/2026-03-31-notes-default-parent-id.md` - 2026-03-31-notes-default-parent-id
10
-
11
- ## Summary
12
-
13
- ### 2026-03-31-notes-default-parent-id
14
-
15
- Notes top-level parent handling now consistently uses the default folder id `default` instead of `root`.
16
-
17
-
18
- ## API / SDK Changes
19
-
20
- ### 2026-03-31-notes-default-parent-id
21
-
22
- - `listWorkspaceNotes` now defaults omitted `parentId` to `default`.
23
- - `createWorkspaceNoteFolder` now defaults omitted `parentId` to `default`.
24
- - Notes contract descriptions and generated SDK/OpenAPI artifacts now document `default` as the top-level folder id.
25
-
26
-
27
- ## Consumer Impact
28
-
29
- ### 2026-03-31-notes-default-parent-id
30
-
31
- - Consumers that relied on omitted folder parent ids resolving to `root` should switch to `default`.
32
- - SDK, MCP, and raw HTTP callers can now treat top-level notes and top-level folders consistently.
33
-
34
-
35
- ## Verification
36
-
37
- ### 2026-03-31-notes-default-parent-id
38
-
39
- - `npm run lint -- src/controllers/notes/helpers.ts src/api/contracts/ops/notes/notes.ts src/api/contracts/schemas/note/note.ts tests/fixtures/note-service.ts tests/unit/notes-controller.test.ts tests/e2e-sdk/notes/0.list-workspace-notes.test.ts tests/e2e-sdk/notes/1.get-workspace-note.test.ts tests/e2e-sdk/notes/2.create-workspace-note.test.ts tests/mcp-e2e/notes/1.get-workspace-note.test.ts tests/mcp-e2e/notes/2.create-workspace-note.test.ts generated/sdk-client/src/types/note/note.ts generated/sdk-client/src/apis/NotesApi.ts src/api/contracts/schemas/runtime-schema-defs.generated.ts generated/openapi/openapi-generated-from-contracts.yaml`
40
- - `npm run test:unit -- --runTestsByPath tests/unit/notes-controller.test.ts tests/unit/notes-contracts.test.ts tests/unit/notes-routes.test.ts`
41
- - Blocked locally: `env USE_BUILD_ARTIFACT=true npm run test:e2e-sdk:full` and `env USE_BUILD_ARTIFACT=true npm run test:mcp-e2e:full` failed before notes assertions because `db:migrate:test` could not connect to MySQL at `localhost:3306`
42
-
43
-
44
- ## Follow-ups
45
-
46
- ### 2026-03-31-notes-default-parent-id
47
-
48
- - Re-run the SDK and MCP E2E suites in CI or any environment with the test MySQL instance available.
9
+ - None
@@ -1,48 +0,0 @@
1
- # Release Notes 2.2.2-sdk.7
2
-
3
- - Current ref: `HEAD`
4
- - Previous tag: `v2.2.2-sdk.7`
5
- - Generated at: 2026-03-31T12:18:57.038Z
6
-
7
- ## Included Drafts
8
-
9
- - `docs/release-notes/2026-03-31-notes-default-parent-id.md` - 2026-03-31-notes-default-parent-id
10
-
11
- ## Summary
12
-
13
- ### 2026-03-31-notes-default-parent-id
14
-
15
- Notes top-level parent handling now consistently uses the default folder id `default` instead of `root`.
16
-
17
-
18
- ## API / SDK Changes
19
-
20
- ### 2026-03-31-notes-default-parent-id
21
-
22
- - `listWorkspaceNotes` now defaults omitted `parentId` to `default`.
23
- - `createWorkspaceNoteFolder` now defaults omitted `parentId` to `default`.
24
- - Notes contract descriptions and generated SDK/OpenAPI artifacts now document `default` as the top-level folder id.
25
-
26
-
27
- ## Consumer Impact
28
-
29
- ### 2026-03-31-notes-default-parent-id
30
-
31
- - Consumers that relied on omitted folder parent ids resolving to `root` should switch to `default`.
32
- - SDK, MCP, and raw HTTP callers can now treat top-level notes and top-level folders consistently.
33
-
34
-
35
- ## Verification
36
-
37
- ### 2026-03-31-notes-default-parent-id
38
-
39
- - `npm run lint -- src/controllers/notes/helpers.ts src/api/contracts/ops/notes/notes.ts src/api/contracts/schemas/note/note.ts tests/fixtures/note-service.ts tests/unit/notes-controller.test.ts tests/e2e-sdk/notes/0.list-workspace-notes.test.ts tests/e2e-sdk/notes/1.get-workspace-note.test.ts tests/e2e-sdk/notes/2.create-workspace-note.test.ts tests/mcp-e2e/notes/1.get-workspace-note.test.ts tests/mcp-e2e/notes/2.create-workspace-note.test.ts generated/sdk-client/src/types/note/note.ts generated/sdk-client/src/apis/NotesApi.ts src/api/contracts/schemas/runtime-schema-defs.generated.ts generated/openapi/openapi-generated-from-contracts.yaml`
40
- - `npm run test:unit -- --runTestsByPath tests/unit/notes-controller.test.ts tests/unit/notes-contracts.test.ts tests/unit/notes-routes.test.ts`
41
- - Blocked locally: `env USE_BUILD_ARTIFACT=true npm run test:e2e-sdk:full` and `env USE_BUILD_ARTIFACT=true npm run test:mcp-e2e:full` failed before notes assertions because `db:migrate:test` could not connect to MySQL at `localhost:3306`
42
-
43
-
44
- ## Follow-ups
45
-
46
- ### 2026-03-31-notes-default-parent-id
47
-
48
- - Re-run the SDK and MCP E2E suites in CI or any environment with the test MySQL instance available.