@mondaydotcomorg/atp-providers 0.17.16 → 0.18.4-rc.0
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/audit/jsonl.d.ts +29 -0
- package/dist/audit/jsonl.d.ts.map +1 -0
- package/dist/audit/jsonl.js +163 -0
- package/dist/audit/jsonl.js.map +1 -0
- package/dist/audit/opentelemetry.d.ts +23 -0
- package/dist/audit/opentelemetry.d.ts.map +1 -0
- package/dist/audit/opentelemetry.js +240 -0
- package/dist/audit/opentelemetry.js.map +1 -0
- package/dist/audit/otel-metrics.d.ts +111 -0
- package/dist/audit/otel-metrics.d.ts.map +1 -0
- package/dist/audit/otel-metrics.js +115 -0
- package/dist/audit/otel-metrics.js.map +1 -0
- package/dist/auth/env.d.ts +21 -0
- package/dist/auth/env.d.ts.map +1 -0
- package/dist/auth/env.js +48 -0
- package/dist/auth/env.js.map +1 -0
- package/dist/cache/file.d.ts +47 -0
- package/dist/cache/file.d.ts.map +1 -0
- package/dist/cache/file.js +262 -0
- package/dist/cache/file.js.map +1 -0
- package/dist/cache/memory.d.ts +30 -0
- package/dist/cache/memory.d.ts.map +1 -0
- package/dist/cache/memory.js +81 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/redis.d.ts +28 -0
- package/dist/cache/redis.d.ts.map +1 -0
- package/dist/cache/redis.js +124 -0
- package/dist/cache/redis.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth/index.d.ts +2 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +2 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/scope-checkers.d.ts +61 -0
- package/dist/oauth/scope-checkers.d.ts.map +1 -0
- package/dist/oauth/scope-checkers.js +166 -0
- package/dist/oauth/scope-checkers.js.map +1 -0
- package/package.json +8 -2
- package/project.json +1 -3
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CacheProvider } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
import type Redis from 'ioredis';
|
|
3
|
+
export interface RedisCacheOptions {
|
|
4
|
+
redis: Redis;
|
|
5
|
+
keyPrefix?: string;
|
|
6
|
+
defaultTTL?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Redis-backed cache provider for distributed systems
|
|
10
|
+
* Enables cross-pod state sharing and resume capabilities
|
|
11
|
+
*/
|
|
12
|
+
export declare class RedisCache implements CacheProvider {
|
|
13
|
+
name: string;
|
|
14
|
+
private redis;
|
|
15
|
+
private keyPrefix;
|
|
16
|
+
private defaultTTL?;
|
|
17
|
+
constructor(options: RedisCacheOptions);
|
|
18
|
+
private getFullKey;
|
|
19
|
+
get<T>(key: string): Promise<T | null>;
|
|
20
|
+
set(key: string, value: unknown, ttl?: number): Promise<void>;
|
|
21
|
+
delete(key: string): Promise<void>;
|
|
22
|
+
has(key: string): Promise<boolean>;
|
|
23
|
+
clear(pattern?: string): Promise<void>;
|
|
24
|
+
mget(keys: string[]): Promise<Array<unknown | null>>;
|
|
25
|
+
mset(entries: Array<[string, unknown, number?]>): Promise<void>;
|
|
26
|
+
disconnect(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/cache/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,IAAI,SAAW;IACf,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,EAAE,iBAAiB;IAMtC,OAAO,CAAC,UAAU;IAIZ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAetC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAcpD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAUjC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis-backed cache provider for distributed systems
|
|
3
|
+
* Enables cross-pod state sharing and resume capabilities
|
|
4
|
+
*/
|
|
5
|
+
export class RedisCache {
|
|
6
|
+
name = 'redis';
|
|
7
|
+
redis;
|
|
8
|
+
keyPrefix;
|
|
9
|
+
defaultTTL;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.redis = options.redis;
|
|
12
|
+
this.keyPrefix = options.keyPrefix || 'atp:cache:';
|
|
13
|
+
this.defaultTTL = options.defaultTTL;
|
|
14
|
+
}
|
|
15
|
+
getFullKey(key) {
|
|
16
|
+
return `${this.keyPrefix}${key}`;
|
|
17
|
+
}
|
|
18
|
+
async get(key) {
|
|
19
|
+
try {
|
|
20
|
+
const value = await this.redis.get(this.getFullKey(key));
|
|
21
|
+
if (!value)
|
|
22
|
+
return null;
|
|
23
|
+
return JSON.parse(value);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error('[RedisCache] Failed to get key:', key, error instanceof Error ? error.message : error);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async set(key, value, ttl) {
|
|
31
|
+
try {
|
|
32
|
+
const serialized = JSON.stringify(value);
|
|
33
|
+
const fullKey = this.getFullKey(key);
|
|
34
|
+
const effectiveTTL = ttl ?? this.defaultTTL;
|
|
35
|
+
if (effectiveTTL) {
|
|
36
|
+
await this.redis.setex(fullKey, effectiveTTL, serialized);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
await this.redis.set(fullKey, serialized);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('[RedisCache] Failed to set key:', key, error instanceof Error ? error.message : error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async delete(key) {
|
|
47
|
+
try {
|
|
48
|
+
await this.redis.del(this.getFullKey(key));
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error('[RedisCache] Failed to delete key:', key, error instanceof Error ? error.message : error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async has(key) {
|
|
55
|
+
try {
|
|
56
|
+
const exists = await this.redis.exists(this.getFullKey(key));
|
|
57
|
+
return exists === 1;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('[RedisCache] Failed to check key:', key, error instanceof Error ? error.message : error);
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async clear(pattern) {
|
|
65
|
+
try {
|
|
66
|
+
if (pattern) {
|
|
67
|
+
const fullPattern = this.getFullKey(pattern);
|
|
68
|
+
const keys = await this.redis.keys(fullPattern);
|
|
69
|
+
if (keys.length > 0) {
|
|
70
|
+
await this.redis.del(...keys);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const keys = await this.redis.keys(this.getFullKey('*'));
|
|
75
|
+
if (keys.length > 0) {
|
|
76
|
+
await this.redis.del(...keys);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error('[RedisCache] Failed to clear cache:', error instanceof Error ? error.message : error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async mget(keys) {
|
|
85
|
+
try {
|
|
86
|
+
const fullKeys = keys.map((key) => this.getFullKey(key));
|
|
87
|
+
const values = await this.redis.mget(...fullKeys);
|
|
88
|
+
return values.map((value) => (value ? JSON.parse(value) : null));
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error('[RedisCache] Failed to mget keys:', error instanceof Error ? error.message : error);
|
|
92
|
+
return keys.map(() => null);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async mset(entries) {
|
|
96
|
+
try {
|
|
97
|
+
const pipeline = this.redis.pipeline();
|
|
98
|
+
for (const [key, value, ttl] of entries) {
|
|
99
|
+
const serialized = JSON.stringify(value);
|
|
100
|
+
const fullKey = this.getFullKey(key);
|
|
101
|
+
const effectiveTTL = ttl ?? this.defaultTTL;
|
|
102
|
+
if (effectiveTTL) {
|
|
103
|
+
pipeline.setex(fullKey, effectiveTTL, serialized);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
pipeline.set(fullKey, serialized);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
await pipeline.exec();
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error('[RedisCache] Failed to mset entries:', error instanceof Error ? error.message : error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async disconnect() {
|
|
116
|
+
try {
|
|
117
|
+
await this.redis.quit();
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error('[RedisCache] Failed to disconnect:', error instanceof Error ? error.message : error);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/cache/redis.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { MemoryCache } from './cache/memory.js';
|
|
2
|
+
export { RedisCache } from './cache/redis.js';
|
|
3
|
+
export { FileCache } from './cache/file.js';
|
|
4
|
+
export { EnvAuthProvider } from './auth/env.js';
|
|
5
|
+
export * from './oauth/index.js';
|
|
6
|
+
export { JSONLAuditSink } from './audit/jsonl.js';
|
|
7
|
+
export { OpenTelemetryAuditSink } from './audit/opentelemetry.js';
|
|
8
|
+
export { OTelCounter, OTelHistogram, OTelSpan, OTelAttribute, METRIC_CONFIGS, OTEL_SERVICE_NAME, OTEL_TRACER_NAME, OTEL_METER_NAME, ATTRIBUTE_PREFIX_TOOL, ATTRIBUTE_PREFIX_METADATA, } from './audit/otel-metrics.js';
|
|
9
|
+
export type { CacheProvider, AuthProvider, AuditSink, AuditEvent, AuditFilter, UserCredentialData, } from '@mondaydotcomorg/atp-protocol';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACX,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,kBAAkB,GAClB,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { MemoryCache } from './cache/memory.js';
|
|
2
|
+
export { RedisCache } from './cache/redis.js';
|
|
3
|
+
export { FileCache } from './cache/file.js';
|
|
4
|
+
export { EnvAuthProvider } from './auth/env.js';
|
|
5
|
+
export * from './oauth/index.js';
|
|
6
|
+
export { JSONLAuditSink } from './audit/jsonl.js';
|
|
7
|
+
export { OpenTelemetryAuditSink } from './audit/opentelemetry.js';
|
|
8
|
+
export { OTelCounter, OTelHistogram, OTelSpan, OTelAttribute, METRIC_CONFIGS, OTEL_SERVICE_NAME, OTEL_TRACER_NAME, OTEL_METER_NAME, ATTRIBUTE_PREFIX_TOOL, ATTRIBUTE_PREFIX_METADATA, } from './audit/otel-metrics.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GACzB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ScopeChecker, TokenInfo } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
/**
|
|
3
|
+
* Scope checker registry
|
|
4
|
+
* Manages scope checkers for different OAuth providers
|
|
5
|
+
*/
|
|
6
|
+
export declare class ScopeCheckerRegistry {
|
|
7
|
+
private checkers;
|
|
8
|
+
private scopeCache;
|
|
9
|
+
private cleanupInterval?;
|
|
10
|
+
private maxCacheSize;
|
|
11
|
+
private pendingChecks;
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Start periodic cache cleanup
|
|
15
|
+
*/
|
|
16
|
+
private startCleanup;
|
|
17
|
+
/**
|
|
18
|
+
* Stop periodic cache cleanup (for testing or shutdown)
|
|
19
|
+
*/
|
|
20
|
+
stopCleanup(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Remove expired entries from cache
|
|
23
|
+
*/
|
|
24
|
+
private cleanupExpiredCache;
|
|
25
|
+
/**
|
|
26
|
+
* Register a custom scope checker
|
|
27
|
+
*/
|
|
28
|
+
register(checker: ScopeChecker): void;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a scope checker is available for a provider
|
|
31
|
+
*/
|
|
32
|
+
hasChecker(provider: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Get scope checker for a provider
|
|
35
|
+
*/
|
|
36
|
+
getChecker(provider: string): ScopeChecker | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Check what scopes a token has (with caching and deduplication)
|
|
39
|
+
* @param provider - Provider name
|
|
40
|
+
* @param token - Access token
|
|
41
|
+
* @param cacheTTL - Cache TTL in seconds (default: 3600 = 1 hour)
|
|
42
|
+
*/
|
|
43
|
+
checkScopes(provider: string, token: string, cacheTTL?: number): Promise<string[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Validate if a token is still valid
|
|
46
|
+
*/
|
|
47
|
+
validateToken(provider: string, token: string): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Get complete token information
|
|
50
|
+
*/
|
|
51
|
+
getTokenInfo(provider: string, token: string): Promise<TokenInfo>;
|
|
52
|
+
/**
|
|
53
|
+
* Clear cached scopes
|
|
54
|
+
*/
|
|
55
|
+
clearCache(provider?: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Hash token for cache key (SHA-256, first 16 chars)
|
|
58
|
+
*/
|
|
59
|
+
private hashToken;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=scope-checkers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-checkers.d.ts","sourceRoot":"","sources":["../../src/oauth/scope-checkers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG7E;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAA8D;IAChF,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAwC;;IAM7D;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIrC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAItD;;;;;OAKG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqCtF;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAStE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAiBvE;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAYnC;;OAEG;IACH,OAAO,CAAC,SAAS;CAGjB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Scope checker registry
|
|
4
|
+
* Manages scope checkers for different OAuth providers
|
|
5
|
+
*/
|
|
6
|
+
export class ScopeCheckerRegistry {
|
|
7
|
+
checkers = new Map();
|
|
8
|
+
scopeCache = new Map();
|
|
9
|
+
cleanupInterval;
|
|
10
|
+
maxCacheSize = 10000;
|
|
11
|
+
pendingChecks = new Map();
|
|
12
|
+
constructor() {
|
|
13
|
+
this.startCleanup();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Start periodic cache cleanup
|
|
17
|
+
*/
|
|
18
|
+
startCleanup() {
|
|
19
|
+
this.cleanupInterval = setInterval(() => {
|
|
20
|
+
this.cleanupExpiredCache();
|
|
21
|
+
}, 5 * 60 * 1000);
|
|
22
|
+
if (this.cleanupInterval.unref) {
|
|
23
|
+
this.cleanupInterval.unref();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Stop periodic cache cleanup (for testing or shutdown)
|
|
28
|
+
*/
|
|
29
|
+
stopCleanup() {
|
|
30
|
+
if (this.cleanupInterval) {
|
|
31
|
+
clearInterval(this.cleanupInterval);
|
|
32
|
+
this.cleanupInterval = undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Remove expired entries from cache
|
|
37
|
+
*/
|
|
38
|
+
cleanupExpiredCache() {
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
let cleaned = 0;
|
|
41
|
+
for (const [key, value] of this.scopeCache.entries()) {
|
|
42
|
+
if (value.expiresAt <= now) {
|
|
43
|
+
this.scopeCache.delete(key);
|
|
44
|
+
cleaned++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (this.scopeCache.size > this.maxCacheSize) {
|
|
48
|
+
const entriesToRemove = this.scopeCache.size - this.maxCacheSize;
|
|
49
|
+
const entries = Array.from(this.scopeCache.entries());
|
|
50
|
+
entries.sort((a, b) => a[1].expiresAt - b[1].expiresAt);
|
|
51
|
+
for (let i = 0; i < entriesToRemove; i++) {
|
|
52
|
+
const entry = entries[i];
|
|
53
|
+
if (entry) {
|
|
54
|
+
this.scopeCache.delete(entry[0]);
|
|
55
|
+
cleaned++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (cleaned > 0) {
|
|
60
|
+
console.debug(`Cleaned ${cleaned} expired/old scope cache entries`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Register a custom scope checker
|
|
65
|
+
*/
|
|
66
|
+
register(checker) {
|
|
67
|
+
this.checkers.set(checker.provider, checker);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if a scope checker is available for a provider
|
|
71
|
+
*/
|
|
72
|
+
hasChecker(provider) {
|
|
73
|
+
return this.checkers.has(provider);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get scope checker for a provider
|
|
77
|
+
*/
|
|
78
|
+
getChecker(provider) {
|
|
79
|
+
return this.checkers.get(provider);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check what scopes a token has (with caching and deduplication)
|
|
83
|
+
* @param provider - Provider name
|
|
84
|
+
* @param token - Access token
|
|
85
|
+
* @param cacheTTL - Cache TTL in seconds (default: 3600 = 1 hour)
|
|
86
|
+
*/
|
|
87
|
+
async checkScopes(provider, token, cacheTTL = 3600) {
|
|
88
|
+
const cacheKey = `${provider}:${this.hashToken(token)}`;
|
|
89
|
+
const cached = this.scopeCache.get(cacheKey);
|
|
90
|
+
if (cached && cached.expiresAt > Date.now()) {
|
|
91
|
+
return cached.scopes;
|
|
92
|
+
}
|
|
93
|
+
const pending = this.pendingChecks.get(cacheKey);
|
|
94
|
+
if (pending) {
|
|
95
|
+
return pending;
|
|
96
|
+
}
|
|
97
|
+
const checker = this.checkers.get(provider);
|
|
98
|
+
if (!checker) {
|
|
99
|
+
throw new Error(`No scope checker registered for provider: ${provider}`);
|
|
100
|
+
}
|
|
101
|
+
const checkPromise = (async () => {
|
|
102
|
+
try {
|
|
103
|
+
const scopes = await checker.check(token);
|
|
104
|
+
this.scopeCache.set(cacheKey, {
|
|
105
|
+
scopes,
|
|
106
|
+
expiresAt: Date.now() + cacheTTL * 1000,
|
|
107
|
+
});
|
|
108
|
+
return scopes;
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
this.pendingChecks.delete(cacheKey);
|
|
112
|
+
}
|
|
113
|
+
})();
|
|
114
|
+
this.pendingChecks.set(cacheKey, checkPromise);
|
|
115
|
+
return checkPromise;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Validate if a token is still valid
|
|
119
|
+
*/
|
|
120
|
+
async validateToken(provider, token) {
|
|
121
|
+
const checker = this.checkers.get(provider);
|
|
122
|
+
if (!checker || !checker.validate) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
return await checker.validate(token);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get complete token information
|
|
129
|
+
*/
|
|
130
|
+
async getTokenInfo(provider, token) {
|
|
131
|
+
const checker = this.checkers.get(provider);
|
|
132
|
+
if (!checker) {
|
|
133
|
+
throw new Error(`No scope checker registered for provider: ${provider}`);
|
|
134
|
+
}
|
|
135
|
+
const [scopes, valid] = await Promise.all([
|
|
136
|
+
checker.check(token),
|
|
137
|
+
checker.validate ? checker.validate(token) : Promise.resolve(true),
|
|
138
|
+
]);
|
|
139
|
+
return {
|
|
140
|
+
valid,
|
|
141
|
+
scopes,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Clear cached scopes
|
|
146
|
+
*/
|
|
147
|
+
clearCache(provider) {
|
|
148
|
+
if (provider) {
|
|
149
|
+
for (const key of this.scopeCache.keys()) {
|
|
150
|
+
if (key.startsWith(`${provider}:`)) {
|
|
151
|
+
this.scopeCache.delete(key);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.scopeCache.clear();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Hash token for cache key (SHA-256, first 16 chars)
|
|
161
|
+
*/
|
|
162
|
+
hashToken(token) {
|
|
163
|
+
return createHash('sha256').update(token).digest('hex').substring(0, 16);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=scope-checkers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-checkers.js","sourceRoot":"","sources":["../../src/oauth/scope-checkers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/atp-providers",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.4-rc.0",
|
|
4
4
|
"description": "Built-in providers for Agent Tool Protocol (cache, auth, audit)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,8 +25,14 @@
|
|
|
25
25
|
"publishConfig": {
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"providers",
|
|
30
|
+
"atp",
|
|
31
|
+
"api",
|
|
32
|
+
"agent"
|
|
33
|
+
],
|
|
28
34
|
"dependencies": {
|
|
29
|
-
"@mondaydotcomorg/atp-protocol": "0.
|
|
35
|
+
"@mondaydotcomorg/atp-protocol": "0.18.4-rc.0",
|
|
30
36
|
"@opentelemetry/api": "^1.9.0"
|
|
31
37
|
},
|
|
32
38
|
"devDependencies": {
|