@dofe/infra-clients 0.1.89 → 0.1.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/internal/sso/index.d.ts +2 -0
- package/dist/internal/sso/index.d.ts.map +1 -1
- package/dist/internal/sso/index.js +4 -1
- package/dist/internal/sso/index.js.map +1 -1
- package/dist/internal/sso/sso-auth.client.d.ts +12 -2
- package/dist/internal/sso/sso-auth.client.d.ts.map +1 -1
- package/dist/internal/sso/sso-auth.client.js +23 -12
- package/dist/internal/sso/sso-auth.client.js.map +1 -1
- package/dist/internal/sso/sso-rbac.client.d.ts +3 -0
- package/dist/internal/sso/sso-rbac.client.d.ts.map +1 -1
- package/dist/internal/sso/sso-rbac.client.js +18 -14
- package/dist/internal/sso/sso-rbac.client.js.map +1 -1
- package/dist/internal/sso/sso-response.util.d.ts +36 -0
- package/dist/internal/sso/sso-response.util.d.ts.map +1 -0
- package/dist/internal/sso/sso-response.util.js +54 -0
- package/dist/internal/sso/sso-response.util.js.map +1 -0
- package/package.json +10 -6
|
@@ -3,4 +3,6 @@ export { SsoMessageClient } from './sso-message.client';
|
|
|
3
3
|
export { SsoMessageProxyService } from './sso-message-proxy.service';
|
|
4
4
|
export { SsoAuthClient, SsoInternalUser, SsoInternalTenant, SsoOidcSessionInfo, SsoMainSessionInfo, SsoUserSessionsResponse, SsoKeyInfo, SsoKeyStatusResponse, SsoKeyRotateResponse, SsoKeyPurgeResponse, } from './sso-auth.client';
|
|
5
5
|
export { SsoRbacClient, SsoPermission, SsoCustomRole, SsoMemberRoleAssignment, SsoUserPermissions, } from './sso-rbac.client';
|
|
6
|
+
export { SsoInternalApiError, unwrapSsoResponse } from './sso-response.util';
|
|
7
|
+
export type { SsoApiResponse } from './sso-response.util';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SsoRbacClient = exports.SsoAuthClient = exports.SsoMessageProxyService = exports.SsoMessageClient = exports.SsoClientModule = void 0;
|
|
3
|
+
exports.unwrapSsoResponse = exports.SsoInternalApiError = exports.SsoRbacClient = exports.SsoAuthClient = exports.SsoMessageProxyService = exports.SsoMessageClient = exports.SsoClientModule = void 0;
|
|
4
4
|
var sso_module_1 = require("./sso.module");
|
|
5
5
|
Object.defineProperty(exports, "SsoClientModule", { enumerable: true, get: function () { return sso_module_1.SsoClientModule; } });
|
|
6
6
|
var sso_message_client_1 = require("./sso-message.client");
|
|
@@ -11,4 +11,7 @@ var sso_auth_client_1 = require("./sso-auth.client");
|
|
|
11
11
|
Object.defineProperty(exports, "SsoAuthClient", { enumerable: true, get: function () { return sso_auth_client_1.SsoAuthClient; } });
|
|
12
12
|
var sso_rbac_client_1 = require("./sso-rbac.client");
|
|
13
13
|
Object.defineProperty(exports, "SsoRbacClient", { enumerable: true, get: function () { return sso_rbac_client_1.SsoRbacClient; } });
|
|
14
|
+
var sso_response_util_1 = require("./sso-response.util");
|
|
15
|
+
Object.defineProperty(exports, "SsoInternalApiError", { enumerable: true, get: function () { return sso_response_util_1.SsoInternalApiError; } });
|
|
16
|
+
Object.defineProperty(exports, "unwrapSsoResponse", { enumerable: true, get: function () { return sso_response_util_1.unwrapSsoResponse; } });
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AACxB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,qDAW2B;AAVzB,gHAAA,aAAa,OAAA;AAWf,qDAM2B;AALzB,gHAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AACxB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,qDAW2B;AAVzB,gHAAA,aAAa,OAAA;AAWf,qDAM2B;AALzB,gHAAA,aAAa,OAAA;AAMf,yDAA6E;AAApE,wHAAA,mBAAmB,OAAA;AAAE,sHAAA,iBAAiB,OAAA"}
|
|
@@ -79,6 +79,16 @@ export interface SsoKeyRotateResponse {
|
|
|
79
79
|
export interface SsoKeyPurgeResponse {
|
|
80
80
|
purgedCount: number;
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* SSO Auth 客户端
|
|
84
|
+
*
|
|
85
|
+
* 通过 SSO Internal API 验证 token、查询用户/租户/会话/密钥。
|
|
86
|
+
* Internal API 响应统一经 unwrapSsoResponse 解包:SSO 抖动或返回非标准信封时
|
|
87
|
+
* 抛出 SsoInternalApiError,而非把 undefined 透传给调用方。
|
|
88
|
+
*
|
|
89
|
+
* 注意:getSession / getJwks 走公开端点(非 internal API),返回原始响应体,
|
|
90
|
+
* 不套用 { code, msg, data } 信封,故不经 unwrapSsoResponse。
|
|
91
|
+
*/
|
|
82
92
|
export declare class SsoAuthClient implements OnModuleInit {
|
|
83
93
|
private readonly httpService;
|
|
84
94
|
private readonly configService;
|
|
@@ -112,7 +122,7 @@ export declare class SsoAuthClient implements OnModuleInit {
|
|
|
112
122
|
getTenant(tenantId: string): Promise<SsoInternalTenant>;
|
|
113
123
|
/**
|
|
114
124
|
* 检查 SSO 会话状态(跨子域 cookie)
|
|
115
|
-
* 注意:此方法不使用内部 API 认证,而是传递用户 cookie
|
|
125
|
+
* 注意:此方法不使用内部 API 认证,而是传递用户 cookie,返回原始响应体
|
|
116
126
|
*/
|
|
117
127
|
getSession(cookieHeader?: string): Promise<unknown>;
|
|
118
128
|
/**
|
|
@@ -145,7 +155,7 @@ export declare class SsoAuthClient implements OnModuleInit {
|
|
|
145
155
|
purgeKeys(): Promise<SsoKeyPurgeResponse>;
|
|
146
156
|
/**
|
|
147
157
|
* 获取 JWKS 公钥集合
|
|
148
|
-
*
|
|
158
|
+
* 注意:此方法是公开的,不需要认证,返回原始响应体
|
|
149
159
|
*/
|
|
150
160
|
getJwks(): Promise<{
|
|
151
161
|
keys: Array<Record<string, unknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-auth.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-auth.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sso-auth.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-auth.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,17 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const axios_1 = require("@nestjs/axios");
|
|
15
15
|
const config_1 = require("@nestjs/config");
|
|
16
16
|
const rxjs_1 = require("rxjs");
|
|
17
|
+
const sso_response_util_1 = require("./sso-response.util");
|
|
18
|
+
/**
|
|
19
|
+
* SSO Auth 客户端
|
|
20
|
+
*
|
|
21
|
+
* 通过 SSO Internal API 验证 token、查询用户/租户/会话/密钥。
|
|
22
|
+
* Internal API 响应统一经 unwrapSsoResponse 解包:SSO 抖动或返回非标准信封时
|
|
23
|
+
* 抛出 SsoInternalApiError,而非把 undefined 透传给调用方。
|
|
24
|
+
*
|
|
25
|
+
* 注意:getSession / getJwks 走公开端点(非 internal API),返回原始响应体,
|
|
26
|
+
* 不套用 { code, msg, data } 信封,故不经 unwrapSsoResponse。
|
|
27
|
+
*/
|
|
17
28
|
let SsoAuthClient = class SsoAuthClient {
|
|
18
29
|
httpService;
|
|
19
30
|
configService;
|
|
@@ -64,7 +75,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
64
75
|
headers: this.getInternalHeaders(),
|
|
65
76
|
timeout: 5000,
|
|
66
77
|
}));
|
|
67
|
-
return response.
|
|
78
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.verifyToken");
|
|
68
79
|
}
|
|
69
80
|
// ============================================================================
|
|
70
81
|
// User Management
|
|
@@ -77,7 +88,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
77
88
|
headers: this.getInternalHeaders(),
|
|
78
89
|
timeout: 5000,
|
|
79
90
|
}));
|
|
80
|
-
return response.
|
|
91
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.getUser");
|
|
81
92
|
}
|
|
82
93
|
/**
|
|
83
94
|
* 批量获取用户信息
|
|
@@ -88,7 +99,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
88
99
|
headers: this.getInternalHeaders(),
|
|
89
100
|
timeout: 10000, // 批量请求可能需要更长超时
|
|
90
101
|
}));
|
|
91
|
-
return response.
|
|
102
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.batchGetUsers");
|
|
92
103
|
}
|
|
93
104
|
// ============================================================================
|
|
94
105
|
// Tenant Management
|
|
@@ -101,14 +112,14 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
101
112
|
headers: this.getInternalHeaders(),
|
|
102
113
|
timeout: 5000,
|
|
103
114
|
}));
|
|
104
|
-
return response.
|
|
115
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.getTenant");
|
|
105
116
|
}
|
|
106
117
|
// ============================================================================
|
|
107
118
|
// Session Management
|
|
108
119
|
// ============================================================================
|
|
109
120
|
/**
|
|
110
121
|
* 检查 SSO 会话状态(跨子域 cookie)
|
|
111
|
-
* 注意:此方法不使用内部 API 认证,而是传递用户 cookie
|
|
122
|
+
* 注意:此方法不使用内部 API 认证,而是传递用户 cookie,返回原始响应体
|
|
112
123
|
*/
|
|
113
124
|
async getSession(cookieHeader) {
|
|
114
125
|
const headers = {};
|
|
@@ -128,7 +139,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
128
139
|
headers: this.getInternalHeaders(),
|
|
129
140
|
timeout: 5000,
|
|
130
141
|
}));
|
|
131
|
-
return response.
|
|
142
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.getUserSessions");
|
|
132
143
|
}
|
|
133
144
|
/**
|
|
134
145
|
* 撤销用户特定 OIDC 会话
|
|
@@ -138,7 +149,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
138
149
|
headers: this.getInternalHeaders(),
|
|
139
150
|
timeout: 5000,
|
|
140
151
|
}));
|
|
141
|
-
return response.
|
|
152
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.revokeSession");
|
|
142
153
|
}
|
|
143
154
|
/**
|
|
144
155
|
* 撤销用户所有会话
|
|
@@ -148,7 +159,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
148
159
|
headers: this.getInternalHeaders(),
|
|
149
160
|
timeout: 5000,
|
|
150
161
|
}));
|
|
151
|
-
return response.
|
|
162
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.revokeAllSessions");
|
|
152
163
|
}
|
|
153
164
|
// ============================================================================
|
|
154
165
|
// Key Management (JWKS rotation)
|
|
@@ -161,7 +172,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
161
172
|
headers: this.getInternalHeaders(),
|
|
162
173
|
timeout: 5000,
|
|
163
174
|
}));
|
|
164
|
-
return response.
|
|
175
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.getKeyStatus");
|
|
165
176
|
}
|
|
166
177
|
/**
|
|
167
178
|
* 轮换密钥
|
|
@@ -171,7 +182,7 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
171
182
|
headers: this.getInternalHeaders(),
|
|
172
183
|
timeout: 5000,
|
|
173
184
|
}));
|
|
174
|
-
return response.
|
|
185
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.rotateKeys");
|
|
175
186
|
}
|
|
176
187
|
/**
|
|
177
188
|
* 清理过期密钥
|
|
@@ -181,14 +192,14 @@ let SsoAuthClient = class SsoAuthClient {
|
|
|
181
192
|
headers: this.getInternalHeaders(),
|
|
182
193
|
timeout: 5000,
|
|
183
194
|
}));
|
|
184
|
-
return response.
|
|
195
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.auth.purgeKeys");
|
|
185
196
|
}
|
|
186
197
|
// ============================================================================
|
|
187
198
|
// JWKS (Public keys for JWT verification)
|
|
188
199
|
// ============================================================================
|
|
189
200
|
/**
|
|
190
201
|
* 获取 JWKS 公钥集合
|
|
191
|
-
*
|
|
202
|
+
* 注意:此方法是公开的,不需要认证,返回原始响应体
|
|
192
203
|
*/
|
|
193
204
|
async getJwks() {
|
|
194
205
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.ssoBaseUrl}/.well-known/jwks.json`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-auth.client.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-auth.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0D;AAC1D,yCAA4C;AAC5C,2CAA+C;AAC/C,+BAAsC;
|
|
1
|
+
{"version":3,"file":"sso-auth.client.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-auth.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,9 @@ export interface SsoUserPermissions {
|
|
|
36
36
|
*
|
|
37
37
|
* 通过 SSO Internal API 操作权限、自定义角色、成员角色分配和审批工作流。
|
|
38
38
|
* 与 SsoAuthClient 使用相同的认证头 (Bearer + X-Service-Name)。
|
|
39
|
+
*
|
|
40
|
+
* 所有响应经 unwrapSsoResponse 解包:SSO 抖动或返回非标准信封时抛出
|
|
41
|
+
* SsoInternalApiError,而非把 undefined 透传给调用方。
|
|
39
42
|
*/
|
|
40
43
|
export declare class SsoRbacClient implements OnModuleInit {
|
|
41
44
|
private readonly httpService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-rbac.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-rbac.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sso-rbac.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-rbac.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,15 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const axios_1 = require("@nestjs/axios");
|
|
15
15
|
const config_1 = require("@nestjs/config");
|
|
16
16
|
const rxjs_1 = require("rxjs");
|
|
17
|
+
const sso_response_util_1 = require("./sso-response.util");
|
|
17
18
|
/**
|
|
18
19
|
* SSO RBAC 客户端
|
|
19
20
|
*
|
|
20
21
|
* 通过 SSO Internal API 操作权限、自定义角色、成员角色分配和审批工作流。
|
|
21
22
|
* 与 SsoAuthClient 使用相同的认证头 (Bearer + X-Service-Name)。
|
|
23
|
+
*
|
|
24
|
+
* 所有响应经 unwrapSsoResponse 解包:SSO 抖动或返回非标准信封时抛出
|
|
25
|
+
* SsoInternalApiError,而非把 undefined 透传给调用方。
|
|
22
26
|
*/
|
|
23
27
|
let SsoRbacClient = class SsoRbacClient {
|
|
24
28
|
httpService;
|
|
@@ -61,30 +65,30 @@ let SsoRbacClient = class SsoRbacClient {
|
|
|
61
65
|
// ============================================================================
|
|
62
66
|
async listPermissions() {
|
|
63
67
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.basePath()}/permissions`, { headers: this.getHeaders(), timeout: 5000 }));
|
|
64
|
-
return response.
|
|
68
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.listPermissions");
|
|
65
69
|
}
|
|
66
70
|
// ============================================================================
|
|
67
71
|
// Custom Roles
|
|
68
72
|
// ============================================================================
|
|
69
73
|
async listRoles(tenantId) {
|
|
70
74
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.basePath()}/roles`, { headers: this.getHeaders(), params: { tenantId }, timeout: 5000 }));
|
|
71
|
-
return response.
|
|
75
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.listRoles");
|
|
72
76
|
}
|
|
73
77
|
async createRole(params) {
|
|
74
78
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(`${this.basePath()}/roles`, params, { headers: this.getHeaders(), timeout: 5000 }));
|
|
75
|
-
return response.
|
|
79
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.createRole");
|
|
76
80
|
}
|
|
77
81
|
async getRole(id) {
|
|
78
82
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.basePath()}/roles/${id}`, { headers: this.getHeaders(), timeout: 5000 }));
|
|
79
|
-
return response.
|
|
83
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.getRole");
|
|
80
84
|
}
|
|
81
85
|
async updateRole(id, params) {
|
|
82
86
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.put(`${this.basePath()}/roles/${id}`, params, { headers: this.getHeaders(), timeout: 5000 }));
|
|
83
|
-
return response.
|
|
87
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.updateRole");
|
|
84
88
|
}
|
|
85
89
|
async deleteRole(id) {
|
|
86
90
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.delete(`${this.basePath()}/roles/${id}`, { headers: this.getHeaders(), timeout: 5000 }));
|
|
87
|
-
return response.
|
|
91
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.deleteRole");
|
|
88
92
|
}
|
|
89
93
|
// ============================================================================
|
|
90
94
|
// Member Role Assignments
|
|
@@ -95,15 +99,15 @@ let SsoRbacClient = class SsoRbacClient {
|
|
|
95
99
|
params: { tenantId, ...(userId ? { userId } : {}) },
|
|
96
100
|
timeout: 5000,
|
|
97
101
|
}));
|
|
98
|
-
return response.
|
|
102
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.listMemberAssignments");
|
|
99
103
|
}
|
|
100
104
|
async assignRole(params) {
|
|
101
105
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(`${this.basePath()}/member-role-assignments`, params, { headers: this.getHeaders(), timeout: 5000 }));
|
|
102
|
-
return response.
|
|
106
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.assignRole");
|
|
103
107
|
}
|
|
104
108
|
async removeRole(assignmentId) {
|
|
105
109
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.delete(`${this.basePath()}/member-role-assignments/${assignmentId}`, { headers: this.getHeaders(), timeout: 5000 }));
|
|
106
|
-
return response.
|
|
110
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.removeRole");
|
|
107
111
|
}
|
|
108
112
|
// ============================================================================
|
|
109
113
|
// User Effective Permissions
|
|
@@ -114,22 +118,22 @@ let SsoRbacClient = class SsoRbacClient {
|
|
|
114
118
|
params: { tenantId },
|
|
115
119
|
timeout: 5000,
|
|
116
120
|
}));
|
|
117
|
-
return response.
|
|
121
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.getUserEffectivePermissions");
|
|
118
122
|
}
|
|
119
123
|
// ============================================================================
|
|
120
124
|
// Approval Workflow
|
|
121
125
|
// ============================================================================
|
|
122
126
|
async listApprovals(query) {
|
|
123
127
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.basePath()}/approvals`, { headers: this.getHeaders(), params: query, timeout: 5000 }));
|
|
124
|
-
return response.
|
|
128
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.listApprovals");
|
|
125
129
|
}
|
|
126
130
|
async createApproval(params) {
|
|
127
131
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(`${this.basePath()}/approvals`, params, { headers: this.getHeaders(), timeout: 5000 }));
|
|
128
|
-
return response.
|
|
132
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.createApproval");
|
|
129
133
|
}
|
|
130
134
|
async getApproval(id) {
|
|
131
135
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.basePath()}/approvals/${id}`, { headers: this.getHeaders(), timeout: 5000 }));
|
|
132
|
-
return response.
|
|
136
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.getApproval");
|
|
133
137
|
}
|
|
134
138
|
async resolveApproval(params) {
|
|
135
139
|
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.put(`${this.basePath()}/approvals/${params.id}/resolve`, {
|
|
@@ -137,7 +141,7 @@ let SsoRbacClient = class SsoRbacClient {
|
|
|
137
141
|
approved: params.approved,
|
|
138
142
|
comment: params.comment,
|
|
139
143
|
}, { headers: this.getHeaders(), timeout: 5000 }));
|
|
140
|
-
return response.
|
|
144
|
+
return (0, sso_response_util_1.unwrapSsoResponse)(response, "sso.rbac.resolveApproval");
|
|
141
145
|
}
|
|
142
146
|
};
|
|
143
147
|
exports.SsoRbacClient = SsoRbacClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-rbac.client.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-rbac.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0D;AAC1D,yCAA4C;AAC5C,2CAA+C;AAC/C,+BAAsC;
|
|
1
|
+
{"version":3,"file":"sso-rbac.client.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-rbac.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AxiosResponse } from "axios";
|
|
2
|
+
/**
|
|
3
|
+
* SSO Internal API 标准响应信封。
|
|
4
|
+
*
|
|
5
|
+
* SSO 所有 internal 端点统一返回 { code, msg, data };
|
|
6
|
+
* code 为 0 或 200 表示成功,其余均为业务失败。
|
|
7
|
+
*/
|
|
8
|
+
export interface SsoApiResponse<T = unknown> {
|
|
9
|
+
code: number;
|
|
10
|
+
msg?: string;
|
|
11
|
+
data?: T;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* SSO Internal API 调用失败时抛出的错误。
|
|
15
|
+
*
|
|
16
|
+
* 携带 HTTP status、业务 code 与 operation,便于调用方按需降级
|
|
17
|
+
* (例如列表接口在 SSO 抖动时回退空数组,而非把 undefined 透传给下游)。
|
|
18
|
+
*/
|
|
19
|
+
export declare class SsoInternalApiError extends Error {
|
|
20
|
+
readonly status: number;
|
|
21
|
+
readonly code: number | undefined;
|
|
22
|
+
readonly operation: string;
|
|
23
|
+
constructor(message: string, status: number, code: number | undefined, operation: string);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 解包 SSO Internal API 响应:
|
|
27
|
+
* - 信封缺失/格式不符(如 SSO 不可用时网关返回 HTML)→ 抛 SsoInternalApiError
|
|
28
|
+
* (message: "<operation> failed: unexpected response envelope")
|
|
29
|
+
* - HTTP 非 200 或业务 code 非 0/200 → 抛 SsoInternalApiError(含 msg)
|
|
30
|
+
* - 成功 → 返回 data
|
|
31
|
+
*
|
|
32
|
+
* 替代裸 `response.data.data`,避免 SSO 抖动时把 undefined 透传给调用方
|
|
33
|
+
* 导致下游 `.map()` 等操作崩溃(见 models 侧 `roles.map is not a function`)。
|
|
34
|
+
*/
|
|
35
|
+
export declare function unwrapSsoResponse<T>(response: AxiosResponse<unknown>, operation: string): T;
|
|
36
|
+
//# sourceMappingURL=sso-response.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso-response.util.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-response.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAG1C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAH1B,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,SAAS,EAAE,MAAM;CAK7B;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,CAAC,CAsBH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SsoInternalApiError = void 0;
|
|
4
|
+
exports.unwrapSsoResponse = unwrapSsoResponse;
|
|
5
|
+
/**
|
|
6
|
+
* SSO Internal API 调用失败时抛出的错误。
|
|
7
|
+
*
|
|
8
|
+
* 携带 HTTP status、业务 code 与 operation,便于调用方按需降级
|
|
9
|
+
* (例如列表接口在 SSO 抖动时回退空数组,而非把 undefined 透传给下游)。
|
|
10
|
+
*/
|
|
11
|
+
class SsoInternalApiError extends Error {
|
|
12
|
+
status;
|
|
13
|
+
code;
|
|
14
|
+
operation;
|
|
15
|
+
constructor(message, status, code, operation) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.operation = operation;
|
|
20
|
+
this.name = "SsoInternalApiError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.SsoInternalApiError = SsoInternalApiError;
|
|
24
|
+
function isSuccessCode(code) {
|
|
25
|
+
return code === 0 || code === 200;
|
|
26
|
+
}
|
|
27
|
+
function isSsoApiResponse(body) {
|
|
28
|
+
return (typeof body === "object" &&
|
|
29
|
+
body !== null &&
|
|
30
|
+
"code" in body &&
|
|
31
|
+
typeof body.code === "number" &&
|
|
32
|
+
"msg" in body);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 解包 SSO Internal API 响应:
|
|
36
|
+
* - 信封缺失/格式不符(如 SSO 不可用时网关返回 HTML)→ 抛 SsoInternalApiError
|
|
37
|
+
* (message: "<operation> failed: unexpected response envelope")
|
|
38
|
+
* - HTTP 非 200 或业务 code 非 0/200 → 抛 SsoInternalApiError(含 msg)
|
|
39
|
+
* - 成功 → 返回 data
|
|
40
|
+
*
|
|
41
|
+
* 替代裸 `response.data.data`,避免 SSO 抖动时把 undefined 透传给调用方
|
|
42
|
+
* 导致下游 `.map()` 等操作崩溃(见 models 侧 `roles.map is not a function`)。
|
|
43
|
+
*/
|
|
44
|
+
function unwrapSsoResponse(response, operation) {
|
|
45
|
+
const body = response.data;
|
|
46
|
+
if (!isSsoApiResponse(body)) {
|
|
47
|
+
throw new SsoInternalApiError(`${operation} failed: unexpected response envelope`, response.status, undefined, operation);
|
|
48
|
+
}
|
|
49
|
+
if (response.status !== 200 || !isSuccessCode(body.code)) {
|
|
50
|
+
throw new SsoInternalApiError(`${operation} failed: ${body.msg ?? "unknown error"}`, response.status, body.code, operation);
|
|
51
|
+
}
|
|
52
|
+
return body.data;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=sso-response.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso-response.util.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sso/sso-response.util.ts"],"names":[],"mappings":";;;AAwDA,8CAyBC;AAnED;;;;;GAKG;AACH,MAAa,mBAAoB,SAAQ,KAAK;IAGjC;IACA;IACA;IAJX,YACE,OAAe,EACN,MAAc,EACd,IAAwB,EACxB,SAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAoB;QACxB,cAAS,GAAT,SAAS,CAAQ;QAG1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAVD,kDAUC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,OAAQ,IAA0B,CAAC,IAAI,KAAK,QAAQ;QACpD,KAAK,IAAI,IAAI,CACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC/B,QAAgC,EAChC,SAAiB;IAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,CAC3B,GAAG,SAAS,uCAAuC,EACnD,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,CAC3B,GAAG,SAAS,YAAY,IAAI,CAAC,GAAG,IAAI,eAAe,EAAE,EACrD,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,IAAI,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,IAAS,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dofe/infra-clients",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.90",
|
|
4
4
|
"description": "Third-party SDK clients — AI, SMS, SSO, file storage, OpenClaw, Feishu, email, OCR, and more",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.19.0"
|
|
@@ -392,6 +392,10 @@
|
|
|
392
392
|
"types": "./dist/internal/sso/sso-rbac.client.d.ts",
|
|
393
393
|
"default": "./dist/internal/sso/sso-rbac.client.js"
|
|
394
394
|
},
|
|
395
|
+
"./sso/sso-response.util": {
|
|
396
|
+
"types": "./dist/internal/sso/sso-response.util.d.ts",
|
|
397
|
+
"default": "./dist/internal/sso/sso-response.util.js"
|
|
398
|
+
},
|
|
395
399
|
"./sso/sso.module": {
|
|
396
400
|
"types": "./dist/internal/sso/sso.module.d.ts",
|
|
397
401
|
"default": "./dist/internal/sso/sso.module.js"
|
|
@@ -439,8 +443,8 @@
|
|
|
439
443
|
"@aws-sdk/client-s3": "^3.978.0",
|
|
440
444
|
"@aws-sdk/client-sts": "^3.1024.0",
|
|
441
445
|
"@aws-sdk/s3-request-presigner": "^3.978.0",
|
|
442
|
-
"@dofe/infra-contracts": "^0.1.
|
|
443
|
-
"@dofe/infra-docker": "^0.1.
|
|
446
|
+
"@dofe/infra-contracts": "^0.1.90",
|
|
447
|
+
"@dofe/infra-docker": "^0.1.90",
|
|
444
448
|
"@google-cloud/storage": "^7.12.0",
|
|
445
449
|
"@larksuiteoapi/node-sdk": "^1.30.0",
|
|
446
450
|
"@nestjs/axios": "^4.0.0",
|
|
@@ -468,9 +472,9 @@
|
|
|
468
472
|
"zod": "^4.3.6"
|
|
469
473
|
},
|
|
470
474
|
"dependencies": {
|
|
471
|
-
"@dofe/infra-common": "^0.1.
|
|
472
|
-
"@dofe/infra-redis": "^0.1.
|
|
473
|
-
"@dofe/infra-utils": "^0.1.
|
|
475
|
+
"@dofe/infra-common": "^0.1.90",
|
|
476
|
+
"@dofe/infra-redis": "^0.1.90",
|
|
477
|
+
"@dofe/infra-utils": "^0.1.90"
|
|
474
478
|
},
|
|
475
479
|
"devDependencies": {
|
|
476
480
|
"rimraf": "^6.1.3",
|