@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.
- package/__tests__/platform-client-auth.test.d.ts +2 -0
- package/__tests__/platform-client-auth.test.d.ts.map +1 -0
- package/__tests__/platform-client-auth.test.js +59 -0
- package/__tests__/platform-client-auth.test.js.map +1 -0
- package/gen/authorization-config.d.ts.map +1 -1
- package/gen/authorization-config.js +1 -0
- package/gen/authorization-config.js.map +1 -1
- package/gen/client.d.ts +4 -0
- package/gen/client.d.ts.map +1 -1
- package/gen/client.js +4 -0
- package/gen/client.js.map +1 -1
- package/gen/platformclient.d.ts +38 -0
- package/gen/platformclient.d.ts.map +1 -0
- package/gen/platformclient.js +117 -0
- package/gen/platformclient.js.map +1 -0
- package/gen/resource-availability.d.ts.map +1 -1
- package/gen/resource-availability.js +1 -0
- package/gen/resource-availability.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.d.ts +1 -0
- package/node.d.ts.map +1 -1
- package/node.js +1 -0
- package/node.js.map +1 -1
- package/package.json +2 -2
- package/platform-client-auth.d.ts +131 -0
- package/platform-client-auth.d.ts.map +1 -0
- package/platform-client-auth.js +119 -0
- package/platform-client-auth.js.map +1 -0
- package/src/__tests__/platform-client-auth.test.ts +76 -0
- package/src/gen/authorization-config.ts +1 -0
- package/src/gen/client.ts +5 -0
- package/src/gen/platformclient.ts +123 -0
- package/src/gen/resource-availability.ts +1 -0
- package/src/index.ts +4 -0
- package/src/node.ts +8 -0
- package/src/platform-client-auth.ts +217 -0
|
@@ -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,
|
|
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";
|
package/gen/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/gen/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,+DAA+D;AAC/D,qBAAa,eAAe;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;gBAEtC,SAAS,EAAE,SAAS;
|
|
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":"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"}
|
|
@@ -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,
|
|
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":"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"}
|
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;
|
|
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.
|
|
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.
|
|
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
|
+
}
|
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
|
+
}
|