@inso_web/els-mcp 0.1.0 → 0.2.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.
Files changed (121) hide show
  1. package/README.md +42 -37
  2. package/dist/audit/prisma.d.ts +9 -2
  3. package/dist/audit/prisma.d.ts.map +1 -1
  4. package/dist/audit/prisma.js +2 -2
  5. package/dist/audit/prisma.js.map +1 -1
  6. package/dist/audit/service.d.ts.map +1 -1
  7. package/dist/audit/service.js +4 -3
  8. package/dist/audit/service.js.map +1 -1
  9. package/dist/audit/verify.d.ts +55 -0
  10. package/dist/audit/verify.d.ts.map +1 -0
  11. package/dist/audit/verify.js +131 -0
  12. package/dist/audit/verify.js.map +1 -0
  13. package/dist/billing/limits.d.ts +14 -3
  14. package/dist/billing/limits.d.ts.map +1 -1
  15. package/dist/billing/limits.js +30 -3
  16. package/dist/billing/limits.js.map +1 -1
  17. package/dist/billing/tracker.d.ts +11 -3
  18. package/dist/billing/tracker.d.ts.map +1 -1
  19. package/dist/billing/tracker.js +38 -4
  20. package/dist/billing/tracker.js.map +1 -1
  21. package/dist/cache/types.d.ts +8 -8
  22. package/dist/cache/types.d.ts.map +1 -1
  23. package/dist/cache/types.js +7 -7
  24. package/dist/cache/wrapper.js +1 -1
  25. package/dist/cli.js +52 -7
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config.d.ts +19 -4
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +26 -12
  30. package/dist/config.js.map +1 -1
  31. package/dist/elsClient.js +6 -6
  32. package/dist/elsClient.js.map +1 -1
  33. package/dist/http/app.d.ts +5 -2
  34. package/dist/http/app.d.ts.map +1 -1
  35. package/dist/http/app.js +12 -7
  36. package/dist/http/app.js.map +1 -1
  37. package/dist/http/lkResolver.d.ts +60 -0
  38. package/dist/http/lkResolver.d.ts.map +1 -0
  39. package/dist/http/lkResolver.js +194 -0
  40. package/dist/http/lkResolver.js.map +1 -0
  41. package/dist/http/middleware/auth.d.ts +3 -0
  42. package/dist/http/middleware/auth.d.ts.map +1 -1
  43. package/dist/http/middleware/auth.js +28 -12
  44. package/dist/http/middleware/auth.js.map +1 -1
  45. package/dist/http/middleware/dcrRateLimit.d.ts +2 -2
  46. package/dist/http/middleware/errorHandler.d.ts +1 -1
  47. package/dist/http/middleware/errorHandler.js +1 -1
  48. package/dist/http/middleware/originGuard.d.ts +1 -1
  49. package/dist/http/middleware/requestId.d.ts +1 -1
  50. package/dist/http/routes/health.js +1 -1
  51. package/dist/http/routes/health.js.map +1 -1
  52. package/dist/http/routes/metrics.d.ts +2 -4
  53. package/dist/http/routes/metrics.d.ts.map +1 -1
  54. package/dist/http/routes/metrics.js +2 -4
  55. package/dist/http/routes/metrics.js.map +1 -1
  56. package/dist/http/types.d.ts +9 -3
  57. package/dist/http/types.d.ts.map +1 -1
  58. package/dist/instrumentation.d.ts +3 -3
  59. package/dist/instrumentation.js +3 -3
  60. package/dist/lib/cursor.d.ts +1 -1
  61. package/dist/lib/cursor.js +3 -3
  62. package/dist/lib/errors.d.ts +5 -3
  63. package/dist/lib/errors.d.ts.map +1 -1
  64. package/dist/lib/errors.js.map +1 -1
  65. package/dist/middleware/withMiddleware.d.ts +11 -9
  66. package/dist/middleware/withMiddleware.d.ts.map +1 -1
  67. package/dist/middleware/withMiddleware.js +64 -11
  68. package/dist/middleware/withMiddleware.js.map +1 -1
  69. package/dist/observability/health.d.ts +2 -2
  70. package/dist/observability/logger.d.ts +1 -1
  71. package/dist/observability/tracing.d.ts +2 -2
  72. package/dist/prompts/index.d.ts +2 -2
  73. package/dist/prompts/index.js +1 -1
  74. package/dist/redaction/promptInjection.d.ts +2 -5
  75. package/dist/redaction/promptInjection.d.ts.map +1 -1
  76. package/dist/redaction/promptInjection.js +3 -6
  77. package/dist/redaction/promptInjection.js.map +1 -1
  78. package/dist/redaction/userAgent.d.ts +1 -1
  79. package/dist/redaction/userAgent.js +1 -1
  80. package/dist/resources/index.d.ts +3 -3
  81. package/dist/resources/index.js +4 -4
  82. package/dist/resources/index.js.map +1 -1
  83. package/dist/server.d.ts +5 -5
  84. package/dist/server.d.ts.map +1 -1
  85. package/dist/server.js +1 -1
  86. package/dist/server.js.map +1 -1
  87. package/dist/tools/errorHeatmap.js +1 -1
  88. package/dist/tools/errorHeatmap.js.map +1 -1
  89. package/dist/tools/errorStatsBreakdown.d.ts +5 -4
  90. package/dist/tools/errorStatsBreakdown.d.ts.map +1 -1
  91. package/dist/tools/errorStatsBreakdown.js +7 -6
  92. package/dist/tools/errorStatsBreakdown.js.map +1 -1
  93. package/dist/tools/errorsInSession.d.ts +1 -1
  94. package/dist/tools/errorsInSession.js +1 -1
  95. package/dist/tools/explainError.d.ts +5 -5
  96. package/dist/tools/explainError.js +9 -9
  97. package/dist/tools/explainError.js.map +1 -1
  98. package/dist/tools/groupedErrors.d.ts +2 -2
  99. package/dist/tools/groupedErrors.js +2 -2
  100. package/dist/tools/impactAnalysis.d.ts +1 -1
  101. package/dist/tools/impactAnalysis.js +1 -1
  102. package/dist/tools/index.d.ts +5 -5
  103. package/dist/tools/index.d.ts.map +1 -1
  104. package/dist/tools/index.js +4 -4
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/listApps.d.ts +4 -4
  107. package/dist/tools/listApps.js +4 -4
  108. package/dist/tools/searchLogs.js +2 -2
  109. package/dist/transports/http-server.d.ts +2 -1
  110. package/dist/transports/http-server.d.ts.map +1 -1
  111. package/dist/transports/http-server.js +42 -2
  112. package/dist/transports/http-server.js.map +1 -1
  113. package/dist/transports/http.d.ts +8 -4
  114. package/dist/transports/http.d.ts.map +1 -1
  115. package/dist/transports/http.js +13 -9
  116. package/dist/transports/http.js.map +1 -1
  117. package/dist/transports/stdio.d.ts +1 -1
  118. package/dist/transports/stdio.js +1 -1
  119. package/dist/types.d.ts +8 -9
  120. package/dist/types.d.ts.map +1 -1
  121. package/package.json +2 -1
