@stigmer/sdk 0.0.89 → 0.0.91

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.
Files changed (39) hide show
  1. package/__tests__/platform-client-auth.test.d.ts +2 -0
  2. package/__tests__/platform-client-auth.test.d.ts.map +1 -0
  3. package/__tests__/platform-client-auth.test.js +59 -0
  4. package/__tests__/platform-client-auth.test.js.map +1 -0
  5. package/gen/authorization-config.d.ts.map +1 -1
  6. package/gen/authorization-config.js +1 -0
  7. package/gen/authorization-config.js.map +1 -1
  8. package/gen/client.d.ts +4 -0
  9. package/gen/client.d.ts.map +1 -1
  10. package/gen/client.js +4 -0
  11. package/gen/client.js.map +1 -1
  12. package/gen/platformclient.d.ts +38 -0
  13. package/gen/platformclient.d.ts.map +1 -0
  14. package/gen/platformclient.js +117 -0
  15. package/gen/platformclient.js.map +1 -0
  16. package/gen/resource-availability.d.ts.map +1 -1
  17. package/gen/resource-availability.js +1 -0
  18. package/gen/resource-availability.js.map +1 -1
  19. package/index.d.ts +1 -0
  20. package/index.d.ts.map +1 -1
  21. package/index.js +1 -0
  22. package/index.js.map +1 -1
  23. package/node.d.ts +1 -0
  24. package/node.d.ts.map +1 -1
  25. package/node.js +1 -0
  26. package/node.js.map +1 -1
  27. package/package.json +2 -2
  28. package/platform-client-auth.d.ts +131 -0
  29. package/platform-client-auth.d.ts.map +1 -0
  30. package/platform-client-auth.js +119 -0
  31. package/platform-client-auth.js.map +1 -0
  32. package/src/__tests__/platform-client-auth.test.ts +76 -0
  33. package/src/gen/authorization-config.ts +1 -0
  34. package/src/gen/client.ts +5 -0
  35. package/src/gen/platformclient.ts +123 -0
  36. package/src/gen/resource-availability.ts +1 -0
  37. package/src/index.ts +4 -0
  38. package/src/node.ts +8 -0
  39. package/src/platform-client-auth.ts +217 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform-client-auth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client-auth.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/platform-client-auth.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { createPlatformClientAuth, PlatformClientAuth, } from "../platform-client-auth";
