@m1a0rz/agent-identity 0.2.4 → 0.2.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/store/session-store.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/store/session-store.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAQF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAoBD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAc1F;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgB9B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvF"}
|
|
@@ -23,6 +23,8 @@ import path from "node:path";
|
|
|
23
23
|
const SESSIONS_FILENAME = "sessions.json";
|
|
24
24
|
/** Max session age when no expiresAt (e.g. legacy entries). Default 30 days. */
|
|
25
25
|
const MAX_SESSION_AGE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
26
|
+
/** Absolute max session lifetime regardless of refresh token. Default 30 days. */
|
|
27
|
+
const MAX_SESSION_ABSOLUTE_AGE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
26
28
|
export async function ensureStoreDir(storeDir) {
|
|
27
29
|
await fs.mkdir(storeDir, { recursive: true });
|
|
28
30
|
}
|
|
@@ -30,6 +32,12 @@ function pruneExpiredSessions(sessions) {
|
|
|
30
32
|
const now = Date.now();
|
|
31
33
|
const pruned = {};
|
|
32
34
|
for (const [k, v] of Object.entries(sessions)) {
|
|
35
|
+
if (now - v.loginAt > MAX_SESSION_ABSOLUTE_AGE_MS)
|
|
36
|
+
continue;
|
|
37
|
+
if (v.refreshToken) {
|
|
38
|
+
pruned[k] = v;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
33
41
|
if (v.expiresAt != null && v.expiresAt < now)
|
|
34
42
|
continue;
|
|
35
43
|
if (v.expiresAt == null && now - v.loginAt > MAX_SESSION_AGE_MS)
|
|
@@ -65,7 +73,13 @@ export async function getSession(storeDir, sessionKey) {
|
|
|
65
73
|
const entry = sessions[sessionKey];
|
|
66
74
|
if (!entry)
|
|
67
75
|
return null;
|
|
68
|
-
|
|
76
|
+
const now = Date.now();
|
|
77
|
+
if (now - entry.loginAt > MAX_SESSION_ABSOLUTE_AGE_MS) {
|
|
78
|
+
delete sessions[sessionKey];
|
|
79
|
+
await saveSessions(storeDir, sessions);
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
if (entry.expiresAt && entry.expiresAt < now && !entry.refreshToken) {
|
|
69
83
|
delete sessions[sessionKey];
|
|
70
84
|
await saveSessions(storeDir, sessions);
|
|
71
85
|
return null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m1a0rz/agent-identity",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Agent Identity: UserPool (用户池) login, TIP token (工作负载令牌), credential hosting (凭据托管 OAuth2/API key), optional tool/skill permission control (CheckPermission) and risk approval. Integrates with Volcengine 智能体身份和权限管理平台.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|