package/dist/http/app.js CHANGED
@@ -23,15 +23,14 @@ export function createHttpApp(opts) {
23
23
  }));
24
24
  // CORS: allow известные origins + dev-friendly localhost-*.
25
25
  app.use(cors(buildCorsOptions(config.corsOrigins)));
26
- // Phase 6: request-id middleware с child logger.
26
+ // request-id middleware с child logger.
27
27
  app.use(requestId({ logger: log }));
28
28
  // JSON body parser. MCP messages могут быть batch'ами; лимит 4 MB
29
29
  // (типичные tool responses ELS ≤ 1 MB).
30
30
  app.use(express.json({ limit: '4mb' }));
31
31
  // ─── /els router ──────────────────────────────────────────────────────
32
32
  const router = Router();
33
- // Public — health
34
- // Phase 6: используем Phase 4 health-handlers с реальными probes (redis + ELS).
33
+ // Public — health (health-handlers с реальными probes: redis + ELS).
35
34
  router.use('/', createHealthRouter({
36
35
  ...(opts.probeElsClient ? { elsClient: opts.probeElsClient } : {}),
37
36
  ...(opts.redis ? { redis: opts.redis } : {}),
@@ -70,20 +69,26 @@ export function createHttpApp(opts) {
70
69
  ...(opts.redis ? { redis: opts.redis } : {}),
71
70
  ...(opts.middlewareDeps ? { middlewareDeps: opts.middlewareDeps } : {}),
72
71
  });
73
- // Phase 6 originGuard — защита от browser-clients с unknown origin.
72
+ // originGuard — защита от browser-clients с unknown origin.
74
73
  const originGuard = createOriginGuard({
75
74
  allowed: config.corsOrigins,
76
75
  log,
77
76
  });
78
- router.post('/mcp', originGuard, createAuthMiddleware({ config, jwks, log }), async (req, res) => {
77
+ const authMiddleware = createAuthMiddleware({
78
+ config,
79
+ jwks,
80
+ log,
81
+ ...(opts.lkResolver !== undefined ? { lkResolver: opts.lkResolver } : {}),
82
+ });
83
+ router.post('/mcp', originGuard, authMiddleware, async (req, res) => {
79
84
  await manager.handleRequest(req, res);
80
85
  });
81
86
  // GET /mcp — long-lived SSE (server → client notifications). Hand off to SDK.
82
- router.get('/mcp', originGuard, createAuthMiddleware({ config, jwks, log }), async (req, res) => {
87
+ router.get('/mcp', originGuard, authMiddleware, async (req, res) => {
83
88
  await manager.handleRequest(req, res);
84
89
  });
85
90
  // DELETE /mcp — explicit session termination.
86
- router.delete('/mcp', originGuard, createAuthMiddleware({ config, jwks, log }), async (req, res) => {
91
+ router.delete('/mcp', originGuard, authMiddleware, async (req, res) => {
87
92
  await manager.handleRequest(req, res);
88
93
  });
89
94
  app.use('/els', router);
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * LK API resolvers.
3
+ *
4
+ * Два резолвера дёргают LK backend и кэшируются в Redis (если доступен):
5
+ *
6
+ * 1. `resolveOidcSubApps(sub)` — `GET /api/internal/users/{sub}/apps`
7
+ * возвращает список доступных пользователю appSlugs.
8
+ * Кэш: `mcp:oidc:apps:{sub}` TTL 5 min.
9
+ *
10
+ * 2. `resolveAppTier(appSlug)` — `GET /api/internal/apps/{slug}/billing/tier`
11
+ * возвращает один из `FREE`/`STANDARD`/`PREMIUM`/`UNLIMITED`.
12
+ * Кэш: `mcp:tier:{appSlug}` TTL 30 sec.
13
+ *
14
+ * TODO (LK backend): оба эндпоинта **пока не реализованы** — резолверы
15
+ * корректно отрабатывают 404/500/timeout, возвращая fallback значения.
16
+ * Когда эндпоинты появятся, никакого изменения кода не потребуется.
17
+ *
18
+ * Все вызовы — best-effort: при недоступности LK сервис **не** падает,
19
+ * а использует safety-net fallback (`MCP_OIDC_DEMO_APP_SLUG`,
20
+ * `config.defaultTier`).
21
+ */
22
+ import type { Logger } from 'pino';
23
+ import type { Tier } from '../billing/limits.js';
24
+ /** Минимальный интерфейс Redis-клиента, который нам нужен. */
25
+ export interface RedisLike {
26
+ get(key: string): Promise<string | null>;
27
+ set(key: string, value: string, mode: string, duration: number): Promise<unknown>;
28
+ }
29
+ export interface LkResolverOptions {
30
+ /** LK API base URL (без trailing slash). Если null — резолвер сразу fallback'ит. */
31
+ lkApiBaseUrl?: string | null;
32
+ /** Internal-API service-token (Bearer) для авторизации в LK. */
33
+ lkApiToken?: string | null;
34
+ /** Redis-клиент для кэша. Если null — резолвер не кэширует. */
35
+ redis?: RedisLike | null;
36
+ /** Fallback appSlug при недоступности LK. */
37
+ fallbackAppSlug?: string;
38
+ /** Fallback tier при недоступности LK. */
39
+ fallbackTier: Tier;
40
+ log?: Logger;
41
+ /** Override fetch для тестов. */
42
+ fetchImpl?: typeof fetch;
43
+ }
44
+ export interface SubAppsResult {
45
+ /** Доступные appSlugs (минимум один — fallback'ом). */
46
+ apps: string[];
47
+ /** True → ответ из LK, false → fallback. */
48
+ fromLk: boolean;
49
+ }
50
+ export interface TierResult {
51
+ tier: Tier;
52
+ /** True → ответ из LK, false → fallback. */
53
+ fromLk: boolean;
54
+ }
55
+ export interface LkResolver {
56
+ resolveOidcSubApps(sub: string): Promise<SubAppsResult>;
57
+ resolveAppTier(appSlug: string): Promise<TierResult>;
58
+ }
59
+ export declare function createLkResolver(opts: LkResolverOptions): LkResolver;
60
+ //# sourceMappingURL=lkResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lkResolver.d.ts","sourceRoot":"","sources":["../../src/http/lkResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAQjD,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,YAAY,EAAE,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAkJpE"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * LK API resolvers.
3
+ *
4
+ * Два резолвера дёргают LK backend и кэшируются в Redis (если доступен):
5
+ *
6
+ * 1. `resolveOidcSubApps(sub)` — `GET /api/internal/users/{sub}/apps`
7
+ * возвращает список доступных пользователю appSlugs.
8
+ * Кэш: `mcp:oidc:apps:{sub}` TTL 5 min.
9
+ *
10
+ * 2. `resolveAppTier(appSlug)` — `GET /api/internal/apps/{slug}/billing/tier`
11
+ * возвращает один из `FREE`/`STANDARD`/`PREMIUM`/`UNLIMITED`.
12
+ * Кэш: `mcp:tier:{appSlug}` TTL 30 sec.
13
+ *
14
+ * TODO (LK backend): оба эндпоинта **пока не реализованы** — резолверы
15
+ * корректно отрабатывают 404/500/timeout, возвращая fallback значения.
16
+ * Когда эндпоинты появятся, никакого изменения кода не потребуется.
17
+ *
18
+ * Все вызовы — best-effort: при недоступности LK сервис **не** падает,
19
+ * а использует safety-net fallback (`MCP_OIDC_DEMO_APP_SLUG`,
20
+ * `config.defaultTier`).
21
+ */
22
+ const TIERS = new Set(['FREE', 'STANDARD', 'PREMIUM', 'UNLIMITED']);
23
+ const APPS_CACHE_TTL_SEC = 300; // 5 min
24
+ const TIER_CACHE_TTL_SEC = 30;
25
+ const LK_REQUEST_TIMEOUT_MS = 2_000;
26
+ export function createLkResolver(opts) {
27
+ const fetchImpl = opts.fetchImpl ?? fetch;
28
+ const log = opts.log;
29
+ const baseUrl = opts.lkApiBaseUrl?.replace(/\/$/, '') ?? null;
30
+ async function getCached(key) {
31
+ if (!opts.redis)
32
+ return null;
33
+ try {
34
+ return await opts.redis.get(key);
35
+ }
36
+ catch (err) {
37
+ log?.debug?.({ err, key }, 'lkResolver: redis get failed (degraded)');
38
+ return null;
39
+ }
40
+ }
41
+ async function setCached(key, value, ttlSec) {
42
+ if (!opts.redis)
43
+ return;
44
+ try {
45
+ await opts.redis.set(key, value, 'EX', ttlSec);
46
+ }
47
+ catch (err) {
48
+ log?.debug?.({ err, key }, 'lkResolver: redis set failed (degraded)');
49
+ }
50
+ }
51
+ function authHeaders() {
52
+ const headers = { Accept: 'application/json' };
53
+ if (opts.lkApiToken)
54
+ headers.Authorization = `Bearer ${opts.lkApiToken}`;
55
+ return headers;
56
+ }
57
+ async function doFetch(url) {
58
+ const ctrl = new AbortController();
59
+ const timer = setTimeout(() => ctrl.abort(), LK_REQUEST_TIMEOUT_MS);
60
+ try {
61
+ const res = await fetchImpl(url, { headers: authHeaders(), signal: ctrl.signal });
62
+ return res;
63
+ }
64
+ catch (err) {
65
+ log?.debug?.({ err, url }, 'lkResolver: LK fetch failed (degraded)');
66
+ return null;
67
+ }
68
+ finally {
69
+ clearTimeout(timer);
70
+ }
71
+ }
72
+ return {
73
+ async resolveOidcSubApps(sub) {
74
+ const cacheKey = `mcp:oidc:apps:${sub}`;
75
+ const cached = await getCached(cacheKey);
76
+ if (cached) {
77
+ try {
78
+ const parsed = JSON.parse(cached);
79
+ if (Array.isArray(parsed.apps) && parsed.apps.length > 0) {
80
+ return { apps: parsed.apps, fromLk: parsed.fromLk === true };
81
+ }
82
+ }
83
+ catch {
84
+ // Ignore — fall through to LK fetch.
85
+ }
86
+ }
87
+ const fallback = {
88
+ apps: opts.fallbackAppSlug ? [opts.fallbackAppSlug] : [],
89
+ fromLk: false,
90
+ };
91
+ if (!baseUrl)
92
+ return fallback;
93
+ const url = `${baseUrl}/api/internal/users/${encodeURIComponent(sub)}/apps`;
94
+ const res = await doFetch(url);
95
+ if (!res)
96
+ return fallback;
97
+ if (res.status === 404 || res.status >= 500) {
98
+ log?.debug?.({ sub, status: res.status, url }, 'lkResolver: LK returned error status; using fallback');
99
+ return fallback;
100
+ }
101
+ if (res.status !== 200) {
102
+ log?.debug?.({ sub, status: res.status }, 'lkResolver: unexpected LK status; using fallback');
103
+ return fallback;
104
+ }
105
+ let body = null;
106
+ try {
107
+ body = await res.json();
108
+ }
109
+ catch (err) {
110
+ log?.debug?.({ err, sub }, 'lkResolver: failed to parse LK response');
111
+ return fallback;
112
+ }
113
+ const apps = extractApps(body);
114
+ if (apps.length === 0) {
115
+ log?.debug?.({ sub }, 'lkResolver: LK returned empty app list; using fallback');
116
+ return fallback;
117
+ }
118
+ const result = { apps, fromLk: true };
119
+ await setCached(cacheKey, JSON.stringify(result), APPS_CACHE_TTL_SEC);
120
+ return result;
121
+ },
122
+ async resolveAppTier(appSlug) {
123
+ const cacheKey = `mcp:tier:${appSlug}`;
124
+ const cached = await getCached(cacheKey);
125
+ if (cached) {
126
+ try {
127
+ const parsed = JSON.parse(cached);
128
+ if (typeof parsed.tier === 'string' && TIERS.has(parsed.tier)) {
129
+ return { tier: parsed.tier, fromLk: parsed.fromLk === true };
130
+ }
131
+ }
132
+ catch {
133
+ // Ignore — fall through to LK fetch.
134
+ }
135
+ }
136
+ const fallback = { tier: opts.fallbackTier, fromLk: false };
137
+ if (!baseUrl)
138
+ return fallback;
139
+ const url = `${baseUrl}/api/internal/apps/${encodeURIComponent(appSlug)}/billing/tier`;
140
+ const res = await doFetch(url);
141
+ if (!res)
142
+ return fallback;
143
+ if (res.status === 404 || res.status >= 500) {
144
+ log?.debug?.({ appSlug, status: res.status, url }, 'lkResolver: LK tier endpoint returned error; using fallback');
145
+ return fallback;
146
+ }
147
+ if (res.status !== 200)
148
+ return fallback;
149
+ let body = null;
150
+ try {
151
+ body = await res.json();
152
+ }
153
+ catch {
154
+ return fallback;
155
+ }
156
+ const tier = extractTier(body);
157
+ if (!tier)
158
+ return fallback;
159
+ const result = { tier, fromLk: true };
160
+ await setCached(cacheKey, JSON.stringify(result), TIER_CACHE_TTL_SEC);
161
+ return result;
162
+ },
163
+ };
164
+ }
165
+ function extractApps(body) {
166
+ if (!body || typeof body !== 'object')
167
+ return [];
168
+ const b = body;
169
+ const raw = b.apps ?? b.appSlugs ?? b.data;
170
+ if (!Array.isArray(raw))
171
+ return [];
172
+ const apps = [];
173
+ for (const item of raw) {
174
+ if (typeof item === 'string' && item.length > 0)
175
+ apps.push(item);
176
+ else if (item && typeof item === 'object') {
177
+ const slug = item.slug ?? item.appSlug;
178
+ if (typeof slug === 'string' && slug.length > 0)
179
+ apps.push(slug);
180
+ }
181
+ }
182
+ return Array.from(new Set(apps));
183
+ }
184
+ function extractTier(body) {
185
+ if (!body || typeof body !== 'object')
186
+ return null;
187
+ const b = body;
188
+ const raw = b.tier ?? b.name ?? b.plan;
189
+ if (typeof raw !== 'string')
190
+ return null;
191
+ const upper = raw.toUpperCase();
192
+ return TIERS.has(upper) ? upper : null;
193
+ }
194
+ //# sourceMappingURL=lkResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lkResolver.js","sourceRoot":"","sources":["../../src/http/lkResolver.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,13 @@ import type { RequestHandler } from 'express';
2
2
  import type { Logger } from 'pino';
3
3
  import type { Config } from '../../config.js';
4
4
  import type { JwksResolver } from '../jwks.js';
5
+ import type { LkResolver } from '../lkResolver.js';
5
6
  export interface CreateAuthOptions {
6
7
  config: Config;
7
8
  jwks: JwksResolver;
8
9
  log?: Logger;
10
+ /** Опциональный LK resolver — если null, используется fallback на oidcDemoAppSlug. */
11
+ lkResolver?: LkResolver | null;
9
12
  }
10
13
  export declare function createAuthMiddleware(opts: CreateAuthOptions): RequestHandler;
11
14
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/http/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAY,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoB/C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAiI5E"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/http/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAY,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmBnD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAiJ5E"}
@@ -4,7 +4,8 @@ import { recordAuthRejection } from '../../observability/metrics.js';
4
4
  *
5
5
  * Поддерживает два path:
6
6
  * A. ELS-key Bearer (`Bearer els_(live|test)_...`) — passthrough в ELS как есть.
7
- * B. OIDC JWT Bearer — локально валидируем через JWKS (INSO Auth).
7
+ * B. OIDC JWT Bearer — локально валидируем через JWKS (INSO Auth),
8
+ * резолвим sub → доступные apps через LK API (с кэшем + fallback).
8
9
  *
9
10
  * Если оба заголовка не подходят (или их нет) — 401 с `WWW-Authenticate`,
10
11
  * указывающим на RFC 9728 resource metadata.
@@ -15,6 +16,7 @@ import { recordAuthRejection } from '../../observability/metrics.js';
15
16
  const ELS_KEY_REGEX = /^els_(live|test)_[\w-]{30,}$/;
16
17
  export function createAuthMiddleware(opts) {
17
18
  const { config, jwks, log } = opts;
19
+ const lkResolver = opts.lkResolver ?? null;
18
20
  const wwwAuthHeader = buildWwwAuthenticate(config.publicUrl);
19
21
  return async function authMiddleware(req, res, next) {
20
22
  const authHeader = readAuthorization(req);
@@ -34,7 +36,7 @@ export function createAuthMiddleware(opts) {
34
36
  });
35
37
  return;
36
38
  }
37
- // Path A: ELS-key (priority — phase 3)
39
+ // Path A: ELS-key (priority).
38
40
  if (ELS_KEY_REGEX.test(token)) {
39
41
  const ctx = buildElsKeyContext(req, token, config);
40
42
  req.context = ctx;
@@ -56,7 +58,7 @@ export function createAuthMiddleware(opts) {
56
58
  });
57
59
  return;
58
60
  }
59
- // Phase 6: scope-claim обязателен (не просто пустой).
61
+ // Scope-claim обязателен (не просто пустой).
60
62
  if (!hasScopeClaim(payload)) {
61
63
  recordAuthRejection('oidc_missing_scope_claim');
62
64
  log?.warn?.({ sub, requestId: pickRequestId(req) }, 'OIDC reject: scope claim absent');
@@ -78,7 +80,7 @@ export function createAuthMiddleware(opts) {
78
80
  });
79
81
  return;
80
82
  }
81
- // Phase 6: проверка audience — JWT должен содержать ожидаемую audience.
83
+ // Проверка audience — JWT должен содержать ожидаемую audience.
82
84
  if (!hasAudience(payload, config.oidcAudience)) {
83
85
  recordAuthRejection('oidc_invalid_audience');
84
86
  log?.warn?.({ sub, aud: payload.aud, expected: config.oidcAudience, requestId: pickRequestId(req) }, 'OIDC reject: invalid audience');
@@ -88,20 +90,33 @@ export function createAuthMiddleware(opts) {
88
90
  });
89
91
  return;
90
92
  }
91
- // TODO Phase 4: реальный resolver sub → доступные appSlugs через LK API.
92
- // Phase 3 workaround: либо ENV MCP_OIDC_DEMO_APP_SLUG, либо отказ.
93
- const appSlug = config.oidcDemoAppSlug ?? '';
94
- if (!appSlug) {
93
+ // Резолвим OIDC sub → доступные пользователю apps через LK API
94
+ // кэшем 5 мин в Redis); fallback на MCP_OIDC_DEMO_APP_SLUG.
95
+ let apps = [];
96
+ if (lkResolver) {
97
+ try {
98
+ const r = await lkResolver.resolveOidcSubApps(sub);
99
+ apps = r.apps;
100
+ }
101
+ catch (err) {
102
+ log?.debug?.({ err, sub }, 'lkResolver: resolveOidcSubApps threw; using fallback');
103
+ }
104
+ }
105
+ if (apps.length === 0 && config.oidcDemoAppSlug) {
106
+ apps = [config.oidcDemoAppSlug];
107
+ }
108
+ if (apps.length === 0) {
95
109
  recordAuthRejection('oidc_no_app_resolver');
96
110
  res.status(503).json({
97
111
  error: 'oidc_app_resolver_unavailable',
98
- error_description: 'OIDC sub → appSlug resolver not configured. Set MCP_OIDC_DEMO_APP_SLUG for Phase 3.',
112
+ error_description: 'OIDC sub → appSlug resolver returned no apps and no fallback (MCP_OIDC_DEMO_APP_SLUG) is set.',
99
113
  });
100
114
  return;
101
115
  }
102
- const ctx = buildOidcContext(req, sub, scopes, appSlug);
116
+ const appSlug = apps[0];
117
+ const ctx = buildOidcContext(req, sub, scopes, appSlug, apps);
103
118
  req.context = ctx;
104
- log?.debug?.({ sub, requestId: ctx.requestId, appSlug }, 'auth: oidc');
119
+ log?.debug?.({ sub, requestId: ctx.requestId, appSlug, appsCount: apps.length }, 'auth: oidc');
105
120
  next();
106
121
  return;
107
122
  }
@@ -177,12 +192,13 @@ function buildElsKeyContext(req, token, _config) {
177
192
  requestId: pickRequestId(req),
178
193
  };
179
194
  }
180
- function buildOidcContext(req, sub, scopes, appSlug) {
195
+ function buildOidcContext(req, sub, scopes, appSlug, availableApps) {
181
196
  return {
182
197
  authMethod: 'oidc',
183
198
  oidcSub: sub,
184
199
  scopes,
185
200
  appSlug,
201
+ availableApps,
186
202
  keyId: `oidc:${sub.slice(0, 8)}`,
187
203
  ip: pickIp(req),
188
204
  userAgent: pickUserAgent(req),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/http/middleware/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/http/middleware/auth.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import type { RequestHandler } from 'express';
2
2
  import type { Logger } from 'pino';
3
3
  import type { RedisService } from '../../cache/redis.js';
4
4
  /**
5
- * Phase 6: Rate-limit middleware для **будущего** Dynamic Client Registration
5
+ * Rate-limit middleware для **будущего** Dynamic Client Registration
6
6
  * endpoint (`POST /oauth/register`). DCR ещё не реализован в auth-сервисе —
7
- * этот файл — stub'а, готовая к подключению.
7
+ * этот файл — ready-for-future stub.
8
8
  *
9
9
  * Алгоритм:
10
10
  * - Redis-based sliding window: один счётчик per IP, ключ `mcp:dcr:rl:{ip}`.
@@ -5,7 +5,7 @@ import type { Logger } from 'pino';
5
5
  *
6
6
  * Должен быть зарегистрирован последним (`app.use(errorHandler(log))`).
7
7
  *
8
- * Phase 6: предпочитает per-request `req.log` (если установлен в requestId
8
+ * Предпочитает per-request `req.log` (если установлен в requestId
9
9
  * middleware) — иначе fallback на global logger.
10
10
  */
11
11
  export declare function errorHandler(log?: Logger): ErrorRequestHandler;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Должен быть зарегистрирован последним (`app.use(errorHandler(log))`).
5
5
  *
6
- * Phase 6: предпочитает per-request `req.log` (если установлен в requestId
6
+ * Предпочитает per-request `req.log` (если установлен в requestId
7
7
  * middleware) — иначе fallback на global logger.
8
8
  */
9
9
  export function errorHandler(log) {
@@ -1,7 +1,7 @@
1
1
  import type { RequestHandler } from 'express';
2
2
  import type { Logger } from 'pino';
3
3
  /**
4
- * Phase 6 origin-validation middleware для /els/mcp.
4
+ * Origin-validation middleware для /els/mcp.
5
5
  *
6
6
  * Семантика:
7
7
  * - Если запрос пришёл с `Origin` header (browser-based MCP клиент или
@@ -7,7 +7,7 @@ import type { Logger } from 'pino';
7
7
  *
8
8
  * Также ставит response header `X-Request-Id` для клиента (полезно при триаже).
9
9
  *
10
- * Phase 6: если передан base logger — добавляем `req.log = base.child({...})`
10
+ * Если передан base logger — добавляем `req.log = base.child({...})`
11
11
  * с per-request полями (`requestId`, `sessionId`). Downstream middleware
12
12
  * (auth, errorHandler) могут использовать `req.log` для лучшей корреляции.
13
13
  */
@@ -34,7 +34,7 @@ function insoHealthHandler() {
34
34
  function readinessHandler(opts) {
35
35
  return async function handler(_req, res) {
36
36
  // checks: { els: 'ok' | 'fail' | 'skip', redis: ... }
37
- // Используем Phase 4 checkReadiness с тем же контрактом.
37
+ // Используем общий checkReadiness с тем же контрактом.
38
38
  const checks = {};
39
39
  let allOk = true;
40
40
  if (opts.elsClient || opts.redis) {
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/http/routes/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/http/routes/health.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,14 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { type ReadinessDeps } from '../../observability/health.js';
3
3
  /**
4
- * Lightweight HTTP handlers для Express-like транспорта (Phase 3).
4
+ * Lightweight HTTP handlers для Express-like транспорта.
5
5
  *
6
6
  * Каждый handler — `(req, res) => Promise<void>` (совместимо с Node http
7
- * и Express `(req, res, next?)`). Phase 3 их подцепит:
7
+ * и Express `(req, res, next?)`). Используются так:
8
8
  *
9
9
  * app.get('/els/metrics', metricsHandler);
10
10
  * app.get('/els/healthz', healthzHandler);
11
11
  * app.get('/els/readyz', readyzHandler(deps));
12
- *
13
- * Phase 4 предоставляет реализацию; Phase 3 — wiring.
14
12
  */
15
13
  export declare function metricsHandler(_req: IncomingMessage, res: ServerResponse): Promise<void>;
16
14
  export declare function healthzHandler(_req: IncomingMessage, res: ServerResponse): void;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/http/routes/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAElG;;;;;;;;;;;GAWG;AAEH,wBAAsB,cAAc,CAClC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAK/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,IACjC,MAAM,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAMzE"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/http/routes/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAElG;;;;;;;;;GASG;AAEH,wBAAsB,cAAc,CAClC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAK/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,IACjC,MAAM,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAMzE"}