3
+ describe("createPlatformClientAuth", () => {
4
+ it("throws when baseUrl is missing", () => {
5
+ expect(() => createPlatformClientAuth({
6
+ baseUrl: "",
7
+ clientId: "stgm_cid_abc",
8
+ clientSecret: "stgm_cs_xyz",
9
+ })).toThrow("baseUrl is required");
10
+ });
11
+ it("throws when clientId is missing", () => {
12
+ expect(() => createPlatformClientAuth({
13
+ baseUrl: "https://api.stigmer.ai",
14
+ clientId: "",
15
+ clientSecret: "stgm_cs_xyz",
16
+ })).toThrow("clientId is required");
17
+ });
18
+ it("throws when clientSecret is missing", () => {
19
+ expect(() => createPlatformClientAuth({
20
+ baseUrl: "https://api.stigmer.ai",
21
+ clientId: "stgm_cid_abc",
22
+ clientSecret: "",
23
+ })).toThrow("clientSecret is required");
24
+ });
25
+ it("returns a PlatformClientAuth instance with valid config", () => {
26
+ const auth = createPlatformClientAuth({
27
+ baseUrl: "https://api.stigmer.ai",
28
+ clientId: "stgm_cid_abc",
29
+ clientSecret: "stgm_cs_xyz",
30
+ });
31
+ expect(auth).toBeInstanceOf(PlatformClientAuth);
32
+ });
33
+ });
34
+ describe("PlatformClientAuth.mintUserToken", () => {
35
+ it("throws StigmerError when userId is empty", async () => {
36
+ const auth = createPlatformClientAuth({
37
+ baseUrl: "https://api.stigmer.ai",
38
+ clientId: "stgm_cid_abc",
39
+ clientSecret: "stgm_cs_xyz",
40
+ });
41
+ await expect(auth.mintUserToken({ userId: "" })).rejects.toThrow("userId is required");
42
+ });
43
+ it("throws StigmerError with invalid-argument code when userId is empty", async () => {
44
+ const auth = createPlatformClientAuth({
45
+ baseUrl: "https://api.stigmer.ai",
46
+ clientId: "stgm_cid_abc",
47
+ clientSecret: "stgm_cs_xyz",
48
+ });
49
+ try {
50
+ await auth.mintUserToken({ userId: "" });
51
+ expect.fail("should have thrown");
52
+ }
53
+ catch (e) {
54
+ expect(e).toHaveProperty("code", "invalid-argument");
55
+ expect(e).toHaveProperty("name", "StigmerError");
56
+ }
57
+ });
58
+ });
59
+ //# sourceMappingURL=platform-client-auth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client-auth.test.js","sourceRoot":"","sources":["../../src/__tests__/platform-client-auth.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,EAAE;SACjB,CAAC,CACH,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACrD,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"authorization-config.d.ts","sourceRoot":"","sources":["../../src/gen/authorization-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,SAAS,OAAO,EAAE,CAc3E,CAAC"}
1
+ {"version":3,"file":"authorization-config.d.ts","sourceRoot":"","sources":["../../src/gen/authorization-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,SAAS,OAAO,EAAE,CAe3E,CAAC"}
@@ -14,6 +14,7 @@ import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
14
14
  export const GRANTABLE_ROLES = new Map([
15
15
  [ApiResourceKind.identity_provider, [IamRole.owner, IamRole.viewer]],
16
16
  [ApiResourceKind.oauth_app, [IamRole.owner, IamRole.viewer]],
17
+ [ApiResourceKind.platform_client, [IamRole.owner, IamRole.viewer]],
17
18
  [ApiResourceKind.organization, [IamRole.owner, IamRole.admin, IamRole.member, IamRole.viewer]],
18
19
  [ApiResourceKind.agent, [IamRole.owner, IamRole.viewer]],
19
20
  [ApiResourceKind.session, [IamRole.owner, IamRole.viewer]],
@@ -1 +1 @@
1
- {"version":3,"file":"authorization-config.js","sourceRoot":"","sources":["../../src/gen/authorization-config.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqD,IAAI,GAAG,CAAC;IACvF,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"authorization-config.js","sourceRoot":"","sources":["../../src/gen/authorization-config.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqD,IAAI,GAAG,CAAC;IACvF,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3D,CAAC,CAAC"}
package/gen/client.d.ts CHANGED
@@ -12,6 +12,7 @@ import { InvitationClient } from "./invitation";
12
12
  import { McpServerClient } from "./mcpserver";
13
13
  import { OAuthAppClient } from "./oauthapp";
14
14
  import { OrganizationClient } from "./organization";
15
+ import { PlatformClientClient } from "./platformclient";
15
16
  import { ProjectClient } from "./project";
16
17
  import { SessionClient } from "./session";
17
18
  import { SkillClient } from "./skill";
@@ -33,6 +34,7 @@ export declare class GeneratedClient {
33
34
  readonly mcpServer: McpServerClient;
34
35
  readonly oauthapp: OAuthAppClient;
35
36
  readonly organization: OrganizationClient;
37
+ readonly platformclient: PlatformClientClient;
36
38
  readonly project: ProjectClient;
37
39
  readonly session: SessionClient;
38
40
  readonly skill: SkillClient;
@@ -67,6 +69,8 @@ export { OAuthAppClient } from "./oauthapp";
67
69
  export { type OAuthAppInput } from "./oauthapp";
68
70
  export { OrganizationClient } from "./organization";
69
71
  export { type OrganizationInput } from "./organization";
72
+ export { PlatformClientClient } from "./platformclient";
73
+ export { type PlatformClientInput } from "./platformclient";
70
74
  export { ProjectClient } from "./project";
71
75
  export { type ProjectInput } from "./project";
72
76
  export { SessionClient } from "./session";
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/gen/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/gen/client.ts"],"names":[],"mappings":"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"}
package/gen/client.js CHANGED
@@ -12,6 +12,7 @@ import { InvitationClient } from "./invitation";
12
12
  import { McpServerClient } from "./mcpserver";
13
13
  import { OAuthAppClient } from "./oauthapp";
14
14
  import { OrganizationClient } from "./organization";
15
+ import { PlatformClientClient } from "./platformclient";
15
16
  import { ProjectClient } from "./project";
16
17
  import { SessionClient } from "./session";
17
18
  import { SkillClient } from "./skill";
@@ -33,6 +34,7 @@ export class GeneratedClient {
33
34
  mcpServer;
34
35
  oauthapp;
35
36
  organization;
37
+ platformclient;
36
38
  project;
37
39
  session;
38
40
  skill;
@@ -53,6 +55,7 @@ export class GeneratedClient {
53
55
  this.mcpServer = new McpServerClient(transport);
54
56
  this.oauthapp = new OAuthAppClient(transport);
55
57
  this.organization = new OrganizationClient(transport);
58
+ this.platformclient = new PlatformClientClient(transport);
56
59
  this.project = new ProjectClient(transport);
57
60
  this.session = new SessionClient(transport);
58
61
  this.skill = new SkillClient(transport);
@@ -75,6 +78,7 @@ export { InvitationClient } from "./invitation";
75
78
  export { McpServerClient } from "./mcpserver";
76
79
  export { OAuthAppClient } from "./oauthapp";
77
80
  export { OrganizationClient } from "./organization";
81
+ export { PlatformClientClient } from "./platformclient";
78
82
  export { ProjectClient } from "./project";
79
83
  export { SessionClient } from "./session";
80
84
  export { SkillClient } from "./skill";
package/gen/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gen/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/gen/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type DeleteResourceInput, type ResourceRef } from "./types";
2
+ import { type Transport } from "@connectrpc/connect";
3
+ import { type PlatformClient } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/api_pb";
4
+ import { type PlatformClientCreateResponse, type ListPlatformClientsByOrgInput, type PlatformClients } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/io_pb";
5
+ import { type MintUserTokenRequest, type MintUserTokenResponse } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
6
+ import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
7
+ /** Provides operations on platformclient resources. */
8
+ export declare class PlatformClientClient {
9
+ private readonly command;
10
+ private readonly query;
11
+ private readonly token;
12
+ constructor(transport: Transport);
13
+ create(input: PlatformClientInput): Promise<PlatformClientCreateResponse>;
14
+ update(input: PlatformClientInput): Promise<PlatformClient>;
15
+ delete(input: DeleteResourceInput): Promise<PlatformClient>;
16
+ rotateSecret(id: string): Promise<PlatformClientCreateResponse>;
17
+ get(id: string): Promise<PlatformClient>;
18
+ getByReference(ref: ResourceRef): Promise<PlatformClient>;
19
+ listByOrg(input: ListPlatformClientsByOrgInput): Promise<PlatformClients>;
20
+ mintUserToken(input: MintUserTokenRequest): Promise<MintUserTokenResponse>;
21
+ }
22
+ /** Input for creating/updating a PlatformClient. */
23
+ export interface PlatformClientInput {
24
+ name: string;
25
+ slug?: string;
26
+ org: string;
27
+ labels?: Record<string, string>;
28
+ clientId?: string;
29
+ clientSecretHash?: string;
30
+ secretFingerprint?: string;
31
+ expiresAt?: Date | string;
32
+ neverExpires?: boolean;
33
+ autoProvisionAccounts?: boolean;
34
+ autoGrantOnOrg?: boolean;
35
+ autoGrantRole?: IamRole;
36
+ allowedOrigins?: string[];
37
+ }
38
+ //# sourceMappingURL=platformclient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformclient.d.ts","sourceRoot":"","sources":["../../src/gen/platformclient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAEpH,OAAO,EAA0H,KAAK,4BAA4B,EAAE,KAAK,6BAA6B,EAAE,KAAK,eAAe,EAAE,MAAM,wDAAwD,CAAC;AAG7R,OAAO,EAA0F,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAC1N,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,uDAAuD;AACvD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;gBAEzD,SAAS,EAAE,SAAS;IAM1B,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAMzE,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAM3D,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAU3D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAM/D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMxC,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAMzD,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;IAMzE,aAAa,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAKjF;AAED,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,117 @@
1
+ // Code generated by stigmer-codegen. DO NOT EDIT.
2
+ import { wrapError } from "./errors";
3
+ import { stripUndefined } from "./proto-utils";
4
+ import { create } from "@bufbuild/protobuf";
5
+ import { createClient } from "@connectrpc/connect";
6
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
7
+ import { ApiResourceIdSchema, ApiResourceReferenceSchema, ApiResourceDeleteInputSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
8
+ import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
9
+ import { PlatformClientSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/api_pb";
10
+ import { PlatformClientCommandController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/command_pb";
11
+ import { PlatformClientIdSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/io_pb";
12
+ import { PlatformClientQueryController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/query_pb";
13
+ import { PlatformClientSpecSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/spec_pb";
14
+ import { PlatformClientTokenController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
15
+ /** Provides operations on platformclient resources. */
16
+ export class PlatformClientClient {
17
+ command;
18
+ query;
19
+ token;
20
+ constructor(transport) {
21
+ this.command = createClient(PlatformClientCommandController, transport);
22
+ this.query = createClient(PlatformClientQueryController, transport);
23
+ this.token = createClient(PlatformClientTokenController, transport);
24
+ }
25
+ async create(input) {
26
+ try {
27
+ return await this.command.create(buildPlatformClientProto(input));
28
+ }
29
+ catch (e) {
30
+ throw wrapError(e);
31
+ }
32
+ }
33
+ async update(input) {
34
+ try {
35
+ return await this.command.update(buildPlatformClientProto(input));
36
+ }
37
+ catch (e) {
38
+ throw wrapError(e);
39
+ }
40
+ }
41
+ async delete(input) {
42
+ try {
43
+ return await this.command.delete(create(ApiResourceDeleteInputSchema, {
44
+ resourceId: input.resourceId,
45
+ versionMessage: input.versionMessage,
46
+ force: input.force,
47
+ }));
48
+ }
49
+ catch (e) {
50
+ throw wrapError(e);
51
+ }
52
+ }
53
+ async rotateSecret(id) {
54
+ try {
55
+ return await this.command.rotateSecret(create(PlatformClientIdSchema, { value: id }));
56
+ }
57
+ catch (e) {
58
+ throw wrapError(e);
59
+ }
60
+ }
61
+ async get(id) {
62
+ try {
63
+ return await this.query.get(create(ApiResourceIdSchema, { value: id }));
64
+ }
65
+ catch (e) {
66
+ throw wrapError(e);
67
+ }
68
+ }
69
+ async getByReference(ref) {
70
+ try {
71
+ return await this.query.getByReference(create(ApiResourceReferenceSchema, { ...ref, kind: ApiResourceKind.platform_client }));
72
+ }
73
+ catch (e) {
74
+ throw wrapError(e);
75
+ }
76
+ }
77
+ async listByOrg(input) {
78
+ try {
79
+ return await this.query.listByOrg(input);
80
+ }
81
+ catch (e) {
82
+ throw wrapError(e);
83
+ }
84
+ }
85
+ async mintUserToken(input) {
86
+ try {
87
+ return await this.token.mintUserToken(input);
88
+ }
89
+ catch (e) {
90
+ throw wrapError(e);
91
+ }
92
+ }
93
+ }
94
+ function buildPlatformClientProto(input) {
95
+ return Object.assign(create(PlatformClientSchema), {
96
+ apiVersion: "iam.stigmer.ai/v1",
97
+ kind: "PlatformClient",
98
+ metadata: Object.assign(create(ApiResourceMetadataSchema), {
99
+ name: input.name,
100
+ org: input.org,
101
+ ...(input.slug && { slug: input.slug }),
102
+ ...(input.labels && { labels: input.labels }),
103
+ }),
104
+ spec: Object.assign(create(PlatformClientSpecSchema), stripUndefined({
105
+ clientId: input.clientId,
106
+ clientSecretHash: input.clientSecretHash,
107
+ secretFingerprint: input.secretFingerprint,
108
+ expiresAt: input.expiresAt,
109
+ neverExpires: input.neverExpires,
110
+ autoProvisionAccounts: input.autoProvisionAccounts,
111
+ autoGrantOnOrg: input.autoGrantOnOrg,
112
+ autoGrantRole: input.autoGrantRole,
113
+ allowedOrigins: input.allowedOrigins,
114
+ })),
115
+ });
116
+ }
117
+ //# sourceMappingURL=platformclient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformclient.js","sourceRoot":"","sources":["../../src/gen/platformclient.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAA+B,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACrJ,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAuB,MAAM,yDAAyD,CAAC;AACpH,OAAO,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAC9G,OAAO,EAAsC,sBAAsB,EAA2J,MAAM,wDAAwD,CAAC;AAC7R,OAAO,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAC1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,6BAA6B,EAAkH,MAAM,2DAA2D,CAAC;AAG1N,uDAAuD;AACvD,MAAM,OAAO,oBAAoB;IACd,OAAO,CAAiD;IACxD,KAAK,CAA+C;IACpD,KAAK,CAA+C;IAErE,YAAY,SAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE;gBACpE,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAgB;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAChI,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoC;QAClD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAA2B;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC;CACF;AAmBD,SAAS,wBAAwB,CAAC,KAA0B;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QACjD,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE;YACzD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAC9C,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,cAAc,CAAC;YACnE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CAAC;KACJ,CAAmB,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-availability.d.ts","sourceRoot":"","sources":["../../src/gen/resource-availability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,eAAe,CASxD,CAAC"}
1
+ {"version":3,"file":"resource-availability.d.ts","sourceRoot":"","sources":["../../src/gen/resource-availability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAUxD,CAAC"}
@@ -14,6 +14,7 @@ export const CLOUD_ONLY_KINDS = new Set([
14
14
  ApiResourceKind.invitation,
15
15
  ApiResourceKind.identity_provider,
16
16
  ApiResourceKind.oauth_app,
17
+ ApiResourceKind.platform_client,
17
18
  ApiResourceKind.platform,
18
19
  ]);
19
20
  //# sourceMappingURL=resource-availability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-availability.js","sourceRoot":"","sources":["../../src/gen/resource-availability.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiC,IAAI,GAAG,CAAC;IACpE,eAAe,CAAC,oBAAoB;IACpC,eAAe,CAAC,UAAU;IAC1B,eAAe,CAAC,gBAAgB;IAChC,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,UAAU;IAC1B,eAAe,CAAC,iBAAiB;IACjC,eAAe,CAAC,SAAS;IACzB,eAAe,CAAC,QAAQ;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"resource-availability.js","sourceRoot":"","sources":["../../src/gen/resource-availability.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiC,IAAI,GAAG,CAAC;IACpE,eAAe,CAAC,oBAAoB;IACpC,eAAe,CAAC,UAAU;IAC1B,eAAe,CAAC,gBAAgB;IAChC,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,UAAU;IAC1B,eAAe,CAAC,iBAAiB;IACjC,eAAe,CAAC,SAAS;IACzB,eAAe,CAAC,eAAe;IAC/B,eAAe,CAAC,QAAQ;CACzB,CAAC,CAAC"}
package/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export { IdentityProviderClient, type IdentityProviderInput, } from "./gen/ident
21
21
  export { OAuthAppClient, type OAuthAppInput, } from "./gen/oauthapp";
22
22
  export { McpServerClient, type McpServerInput, type StdioServerConfigInput, type HttpServerConfigInput, type ToolApprovalPolicyInput, } from "./gen/mcpserver";
23
23
  export { OrganizationClient, type OrganizationInput, } from "./gen/organization";
24
+ export { PlatformClientClient, type PlatformClientInput, } from "./gen/platformclient";
24
25
  export { ProjectClient, type ProjectInput } from "./gen/project";
25
26
  export { SessionClient, type SessionInput, type WorkspaceEntryInput, type WorkspaceSourceInput, type GitRepoSourceInput, type LocalPathSourceInput, } from "./gen/session";
26
27
  export { PENDING_SUBJECT, resolvedSubject } from "./session";
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,cAAc,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,EACd,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC"}
package/index.js CHANGED
@@ -27,6 +27,7 @@ export { IdentityProviderClient, } from "./gen/identityprovider";
27
27
  export { OAuthAppClient, } from "./gen/oauthapp";
28
28
  export { McpServerClient, } from "./gen/mcpserver";
29
29
  export { OrganizationClient, } from "./gen/organization";
30
+ export { PlatformClientClient, } from "./gen/platformclient";
30
31
  export { ProjectClient } from "./gen/project";
31
32
  export { SessionClient, } from "./gen/session";
32
33
  // Session utilities (hand-written)
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,iBAAiB;AACjB,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAEX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEd,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EAEL,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,sBAAsB;AACtB,OAAO,EACL,YAAY,GAKb,MAAM,UAAU,CAAC;AAalB,wDAAwD;AACxD,OAAO,EACL,WAAW,GAMZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAKrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,GAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,GAMd,MAAM,eAAe,CAAC;AAEvB,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,GAMf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,iBAAiB;AACjB,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAEX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEd,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EAEL,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,sBAAsB;AACtB,OAAO,EACL,YAAY,GAKb,MAAM,UAAU,CAAC;AAalB,wDAAwD;AACxD,OAAO,EACL,WAAW,GAMZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAKrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,GAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,GAMd,MAAM,eAAe,CAAC;AAEvB,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,GAMf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC"}
package/node.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Transport } from "@connectrpc/connect";
2
2
  import { Stigmer, type TokenProvider } from "./index";
3
+ export { createPlatformClientAuth, PlatformClientAuth, type PlatformClientAuthConfig, type MintUserTokenInput, type MintUserTokenResult, } from "./platform-client-auth";
3
4
  /**
4
5
  * Configuration for creating a Node.js-compatible Stigmer client.
5
6
  *
package/node.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAOtD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,iDAAiD;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAgBvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CASlE"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAOtD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,iDAAiD;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAgBvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CASlE"}
package/node.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createGrpcWebTransport } from "@connectrpc/connect-node";
2
2
  import { Stigmer } from "./index";
3
3
  import { createAuthInterceptor, rpcMetadataInterceptor, errorStripInterceptor, } from "./internal/interceptors";
4
+ export { createPlatformClientAuth, PlatformClientAuth, } from "./platform-client-auth";
4
5
  /**
5
6
  * Create a gRPC-web transport for Node.js using native HTTP/2.
6
7
  *
package/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAoBjC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAwB;IAC1D,MAAM,aAAa,GAAkB,MAAM,CAAC,MAAM;QAChD,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAO;QACtB,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAkB;QAClC,qBAAqB,CAAC,aAAa,CAAC;QACpC,sBAAsB;QACtB,qBAAqB;KACtB,CAAC;IAEF,OAAO,sBAAsB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,GAAG;QAChB,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,IAAI,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,eAAe,EAAE,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAoBhC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAwB;IAC1D,MAAM,aAAa,GAAkB,MAAM,CAAC,MAAM;QAChD,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAO;QACtB,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAkB;QAClC,qBAAqB,CAAC,aAAa,CAAC;QACpC,sBAAsB;QACtB,qBAAqB;KACtB,CAAC;IAEF,OAAO,sBAAsB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,GAAG;QAChB,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,IAAI,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,eAAe,EAAE,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/sdk",
3
- "version": "0.0.89",
3
+ "version": "0.0.91",
4
4
  "description": "Stigmer TypeScript SDK — typed API client for all Stigmer platform resources",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -40,6 +40,6 @@
40
40
  "peerDependencies": {
41
41
  "@bufbuild/protobuf": "^2.0.0",
42
42
  "@connectrpc/connect-node": "^2.0.0",
43
- "@stigmer/protos": "0.0.89"
43
+ "@stigmer/protos": "0.0.91"
44
44
  }
45
45
  }
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Configuration for a PlatformClient token-minting helper.
3
+ *
4
+ * This is NOT a general-purpose Stigmer client — it mints user-scoped
5
+ * JWTs from a backend service. The returned tokens are passed to the
6
+ * React SDK's `StigmerProvider` via `getAccessToken`.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createPlatformClientAuth } from "@stigmer/sdk/node";
11
+ *
12
+ * const auth = createPlatformClientAuth({
13
+ * baseUrl: "https://api.stigmer.ai",
14
+ * clientId: process.env.STIGMER_CLIENT_ID!,
15
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
16
+ * });
17
+ * ```
18
+ */
19
+ export interface PlatformClientAuthConfig {
20
+ /** Stigmer API server URL (e.g., "https://api.stigmer.ai"). */
21
+ readonly baseUrl: string;
22
+ /** PlatformClient client_id (stgm_cid_ prefix). */
23
+ readonly clientId: string;
24
+ /** PlatformClient client_secret (stgm_cs_ prefix). Server-only — never expose in browser code. */
25
+ readonly clientSecret: string;
26
+ }
27
+ /**
28
+ * Input for minting a user-scoped Stigmer JWT.
29
+ *
30
+ * The platform builder's backend calls this with the authenticated
31
+ * user's identity. Stigmer validates the PlatformClient credentials,
32
+ * optionally JIT-provisions the user's identity account, and returns
33
+ * a signed JWT.
34
+ */
35
+ export interface MintUserTokenInput {
36
+ /** Platform's stable user identifier. Becomes the JWT sub claim. */
37
+ readonly userId: string;
38
+ /** User's email address. Used for profile enrichment during JIT provisioning. */
39
+ readonly userEmail?: string;
40
+ /** User's display name. Used for profile enrichment during JIT provisioning. */
41
+ readonly userName?: string;
42
+ /**
43
+ * Organization to scope the token to. When empty, defaults to the
44
+ * PlatformClient's owning organization.
45
+ */
46
+ readonly orgId?: string;
47
+ }
48
+ /**
49
+ * Result of a successful `mintUserToken` call.
50
+ *
51
+ * Pass `accessToken` to the React SDK's `StigmerProvider` via the
52
+ * `getAccessToken` callback to authenticate browser-based API calls.
53
+ */
54
+ export interface MintUserTokenResult {
55
+ /** Stigmer-signed JWT for browser-based API authentication. */
56
+ readonly accessToken: string;
57
+ /** Token type. Always "Bearer". */
58
+ readonly tokenType: string;
59
+ /** Token lifetime in seconds from issuance. */
60
+ readonly expiresIn: number;
61
+ /** Absolute expiration time, computed from `expiresIn` at call time. */
62
+ readonly expiresAt: Date;
63
+ }
64
+ /**
65
+ * PlatformClient token-minting helper.
66
+ *
67
+ * A minimal, purpose-built client for minting Stigmer user JWTs from
68
+ * a backend service. It does NOT replace the main Stigmer client — use
69
+ * `createNodeClient` for resource management with an API key.
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const auth = createPlatformClientAuth({
74
+ * baseUrl: "https://api.stigmer.ai",
75
+ * clientId: process.env.STIGMER_CLIENT_ID!,
76
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
77
+ * });
78
+ *
79
+ * // In your /api/stigmer-token endpoint handler:
80
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
81
+ * userId: req.user.id,
82
+ * userEmail: req.user.email,
83
+ * userName: req.user.name,
84
+ * });
85
+ * res.json({ accessToken, expiresAt: expiresAt.toISOString() });
86
+ * ```
87
+ */
88
+ export declare class PlatformClientAuth {
89
+ private readonly tokenClient;
90
+ private readonly clientId;
91
+ private readonly clientSecret;
92
+ /** @internal Use {@link createPlatformClientAuth} instead. */
93
+ constructor(config: PlatformClientAuthConfig);
94
+ /**
95
+ * Mint a user-scoped JWT for browser-based access to Stigmer resources.
96
+ *
97
+ * @throws {StigmerError} with code `"unauthenticated"` if credentials are invalid
98
+ * @throws {StigmerError} with code `"not-found"` if the user doesn't exist and JIT provisioning is disabled
99
+ * @throws {StigmerError} with code `"failed-precondition"` if the client secret has expired
100
+ * @throws {StigmerError} with code `"permission-denied"` if the request origin is not in allowed_origins
101
+ */
102
+ mintUserToken(input: MintUserTokenInput): Promise<MintUserTokenResult>;
103
+ }
104
+ /**
105
+ * Create a PlatformClient token-minting helper for Node.js backends.
106
+ *
107
+ * This is the recommended way to mint Stigmer user JWTs from a platform
108
+ * builder's backend. The returned tokens are passed to the React SDK's
109
+ * `StigmerProvider` via `getAccessToken`.
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * import { createPlatformClientAuth } from "@stigmer/sdk/node";
114
+ *
115
+ * const auth = createPlatformClientAuth({
116
+ * baseUrl: "https://api.stigmer.ai",
117
+ * clientId: process.env.STIGMER_CLIENT_ID!,
118
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
119
+ * });
120
+ *
121
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
122
+ * userId: "user-123",
123
+ * userEmail: "jane@acme.com",
124
+ * userName: "Jane Doe",
125
+ * });
126
+ * ```
127
+ *
128
+ * @throws {Error} if `baseUrl`, `clientId`, or `clientSecret` is missing or empty
129
+ */
130
+ export declare function createPlatformClientAuth(config: PlatformClientAuthConfig): PlatformClientAuth;
131
+ //# sourceMappingURL=platform-client-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client-auth.d.ts","sourceRoot":"","sources":["../src/platform-client-auth.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,8DAA8D;gBAClD,MAAM,EAAE,wBAAwB;IAa5C;;;;;;;OAOG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA+B7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,kBAAkB,CAmBpB"}
@@ -0,0 +1,119 @@
1
+ import { createGrpcWebTransport } from "@connectrpc/connect-node";
2
+ import { createClient } from "@connectrpc/connect";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { PlatformClientTokenController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
5
+ import { MintUserTokenRequestSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
6
+ import { StigmerError, wrapError } from "./gen/errors";
7
+ import { rpcMetadataInterceptor, errorStripInterceptor, } from "./internal/interceptors";
8
+ /**
9
+ * PlatformClient token-minting helper.
10
+ *
11
+ * A minimal, purpose-built client for minting Stigmer user JWTs from
12
+ * a backend service. It does NOT replace the main Stigmer client — use
13
+ * `createNodeClient` for resource management with an API key.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const auth = createPlatformClientAuth({
18
+ * baseUrl: "https://api.stigmer.ai",
19
+ * clientId: process.env.STIGMER_CLIENT_ID!,
20
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
21
+ * });
22
+ *
23
+ * // In your /api/stigmer-token endpoint handler:
24
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
25
+ * userId: req.user.id,
26
+ * userEmail: req.user.email,
27
+ * userName: req.user.name,
28
+ * });
29
+ * res.json({ accessToken, expiresAt: expiresAt.toISOString() });
30
+ * ```
31
+ */
32
+ export class PlatformClientAuth {
33
+ tokenClient;
34
+ clientId;
35
+ clientSecret;
36
+ /** @internal Use {@link createPlatformClientAuth} instead. */
37
+ constructor(config) {
38
+ this.clientId = config.clientId;
39
+ this.clientSecret = config.clientSecret;
40
+ const transport = createGrpcWebTransport({
41
+ baseUrl: config.baseUrl,
42
+ httpVersion: "2",
43
+ interceptors: [rpcMetadataInterceptor, errorStripInterceptor],
44
+ });
45
+ this.tokenClient = createClient(PlatformClientTokenController, transport);
46
+ }
47
+ /**
48
+ * Mint a user-scoped JWT for browser-based access to Stigmer resources.
49
+ *
50
+ * @throws {StigmerError} with code `"unauthenticated"` if credentials are invalid
51
+ * @throws {StigmerError} with code `"not-found"` if the user doesn't exist and JIT provisioning is disabled
52
+ * @throws {StigmerError} with code `"failed-precondition"` if the client secret has expired
53
+ * @throws {StigmerError} with code `"permission-denied"` if the request origin is not in allowed_origins
54
+ */
55
+ async mintUserToken(input) {
56
+ if (!input.userId) {
57
+ throw new StigmerError("invalid-argument", "mintUserToken: userId is required — this is the platform's stable identifier for the user", 3);
58
+ }
59
+ try {
60
+ const response = await this.tokenClient.mintUserToken(create(MintUserTokenRequestSchema, {
61
+ clientId: this.clientId,
62
+ clientSecret: this.clientSecret,
63
+ userId: input.userId,
64
+ userEmail: input.userEmail ?? "",
65
+ userName: input.userName ?? "",
66
+ orgId: input.orgId ?? "",
67
+ }));
68
+ return {
69
+ accessToken: response.accessToken,
70
+ tokenType: response.tokenType,
71
+ expiresIn: response.expiresIn,
72
+ expiresAt: new Date(Date.now() + response.expiresIn * 1000),
73
+ };
74
+ }
75
+ catch (e) {
76
+ throw wrapError(e);
77
+ }
78
+ }
79
+ }
80
+ /**
81
+ * Create a PlatformClient token-minting helper for Node.js backends.
82
+ *
83
+ * This is the recommended way to mint Stigmer user JWTs from a platform
84
+ * builder's backend. The returned tokens are passed to the React SDK's
85
+ * `StigmerProvider` via `getAccessToken`.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * import { createPlatformClientAuth } from "@stigmer/sdk/node";
90
+ *
91
+ * const auth = createPlatformClientAuth({
92
+ * baseUrl: "https://api.stigmer.ai",
93
+ * clientId: process.env.STIGMER_CLIENT_ID!,
94
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
95
+ * });
96
+ *
97
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
98
+ * userId: "user-123",
99
+ * userEmail: "jane@acme.com",
100
+ * userName: "Jane Doe",
101
+ * });
102
+ * ```
103
+ *
104
+ * @throws {Error} if `baseUrl`, `clientId`, or `clientSecret` is missing or empty
105
+ */
106
+ export function createPlatformClientAuth(config) {
107
+ if (!config.baseUrl) {
108
+ throw new Error("createPlatformClientAuth: baseUrl is required (e.g., \"https://api.stigmer.ai\")");
109
+ }
110
+ if (!config.clientId) {
111
+ throw new Error("createPlatformClientAuth: clientId is required — find it in the Stigmer Console under IAM > Platform Clients");
112
+ }
113
+ if (!config.clientSecret) {
114
+ throw new Error("createPlatformClientAuth: clientSecret is required — the secret is shown once at creation time. " +
115
+ "If lost, rotate the secret via the Console or CLI");
116
+ }
117
+ return new PlatformClientAuth(config);
118
+ }
119
+ //# sourceMappingURL=platform-client-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client-auth.js","sourceRoot":"","sources":["../src/platform-client-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AA4EjC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,kBAAkB;IACZ,WAAW,CAA+C;IAC1D,QAAQ,CAAS;IACjB,YAAY,CAAS;IAEtC,8DAA8D;IAC9D,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAExC,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;SAC9D,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,YAAY,CACpB,kBAAkB,EAClB,2FAA2F,EAC3F,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CACnD,MAAM,CAAC,0BAA0B,EAAE;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;aACzB,CAAC,CACH,CAAC;YAEF,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAgC;IAEhC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kGAAkG;YAChG,mDAAmD,CACtD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import {
3
+ createPlatformClientAuth,
4
+ PlatformClientAuth,
5
+ } from "../platform-client-auth";
6
+
7
+ describe("createPlatformClientAuth", () => {
8
+ it("throws when baseUrl is missing", () => {
9
+ expect(() =>
10
+ createPlatformClientAuth({
11
+ baseUrl: "",
12
+ clientId: "stgm_cid_abc",
13
+ clientSecret: "stgm_cs_xyz",
14
+ }),
15
+ ).toThrow("baseUrl is required");
16
+ });
17
+
18
+ it("throws when clientId is missing", () => {
19
+ expect(() =>
20
+ createPlatformClientAuth({
21
+ baseUrl: "https://api.stigmer.ai",
22
+ clientId: "",
23
+ clientSecret: "stgm_cs_xyz",
24
+ }),
25
+ ).toThrow("clientId is required");
26
+ });
27
+
28
+ it("throws when clientSecret is missing", () => {
29
+ expect(() =>
30
+ createPlatformClientAuth({
31
+ baseUrl: "https://api.stigmer.ai",
32
+ clientId: "stgm_cid_abc",
33
+ clientSecret: "",
34
+ }),
35
+ ).toThrow("clientSecret is required");
36
+ });
37
+
38
+ it("returns a PlatformClientAuth instance with valid config", () => {
39
+ const auth = createPlatformClientAuth({
40
+ baseUrl: "https://api.stigmer.ai",
41
+ clientId: "stgm_cid_abc",
42
+ clientSecret: "stgm_cs_xyz",
43
+ });
44
+ expect(auth).toBeInstanceOf(PlatformClientAuth);
45
+ });
46
+ });
47
+
48
+ describe("PlatformClientAuth.mintUserToken", () => {
49
+ it("throws StigmerError when userId is empty", async () => {
50
+ const auth = createPlatformClientAuth({
51
+ baseUrl: "https://api.stigmer.ai",
52
+ clientId: "stgm_cid_abc",
53
+ clientSecret: "stgm_cs_xyz",
54
+ });
55
+
56
+ await expect(
57
+ auth.mintUserToken({ userId: "" }),
58
+ ).rejects.toThrow("userId is required");
59
+ });
60
+
61
+ it("throws StigmerError with invalid-argument code when userId is empty", async () => {
62
+ const auth = createPlatformClientAuth({
63
+ baseUrl: "https://api.stigmer.ai",
64
+ clientId: "stgm_cid_abc",
65
+ clientSecret: "stgm_cs_xyz",
66
+ });
67
+
68
+ try {
69
+ await auth.mintUserToken({ userId: "" });
70
+ expect.fail("should have thrown");
71
+ } catch (e: unknown) {
72
+ expect(e).toHaveProperty("code", "invalid-argument");
73
+ expect(e).toHaveProperty("name", "StigmerError");
74
+ }
75
+ });
76
+ });
@@ -16,6 +16,7 @@ import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
16
16
  export const GRANTABLE_ROLES: ReadonlyMap<ApiResourceKind, readonly IamRole[]> = new Map([
17
17
  [ApiResourceKind.identity_provider, [IamRole.owner, IamRole.viewer]],
18
18
  [ApiResourceKind.oauth_app, [IamRole.owner, IamRole.viewer]],
19
+ [ApiResourceKind.platform_client, [IamRole.owner, IamRole.viewer]],
19
20
  [ApiResourceKind.organization, [IamRole.owner, IamRole.admin, IamRole.member, IamRole.viewer]],
20
21
  [ApiResourceKind.agent, [IamRole.owner, IamRole.viewer]],
21
22
  [ApiResourceKind.session, [IamRole.owner, IamRole.viewer]],
package/src/gen/client.ts CHANGED
@@ -14,6 +14,7 @@ import { InvitationClient } from "./invitation";
14
14
  import { McpServerClient } from "./mcpserver";
15
15
  import { OAuthAppClient } from "./oauthapp";
16
16
  import { OrganizationClient } from "./organization";
17
+ import { PlatformClientClient } from "./platformclient";
17
18
  import { ProjectClient } from "./project";
18
19
  import { SessionClient } from "./session";
19
20
  import { SkillClient } from "./skill";
@@ -36,6 +37,7 @@ export class GeneratedClient {
36
37
  readonly mcpServer: McpServerClient;
37
38
  readonly oauthapp: OAuthAppClient;
38
39
  readonly organization: OrganizationClient;
40
+ readonly platformclient: PlatformClientClient;
39
41
  readonly project: ProjectClient;
40
42
  readonly session: SessionClient;
41
43
  readonly skill: SkillClient;
@@ -57,6 +59,7 @@ export class GeneratedClient {
57
59
  this.mcpServer = new McpServerClient(transport);
58
60
  this.oauthapp = new OAuthAppClient(transport);
59
61
  this.organization = new OrganizationClient(transport);
62
+ this.platformclient = new PlatformClientClient(transport);
60
63
  this.project = new ProjectClient(transport);
61
64
  this.session = new SessionClient(transport);
62
65
  this.skill = new SkillClient(transport);
@@ -93,6 +96,8 @@ export { OAuthAppClient } from "./oauthapp";
93
96
  export { type OAuthAppInput } from "./oauthapp";
94
97
  export { OrganizationClient } from "./organization";
95
98
  export { type OrganizationInput } from "./organization";
99
+ export { PlatformClientClient } from "./platformclient";
100
+ export { type PlatformClientInput } from "./platformclient";
96
101
  export { ProjectClient } from "./project";
97
102
  export { type ProjectInput } from "./project";
98
103
  export { SessionClient } from "./session";
@@ -0,0 +1,123 @@
1
+ // Code generated by stigmer-codegen. DO NOT EDIT.
2
+
3
+ import { wrapError } from "./errors";
4
+ import { stripUndefined } from "./proto-utils";
5
+ import { type DeleteResourceInput, type ResourceRef } from "./types";
6
+ import { create } from "@bufbuild/protobuf";
7
+ import { createClient, type Client, type Transport } from "@connectrpc/connect";
8
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
9
+ import { ApiResourceIdSchema, ApiResourceReferenceSchema, ApiResourceDeleteInputSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
10
+ import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
11
+ import { PlatformClientSchema, type PlatformClient } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/api_pb";
12
+ import { PlatformClientCommandController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/command_pb";
13
+ import { PlatformClientCreateResponseSchema, PlatformClientIdSchema, ListPlatformClientsByOrgInputSchema, PlatformClientsSchema, type PlatformClientCreateResponse, type ListPlatformClientsByOrgInput, type PlatformClients } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/io_pb";
14
+ import { PlatformClientQueryController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/query_pb";
15
+ import { PlatformClientSpecSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/spec_pb";
16
+ import { PlatformClientTokenController, MintUserTokenRequestSchema, MintUserTokenResponseSchema, type MintUserTokenRequest, type MintUserTokenResponse } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
17
+ import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
18
+
19
+ /** Provides operations on platformclient resources. */
20
+ export class PlatformClientClient {
21
+ private readonly command: Client<typeof PlatformClientCommandController>;
22
+ private readonly query: Client<typeof PlatformClientQueryController>;
23
+ private readonly token: Client<typeof PlatformClientTokenController>;
24
+
25
+ constructor(transport: Transport) {
26
+ this.command = createClient(PlatformClientCommandController, transport);
27
+ this.query = createClient(PlatformClientQueryController, transport);
28
+ this.token = createClient(PlatformClientTokenController, transport);
29
+ }
30
+
31
+ async create(input: PlatformClientInput): Promise<PlatformClientCreateResponse> {
32
+ try {
33
+ return await this.command.create(buildPlatformClientProto(input));
34
+ } catch (e) { throw wrapError(e); }
35
+ }
36
+
37
+ async update(input: PlatformClientInput): Promise<PlatformClient> {
38
+ try {
39
+ return await this.command.update(buildPlatformClientProto(input));
40
+ } catch (e) { throw wrapError(e); }
41
+ }
42
+
43
+ async delete(input: DeleteResourceInput): Promise<PlatformClient> {
44
+ try {
45
+ return await this.command.delete(create(ApiResourceDeleteInputSchema, {
46
+ resourceId: input.resourceId,
47
+ versionMessage: input.versionMessage,
48
+ force: input.force,
49
+ }));
50
+ } catch (e) { throw wrapError(e); }
51
+ }
52
+
53
+ async rotateSecret(id: string): Promise<PlatformClientCreateResponse> {
54
+ try {
55
+ return await this.command.rotateSecret(create(PlatformClientIdSchema, { value: id }));
56
+ } catch (e) { throw wrapError(e); }
57
+ }
58
+
59
+ async get(id: string): Promise<PlatformClient> {
60
+ try {
61
+ return await this.query.get(create(ApiResourceIdSchema, { value: id }));
62
+ } catch (e) { throw wrapError(e); }
63
+ }
64
+
65
+ async getByReference(ref: ResourceRef): Promise<PlatformClient> {
66
+ try {
67
+ return await this.query.getByReference(create(ApiResourceReferenceSchema, { ...ref, kind: ApiResourceKind.platform_client }));
68
+ } catch (e) { throw wrapError(e); }
69
+ }
70
+
71
+ async listByOrg(input: ListPlatformClientsByOrgInput): Promise<PlatformClients> {
72
+ try {
73
+ return await this.query.listByOrg(input);
74
+ } catch (e) { throw wrapError(e); }
75
+ }
76
+
77
+ async mintUserToken(input: MintUserTokenRequest): Promise<MintUserTokenResponse> {
78
+ try {
79
+ return await this.token.mintUserToken(input);
80
+ } catch (e) { throw wrapError(e); }
81
+ }
82
+ }
83
+
84
+ /** Input for creating/updating a PlatformClient. */
85
+ export interface PlatformClientInput {
86
+ name: string;
87
+ slug?: string;
88
+ org: string;
89
+ labels?: Record<string, string>;
90
+ clientId?: string;
91
+ clientSecretHash?: string;
92
+ secretFingerprint?: string;
93
+ expiresAt?: Date | string;
94
+ neverExpires?: boolean;
95
+ autoProvisionAccounts?: boolean;
96
+ autoGrantOnOrg?: boolean;
97
+ autoGrantRole?: IamRole;
98
+ allowedOrigins?: string[];
99
+ }
100
+
101
+ function buildPlatformClientProto(input: PlatformClientInput): PlatformClient {
102
+ return Object.assign(create(PlatformClientSchema), {
103
+ apiVersion: "iam.stigmer.ai/v1",
104
+ kind: "PlatformClient",
105
+ metadata: Object.assign(create(ApiResourceMetadataSchema), {
106
+ name: input.name,
107
+ org: input.org,
108
+ ...(input.slug && { slug: input.slug }),
109
+ ...(input.labels && { labels: input.labels }),
110
+ }),
111
+ spec: Object.assign(create(PlatformClientSpecSchema), stripUndefined({
112
+ clientId: input.clientId,
113
+ clientSecretHash: input.clientSecretHash,
114
+ secretFingerprint: input.secretFingerprint,
115
+ expiresAt: input.expiresAt,
116
+ neverExpires: input.neverExpires,
117
+ autoProvisionAccounts: input.autoProvisionAccounts,
118
+ autoGrantOnOrg: input.autoGrantOnOrg,
119
+ autoGrantRole: input.autoGrantRole,
120
+ allowedOrigins: input.allowedOrigins,
121
+ })),
122
+ }) as PlatformClient;
123
+ }
@@ -16,5 +16,6 @@ export const CLOUD_ONLY_KINDS: ReadonlySet<ApiResourceKind> = new Set([
16
16
  ApiResourceKind.invitation,
17
17
  ApiResourceKind.identity_provider,
18
18
  ApiResourceKind.oauth_app,
19
+ ApiResourceKind.platform_client,
19
20
  ApiResourceKind.platform,
20
21
  ]);
package/src/index.ts CHANGED
@@ -133,6 +133,10 @@ export {
133
133
  OrganizationClient,
134
134
  type OrganizationInput,
135
135
  } from "./gen/organization";
136
+ export {
137
+ PlatformClientClient,
138
+ type PlatformClientInput,
139
+ } from "./gen/platformclient";
136
140
  export { ProjectClient, type ProjectInput } from "./gen/project";
137
141
  export {
138
142
  SessionClient,
package/src/node.ts CHANGED
@@ -7,6 +7,14 @@ import {
7
7
  errorStripInterceptor,
8
8
  } from "./internal/interceptors";
9
9
 
10
+ export {
11
+ createPlatformClientAuth,
12
+ PlatformClientAuth,
13
+ type PlatformClientAuthConfig,
14
+ type MintUserTokenInput,
15
+ type MintUserTokenResult,
16
+ } from "./platform-client-auth";
17
+
10
18
  /**
11
19
  * Configuration for creating a Node.js-compatible Stigmer client.
12
20
  *
@@ -0,0 +1,217 @@
1
+ import { createGrpcWebTransport } from "@connectrpc/connect-node";
2
+ import { createClient, type Client } from "@connectrpc/connect";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { PlatformClientTokenController } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
5
+ import { MintUserTokenRequestSchema } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/token_pb";
6
+ import { StigmerError, wrapError } from "./gen/errors";
7
+ import {
8
+ rpcMetadataInterceptor,
9
+ errorStripInterceptor,
10
+ } from "./internal/interceptors";
11
+
12
+ /**
13
+ * Configuration for a PlatformClient token-minting helper.
14
+ *
15
+ * This is NOT a general-purpose Stigmer client — it mints user-scoped
16
+ * JWTs from a backend service. The returned tokens are passed to the
17
+ * React SDK's `StigmerProvider` via `getAccessToken`.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { createPlatformClientAuth } from "@stigmer/sdk/node";
22
+ *
23
+ * const auth = createPlatformClientAuth({
24
+ * baseUrl: "https://api.stigmer.ai",
25
+ * clientId: process.env.STIGMER_CLIENT_ID!,
26
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
27
+ * });
28
+ * ```
29
+ */
30
+ export interface PlatformClientAuthConfig {
31
+ /** Stigmer API server URL (e.g., "https://api.stigmer.ai"). */
32
+ readonly baseUrl: string;
33
+
34
+ /** PlatformClient client_id (stgm_cid_ prefix). */
35
+ readonly clientId: string;
36
+
37
+ /** PlatformClient client_secret (stgm_cs_ prefix). Server-only — never expose in browser code. */
38
+ readonly clientSecret: string;
39
+ }
40
+
41
+ /**
42
+ * Input for minting a user-scoped Stigmer JWT.
43
+ *
44
+ * The platform builder's backend calls this with the authenticated
45
+ * user's identity. Stigmer validates the PlatformClient credentials,
46
+ * optionally JIT-provisions the user's identity account, and returns
47
+ * a signed JWT.
48
+ */
49
+ export interface MintUserTokenInput {
50
+ /** Platform's stable user identifier. Becomes the JWT sub claim. */
51
+ readonly userId: string;
52
+
53
+ /** User's email address. Used for profile enrichment during JIT provisioning. */
54
+ readonly userEmail?: string;
55
+
56
+ /** User's display name. Used for profile enrichment during JIT provisioning. */
57
+ readonly userName?: string;
58
+
59
+ /**
60
+ * Organization to scope the token to. When empty, defaults to the
61
+ * PlatformClient's owning organization.
62
+ */
63
+ readonly orgId?: string;
64
+ }
65
+
66
+ /**
67
+ * Result of a successful `mintUserToken` call.
68
+ *
69
+ * Pass `accessToken` to the React SDK's `StigmerProvider` via the
70
+ * `getAccessToken` callback to authenticate browser-based API calls.
71
+ */
72
+ export interface MintUserTokenResult {
73
+ /** Stigmer-signed JWT for browser-based API authentication. */
74
+ readonly accessToken: string;
75
+
76
+ /** Token type. Always "Bearer". */
77
+ readonly tokenType: string;
78
+
79
+ /** Token lifetime in seconds from issuance. */
80
+ readonly expiresIn: number;
81
+
82
+ /** Absolute expiration time, computed from `expiresIn` at call time. */
83
+ readonly expiresAt: Date;
84
+ }
85
+
86
+ /**
87
+ * PlatformClient token-minting helper.
88
+ *
89
+ * A minimal, purpose-built client for minting Stigmer user JWTs from
90
+ * a backend service. It does NOT replace the main Stigmer client — use
91
+ * `createNodeClient` for resource management with an API key.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const auth = createPlatformClientAuth({
96
+ * baseUrl: "https://api.stigmer.ai",
97
+ * clientId: process.env.STIGMER_CLIENT_ID!,
98
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
99
+ * });
100
+ *
101
+ * // In your /api/stigmer-token endpoint handler:
102
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
103
+ * userId: req.user.id,
104
+ * userEmail: req.user.email,
105
+ * userName: req.user.name,
106
+ * });
107
+ * res.json({ accessToken, expiresAt: expiresAt.toISOString() });
108
+ * ```
109
+ */
110
+ export class PlatformClientAuth {
111
+ private readonly tokenClient: Client<typeof PlatformClientTokenController>;
112
+ private readonly clientId: string;
113
+ private readonly clientSecret: string;
114
+
115
+ /** @internal Use {@link createPlatformClientAuth} instead. */
116
+ constructor(config: PlatformClientAuthConfig) {
117
+ this.clientId = config.clientId;
118
+ this.clientSecret = config.clientSecret;
119
+
120
+ const transport = createGrpcWebTransport({
121
+ baseUrl: config.baseUrl,
122
+ httpVersion: "2",
123
+ interceptors: [rpcMetadataInterceptor, errorStripInterceptor],
124
+ });
125
+
126
+ this.tokenClient = createClient(PlatformClientTokenController, transport);
127
+ }
128
+
129
+ /**
130
+ * Mint a user-scoped JWT for browser-based access to Stigmer resources.
131
+ *
132
+ * @throws {StigmerError} with code `"unauthenticated"` if credentials are invalid
133
+ * @throws {StigmerError} with code `"not-found"` if the user doesn't exist and JIT provisioning is disabled
134
+ * @throws {StigmerError} with code `"failed-precondition"` if the client secret has expired
135
+ * @throws {StigmerError} with code `"permission-denied"` if the request origin is not in allowed_origins
136
+ */
137
+ async mintUserToken(input: MintUserTokenInput): Promise<MintUserTokenResult> {
138
+ if (!input.userId) {
139
+ throw new StigmerError(
140
+ "invalid-argument",
141
+ "mintUserToken: userId is required — this is the platform's stable identifier for the user",
142
+ 3,
143
+ );
144
+ }
145
+
146
+ try {
147
+ const response = await this.tokenClient.mintUserToken(
148
+ create(MintUserTokenRequestSchema, {
149
+ clientId: this.clientId,
150
+ clientSecret: this.clientSecret,
151
+ userId: input.userId,
152
+ userEmail: input.userEmail ?? "",
153
+ userName: input.userName ?? "",
154
+ orgId: input.orgId ?? "",
155
+ }),
156
+ );
157
+
158
+ return {
159
+ accessToken: response.accessToken,
160
+ tokenType: response.tokenType,
161
+ expiresIn: response.expiresIn,
162
+ expiresAt: new Date(Date.now() + response.expiresIn * 1000),
163
+ };
164
+ } catch (e) {
165
+ throw wrapError(e);
166
+ }
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Create a PlatformClient token-minting helper for Node.js backends.
172
+ *
173
+ * This is the recommended way to mint Stigmer user JWTs from a platform
174
+ * builder's backend. The returned tokens are passed to the React SDK's
175
+ * `StigmerProvider` via `getAccessToken`.
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * import { createPlatformClientAuth } from "@stigmer/sdk/node";
180
+ *
181
+ * const auth = createPlatformClientAuth({
182
+ * baseUrl: "https://api.stigmer.ai",
183
+ * clientId: process.env.STIGMER_CLIENT_ID!,
184
+ * clientSecret: process.env.STIGMER_CLIENT_SECRET!,
185
+ * });
186
+ *
187
+ * const { accessToken, expiresAt } = await auth.mintUserToken({
188
+ * userId: "user-123",
189
+ * userEmail: "jane@acme.com",
190
+ * userName: "Jane Doe",
191
+ * });
192
+ * ```
193
+ *
194
+ * @throws {Error} if `baseUrl`, `clientId`, or `clientSecret` is missing or empty
195
+ */
196
+ export function createPlatformClientAuth(
197
+ config: PlatformClientAuthConfig,
198
+ ): PlatformClientAuth {
199
+ if (!config.baseUrl) {
200
+ throw new Error(
201
+ "createPlatformClientAuth: baseUrl is required (e.g., \"https://api.stigmer.ai\")",
202
+ );
203
+ }
204
+ if (!config.clientId) {
205
+ throw new Error(
206
+ "createPlatformClientAuth: clientId is required — find it in the Stigmer Console under IAM > Platform Clients",
207
+ );
208
+ }
209
+ if (!config.clientSecret) {
210
+ throw new Error(
211
+ "createPlatformClientAuth: clientSecret is required — the secret is shown once at creation time. " +
212
+ "If lost, rotate the secret via the Console or CLI",
213
+ );
214
+ }
215
+
216
+ return new PlatformClientAuth(config);
217
+ }