arc-1 0.4.3 → 0.5.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 (66) hide show
  1. package/README.md +2 -1
  2. package/dist/adt/client.d.ts +6 -0
  3. package/dist/adt/client.d.ts.map +1 -1
  4. package/dist/adt/client.js +12 -0
  5. package/dist/adt/client.js.map +1 -1
  6. package/dist/adt/codeintel.js +1 -1
  7. package/dist/adt/codeintel.js.map +1 -1
  8. package/dist/adt/features.d.ts +29 -1
  9. package/dist/adt/features.d.ts.map +1 -1
  10. package/dist/adt/features.js +114 -2
  11. package/dist/adt/features.js.map +1 -1
  12. package/dist/adt/http.d.ts +24 -1
  13. package/dist/adt/http.d.ts.map +1 -1
  14. package/dist/adt/http.js +87 -28
  15. package/dist/adt/http.js.map +1 -1
  16. package/dist/adt/oauth.d.ts +19 -2
  17. package/dist/adt/oauth.d.ts.map +1 -1
  18. package/dist/adt/oauth.js +78 -28
  19. package/dist/adt/oauth.js.map +1 -1
  20. package/dist/adt/safety.d.ts +15 -0
  21. package/dist/adt/safety.d.ts.map +1 -1
  22. package/dist/adt/safety.js +50 -0
  23. package/dist/adt/safety.js.map +1 -1
  24. package/dist/adt/types.d.ts +14 -0
  25. package/dist/adt/types.d.ts.map +1 -1
  26. package/dist/handlers/hyperfocused.d.ts +1 -0
  27. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  28. package/dist/handlers/hyperfocused.js +6 -5
  29. package/dist/handlers/hyperfocused.js.map +1 -1
  30. package/dist/handlers/intent.d.ts +17 -1
  31. package/dist/handlers/intent.d.ts.map +1 -1
  32. package/dist/handlers/intent.js +250 -25
  33. package/dist/handlers/intent.js.map +1 -1
  34. package/dist/handlers/schemas.d.ts +255 -0
  35. package/dist/handlers/schemas.d.ts.map +1 -0
  36. package/dist/handlers/schemas.js +232 -0
  37. package/dist/handlers/schemas.js.map +1 -0
  38. package/dist/handlers/tools.d.ts +1 -1
  39. package/dist/handlers/tools.d.ts.map +1 -1
  40. package/dist/handlers/tools.js +64 -32
  41. package/dist/handlers/tools.js.map +1 -1
  42. package/dist/handlers/zod-errors.d.ts +20 -0
  43. package/dist/handlers/zod-errors.d.ts.map +1 -0
  44. package/dist/handlers/zod-errors.js +43 -0
  45. package/dist/handlers/zod-errors.js.map +1 -0
  46. package/dist/server/config.d.ts +26 -0
  47. package/dist/server/config.d.ts.map +1 -1
  48. package/dist/server/config.js +162 -5
  49. package/dist/server/config.js.map +1 -1
  50. package/dist/server/http.d.ts +8 -0
  51. package/dist/server/http.d.ts.map +1 -1
  52. package/dist/server/http.js +134 -71
  53. package/dist/server/http.js.map +1 -1
  54. package/dist/server/server.d.ts +13 -2
  55. package/dist/server/server.d.ts.map +1 -1
  56. package/dist/server/server.js +82 -8
  57. package/dist/server/server.js.map +1 -1
  58. package/dist/server/types.d.ts +8 -0
  59. package/dist/server/types.d.ts.map +1 -1
  60. package/dist/server/types.js +1 -0
  61. package/dist/server/types.js.map +1 -1
  62. package/dist/server/xsuaa.d.ts +11 -1
  63. package/dist/server/xsuaa.d.ts.map +1 -1
  64. package/dist/server/xsuaa.js +127 -9
  65. package/dist/server/xsuaa.js.map +1 -1
  66. package/package.json +2 -2
@@ -8,6 +8,101 @@
8
8
  * for drop-in compatibility with existing deployments and documentation.
9
9
  */
10
10
  import { DEFAULT_CONFIG } from './types.js';
11
+ /**
12
+ * Parse API keys string into structured array.
13
+ * Format: "key1:profile1,key2:profile2"
14
+ * Each entry maps an API key to a named profile.
15
+ */
16
+ export function parseApiKeys(raw) {
17
+ const entries = [];
18
+ for (const pair of raw.split(',')) {
19
+ const trimmed = pair.trim();
20
+ if (!trimmed)
21
+ continue;
22
+ // Use LAST colon as separator — keys may contain colons (e.g. base64)
23
+ // but profile names never do
24
+ const colonIdx = trimmed.lastIndexOf(':');
25
+ if (colonIdx === -1) {
26
+ throw new Error(`Invalid API key entry '${trimmed}': expected 'key:profile' format. ` +
27
+ `Valid profiles: ${Object.keys(PROFILES).join(', ')}`);
28
+ }
29
+ const key = trimmed.slice(0, colonIdx);
30
+ const profile = trimmed.slice(colonIdx + 1);
31
+ if (!key) {
32
+ throw new Error('Invalid API key entry: key cannot be empty');
33
+ }
34
+ if (!PROFILES[profile]) {
35
+ throw new Error(`Invalid profile '${profile}' in API key entry. Valid profiles: ${Object.keys(PROFILES).join(', ')}`);
36
+ }
37
+ entries.push({ key, profile });
38
+ }
39
+ if (entries.length === 0) {
40
+ throw new Error('ARC1_API_KEYS is set but contains no valid entries. Format: "key1:profile1,key2:profile2"');
41
+ }
42
+ return entries;
43
+ }
44
+ /**
45
+ * Maps profile names to the scopes they grant.
46
+ * Used when API keys are assigned to profiles — the key inherits these scopes.
47
+ * Kept in sync with PROFILES: each profile's safety flags determine its scopes.
48
+ */
49
+ export const PROFILE_SCOPES = {
50
+ viewer: ['read'],
51
+ 'viewer-data': ['read', 'data'],
52
+ 'viewer-sql': ['read', 'data', 'sql'],
53
+ developer: ['read', 'write'],
54
+ 'developer-data': ['read', 'write', 'data'],
55
+ 'developer-sql': ['read', 'write', 'data', 'sql'],
56
+ };
57
+ /**
58
+ * Named profiles — convenience presets for common safety configurations.
59
+ * Each profile sets a combination of safety flags. Individual CLI flags
60
+ * applied after the profile can override any profile default.
61
+ */
62
+ export const PROFILES = {
63
+ viewer: {
64
+ readOnly: true,
65
+ blockData: true,
66
+ blockFreeSQL: true,
67
+ enableTransports: false,
68
+ allowTransportableEdits: false,
69
+ },
70
+ 'viewer-data': {
71
+ readOnly: true,
72
+ blockData: false,
73
+ blockFreeSQL: true,
74
+ enableTransports: false,
75
+ allowTransportableEdits: false,
76
+ },
77
+ 'viewer-sql': {
78
+ readOnly: true,
79
+ blockData: false,
80
+ blockFreeSQL: false,
81
+ enableTransports: false,
82
+ allowTransportableEdits: false,
83
+ },
84
+ developer: {
85
+ readOnly: false,
86
+ blockData: true,
87
+ blockFreeSQL: true,
88
+ enableTransports: true,
89
+ allowTransportableEdits: true,
90
+ },
91
+ 'developer-data': {
92
+ readOnly: false,
93
+ blockData: false,
94
+ blockFreeSQL: true,
95
+ enableTransports: true,
96
+ allowTransportableEdits: true,
97
+ },
98
+ 'developer-sql': {
99
+ readOnly: false,
100
+ blockData: false,
101
+ blockFreeSQL: false,
102
+ enableTransports: true,
103
+ allowTransportableEdits: true,
104
+ },
105
+ };
11
106
  /**
12
107
  * Parse CLI arguments and environment variables into a ServerConfig.
13
108
  *
@@ -60,15 +155,47 @@ export function parseArgs(args) {
60
155
  const transport = resolve('transport', 'SAP_TRANSPORT', 'stdio');
61
156
  config.transport = (transport === 'http-streamable' ? 'http-streamable' : 'stdio');
62
157
  config.httpAddr = resolve('http-addr', 'SAP_HTTP_ADDR', '0.0.0.0:8080');
63
- // --- Safety ---
64
- config.readOnly = resolveBool('read-only', 'SAP_READ_ONLY', false);
65
- config.blockFreeSQL = resolveBool('block-free-sql', 'SAP_BLOCK_FREE_SQL', false);
158
+ // --- Profile (apply before individual safety flags so flags can override) ---
159
+ const profileName = getFlag('profile') ?? process.env.ARC1_PROFILE;
160
+ if (profileName) {
161
+ const profile = PROFILES[profileName];
162
+ if (!profile) {
163
+ throw new Error(`Unknown profile '${profileName}'. Valid profiles: ${Object.keys(PROFILES).join(', ')}`);
164
+ }
165
+ Object.assign(config, profile);
166
+ }
167
+ // --- Safety (individual flags override profile defaults) ---
168
+ // Only override profile defaults when the flag/env is explicitly set
169
+ const readOnlyExplicit = getFlag('read-only') ?? process.env.SAP_READ_ONLY;
170
+ if (readOnlyExplicit !== undefined)
171
+ config.readOnly = readOnlyExplicit === 'true' || readOnlyExplicit === '1';
172
+ else if (!profileName)
173
+ config.readOnly = false;
174
+ const blockFreeSQLExplicit = getFlag('block-free-sql') ?? process.env.SAP_BLOCK_FREE_SQL;
175
+ if (blockFreeSQLExplicit !== undefined)
176
+ config.blockFreeSQL = blockFreeSQLExplicit === 'true' || blockFreeSQLExplicit === '1';
177
+ else if (!profileName)
178
+ config.blockFreeSQL = false;
179
+ const blockDataExplicit = getFlag('block-data') ?? process.env.SAP_BLOCK_DATA;
180
+ if (blockDataExplicit !== undefined)
181
+ config.blockData = blockDataExplicit === 'true' || blockDataExplicit === '1';
182
+ else if (!profileName)
183
+ config.blockData = false;
66
184
  config.allowedOps = resolve('allowed-ops', 'SAP_ALLOWED_OPS', '');
67
185
  config.disallowedOps = resolve('disallowed-ops', 'SAP_DISALLOWED_OPS', '');
68
186
  const pkgs = resolve('allowed-packages', 'SAP_ALLOWED_PACKAGES', '');
69
187
  config.allowedPackages = pkgs ? pkgs.split(',').map((p) => p.trim()) : [];
70
- config.allowTransportableEdits = resolveBool('allow-transportable-edits', 'SAP_ALLOW_TRANSPORTABLE_EDITS', false);
71
- config.enableTransports = resolveBool('enable-transports', 'SAP_ENABLE_TRANSPORTS', false);
188
+ const allowTransportableEditsExplicit = getFlag('allow-transportable-edits') ?? process.env.SAP_ALLOW_TRANSPORTABLE_EDITS;
189
+ if (allowTransportableEditsExplicit !== undefined)
190
+ config.allowTransportableEdits =
191
+ allowTransportableEditsExplicit === 'true' || allowTransportableEditsExplicit === '1';
192
+ else if (!profileName)
193
+ config.allowTransportableEdits = false;
194
+ const enableTransportsExplicit = getFlag('enable-transports') ?? process.env.SAP_ENABLE_TRANSPORTS;
195
+ if (enableTransportsExplicit !== undefined)
196
+ config.enableTransports = enableTransportsExplicit === 'true' || enableTransportsExplicit === '1';
197
+ else if (!profileName)
198
+ config.enableTransports = false;
72
199
  // --- Features ---
73
200
  config.featureAbapGit = resolveFeature('feature-abapgit', 'SAP_FEATURE_ABAPGIT');
74
201
  config.featureRap = resolveFeature('feature-rap', 'SAP_FEATURE_RAP');
@@ -81,8 +208,18 @@ export function parseArgs(args) {
81
208
  config.systemType = (['btp', 'onprem'].includes(systemType) ? systemType : 'auto');
82
209
  // --- Authentication (MCP client → ARC-1) ---
83
210
  config.apiKey = getFlag('api-key') ?? process.env.ARC1_API_KEY;
211
+ // Multiple API keys with per-key profiles: "key1:viewer,key2:developer"
212
+ const apiKeysRaw = getFlag('api-keys') ?? process.env.ARC1_API_KEYS;
213
+ if (apiKeysRaw) {
214
+ config.apiKeys = parseApiKeys(apiKeysRaw);
215
+ }
84
216
  config.oidcIssuer = getFlag('oidc-issuer') ?? process.env.SAP_OIDC_ISSUER;
85
217
  config.oidcAudience = getFlag('oidc-audience') ?? process.env.SAP_OIDC_AUDIENCE;
218
+ const clockTolerance = getFlag('oidc-clock-tolerance') ?? process.env.SAP_OIDC_CLOCK_TOLERANCE;
219
+ if (clockTolerance) {
220
+ const parsed = Number.parseInt(clockTolerance, 10);
221
+ config.oidcClockTolerance = Number.isNaN(parsed) ? undefined : parsed;
222
+ }
86
223
  config.xsuaaAuth = resolveBool('xsuaa-auth', 'SAP_XSUAA_AUTH', false);
87
224
  // --- BTP ABAP Environment (direct connection via service key) ---
88
225
  config.btpServiceKey = getFlag('btp-service-key') ?? process.env.SAP_BTP_SERVICE_KEY;
@@ -116,6 +253,26 @@ export function parseArgs(args) {
116
253
  if (config.verbose) {
117
254
  config.logLevel = 'debug';
118
255
  }
256
+ // --- Startup Validation ---
257
+ validateConfig(config);
119
258
  return config;
120
259
  }
260
+ /**
261
+ * Validate configuration for internally consistent auth settings.
262
+ * Fails fast at startup for invalid or dangerous config combinations.
263
+ */
264
+ export function validateConfig(config) {
265
+ // OIDC: audience is required when issuer is set (RFC 9700 §2.3 audience restriction)
266
+ if (config.oidcIssuer && !config.oidcAudience) {
267
+ throw new Error('SAP_OIDC_AUDIENCE is required when SAP_OIDC_ISSUER is set — ' +
268
+ 'audience validation prevents token confusion across services (RFC 9700 §2.3)');
269
+ }
270
+ if (config.oidcAudience && !config.oidcIssuer) {
271
+ throw new Error('SAP_OIDC_ISSUER is required when SAP_OIDC_AUDIENCE is set');
272
+ }
273
+ // PP: ppStrict requires ppEnabled
274
+ if (config.ppStrict && !config.ppEnabled) {
275
+ throw new Error('SAP_PP_STRICT=true requires SAP_PP_ENABLED=true — strict mode has no effect without principal propagation enabled');
276
+ }
277
+ }
121
278
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
@@ -31,4 +31,12 @@ import type { XsuaaCredentials } from './xsuaa.js';
31
31
  * Start the HTTP Streamable server.
32
32
  */
33
33
  export declare function startHttpServer(serverFactory: () => McpServer, config: ServerConfig, xsuaaCredentials?: XsuaaCredentials): Promise<void>;
34
+ /**
35
+ * Extract scopes from an OIDC JWT payload.
36
+ *
37
+ * Tries `scope` (space-separated string, standard OIDC) then `scp` (array, Azure AD style).
38
+ * Filters to known scopes, applies implied scope expansion, and falls back to read-only
39
+ * when no scope claims are present (safe default for providers that don't emit scopes).
40
+ */
41
+ export declare function extractOidcScopes(payload: Record<string, unknown>): string[];
34
42
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAMrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4CnD;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,SAAS,EAC9B,MAAM,EAAE,YAAY,EACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC,CAiKf"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAQrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsEnD;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,SAAS,EAC9B,MAAM,EAAE,YAAY,EACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC,CAkKf;AA2GD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiC5E"}
@@ -26,8 +26,31 @@
26
26
  */
27
27
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
28
28
  import express from 'express';
29
+ import { expandImpliedScopes } from '../adt/safety.js';
30
+ import { PROFILE_SCOPES } from './config.js';
29
31
  import { logger } from './logger.js';
30
32
  import { VERSION } from './server.js';
33
+ // ─── API Key Matching Helper ─────────────────────────────────────────
34
+ /**
35
+ * Match a token against configured API keys (multi-key with profiles).
36
+ * Returns the matched entry's profile and scopes, or undefined if no match.
37
+ */
38
+ function matchApiKey(token, config) {
39
+ // Multi-key: check apiKeys array first
40
+ if (config.apiKeys) {
41
+ for (const entry of config.apiKeys) {
42
+ if (token === entry.key) {
43
+ const scopes = PROFILE_SCOPES[entry.profile] ?? ['read'];
44
+ return { profile: entry.profile, scopes, clientId: `api-key:${entry.profile}` };
45
+ }
46
+ }
47
+ }
48
+ // Single key: legacy behavior (full scopes)
49
+ if (config.apiKey && token === config.apiKey) {
50
+ return { profile: 'full', scopes: ['read', 'write', 'data', 'sql', 'admin'], clientId: 'api-key' };
51
+ }
52
+ return undefined;
53
+ }
31
54
  // ─── JWKS / JWT types (lazy-loaded from jose) ────────────────────────
32
55
  let joseModule = null;
33
56
  let jwksClient = null;
@@ -166,7 +189,7 @@ export async function startHttpServer(serverFactory, config, xsuaaCredentials) {
166
189
  issuerUrl: new URL(appUrl),
167
190
  baseUrl: new URL(appUrl),
168
191
  resourceServerUrl: new URL(`${appUrl}/mcp`),
169
- scopesSupported: ['read', 'write', 'admin'],
192
+ scopesSupported: ['read', 'write', 'data', 'sql', 'admin'],
170
193
  resourceName: 'ARC-1 SAP MCP Server',
171
194
  }));
172
195
  // Protected MCP endpoint with chained token verification
@@ -181,16 +204,18 @@ export async function startHttpServer(serverFactory, config, xsuaaCredentials) {
181
204
  if (config.oidcIssuer) {
182
205
  await initJwks(config.oidcIssuer);
183
206
  }
184
- // Auth middleware for standard mode
185
- const authMiddleware = async (req, res, next) => {
186
- const authResult = await checkAuth(req, config);
187
- if (!authResult.ok) {
188
- res.status(authResult.status).json({ error: authResult.message });
189
- return;
190
- }
191
- next();
192
- };
193
- app.all('/mcp', authMiddleware, mcpHandler);
207
+ if (config.apiKey || config.apiKeys || config.oidcIssuer) {
208
+ // Use requireBearerAuth so that authInfo is populated on the MCP request context.
209
+ // This enables scope enforcement, per-request safety, and principal propagation.
210
+ const { requireBearerAuth } = await import('@modelcontextprotocol/sdk/server/auth/middleware/bearerAuth.js');
211
+ const verifier = createStandardVerifier(config);
212
+ const bearerAuth = requireBearerAuth({ verifier: { verifyAccessToken: verifier } });
213
+ app.all('/mcp', bearerAuth, mcpHandler);
214
+ }
215
+ else {
216
+ // No auth configured — open access
217
+ app.all('/mcp', mcpHandler);
218
+ }
194
219
  }
195
220
  // ─── 404 for anything else ─────────────────────────────────
196
221
  app.use((req, res) => {
@@ -202,8 +227,10 @@ export async function startHttpServer(serverFactory, config, xsuaaCredentials) {
202
227
  let authMode = 'NONE (open)';
203
228
  if (config.xsuaaAuth && xsuaaCredentials)
204
229
  authMode = 'XSUAA OAuth proxy';
205
- else if (config.apiKey && config.oidcIssuer)
230
+ else if ((config.apiKey || config.apiKeys) && config.oidcIssuer)
206
231
  authMode = 'API key + OIDC';
232
+ else if (config.apiKeys)
233
+ authMode = `API keys (${config.apiKeys.length} keys)`;
207
234
  else if (config.apiKey)
208
235
  authMode = 'API key';
209
236
  else if (config.oidcIssuer)
@@ -216,6 +243,63 @@ export async function startHttpServer(serverFactory, config, xsuaaCredentials) {
216
243
  });
217
244
  });
218
245
  }
246
+ // ─── Standard Mode Verifier ─────────────────────────────────────────
247
+ /**
248
+ * Create a token verifier for standard auth mode (API key + OIDC).
249
+ * Returns AuthInfo so the MCP SDK populates extra.authInfo on the request,
250
+ * enabling scope enforcement, per-request safety, and principal propagation.
251
+ */
252
+ function createStandardVerifier(config) {
253
+ return async (token) => {
254
+ // Lazy-import SDK error classes so bearerAuth maps them to 401/403
255
+ const { InvalidTokenError } = await import('@modelcontextprotocol/sdk/server/auth/errors.js');
256
+ // API key: match against multi-key map or single key
257
+ const apiKeyMatch = matchApiKey(token, config);
258
+ if (apiKeyMatch) {
259
+ // expiresAt is required by requireBearerAuth — use far-future expiry for static keys
260
+ const ONE_YEAR_SECS = 365 * 24 * 60 * 60;
261
+ return {
262
+ token,
263
+ clientId: apiKeyMatch.clientId,
264
+ scopes: apiKeyMatch.scopes,
265
+ expiresAt: Math.floor(Date.now() / 1000) + ONE_YEAR_SECS,
266
+ };
267
+ }
268
+ // OIDC: validate JWT and extract scopes
269
+ if (config.oidcIssuer) {
270
+ try {
271
+ if (!joseModule || !jwksClient) {
272
+ await initJwks(config.oidcIssuer);
273
+ }
274
+ if (!joseModule || !jwksClient) {
275
+ throw new Error('OIDC not initialized — check SAP_OIDC_ISSUER configuration');
276
+ }
277
+ const { payload } = await joseModule.jwtVerify(token, jwksClient, {
278
+ issuer: config.oidcIssuer,
279
+ audience: config.oidcAudience,
280
+ requiredClaims: ['exp'],
281
+ ...(config.oidcClockTolerance != null ? { clockTolerance: config.oidcClockTolerance } : {}),
282
+ });
283
+ logger.debug('Standard OIDC JWT validated', { sub: payload.sub, iss: payload.iss });
284
+ const scopes = extractOidcScopes(payload);
285
+ return {
286
+ token,
287
+ clientId: payload.azp ?? payload.sub ?? 'oidc-user',
288
+ scopes,
289
+ expiresAt: payload.exp,
290
+ extra: { sub: payload.sub, iss: payload.iss },
291
+ };
292
+ }
293
+ catch (err) {
294
+ // Wrap JWT validation errors as InvalidTokenError so bearerAuth returns 401
295
+ if (err instanceof InvalidTokenError)
296
+ throw err;
297
+ throw new InvalidTokenError(err.message ?? 'Invalid token');
298
+ }
299
+ }
300
+ throw new InvalidTokenError('Authentication failed: invalid token');
301
+ };
302
+ }
219
303
  // ─── OIDC Verifier Factory ───────────────────────────────────────────
220
304
  /**
221
305
  * Create an Entra ID / OIDC token verifier using jose.
@@ -230,66 +314,67 @@ async function createOidcVerifier(config) {
230
314
  const { payload } = await joseModule.jwtVerify(token, jwksClient, {
231
315
  issuer: config.oidcIssuer,
232
316
  audience: config.oidcAudience,
317
+ requiredClaims: ['exp'],
318
+ ...(config.oidcClockTolerance != null ? { clockTolerance: config.oidcClockTolerance } : {}),
233
319
  });
234
320
  logger.debug('OIDC JWT validated', { sub: payload.sub, iss: payload.iss });
321
+ const scopes = extractOidcScopes(payload);
235
322
  return {
236
323
  token,
237
324
  clientId: payload.azp ?? payload.sub ?? 'oidc-user',
238
- scopes: ['read', 'write', 'admin'], // OIDC tokens get full access (scopes managed by OIDC provider)
325
+ scopes,
239
326
  expiresAt: payload.exp,
240
327
  extra: { sub: payload.sub, iss: payload.iss },
241
328
  };
242
329
  };
243
330
  }
331
+ // ─── OIDC Scope Extraction ──────────────────────────────────────────
332
+ const KNOWN_SCOPES = ['read', 'write', 'data', 'sql', 'admin'];
244
333
  /**
245
- * Check authentication for standard mode (API key + OIDC).
246
- * Used when XSUAA auth is NOT enabled.
334
+ * Extract scopes from an OIDC JWT payload.
335
+ *
336
+ * Tries `scope` (space-separated string, standard OIDC) then `scp` (array, Azure AD style).
337
+ * Filters to known scopes, applies implied scope expansion, and falls back to read-only
338
+ * when no scope claims are present (safe default for providers that don't emit scopes).
247
339
  */
248
- async function checkAuth(req, config) {
249
- // No auth configured — allow all
250
- if (!config.apiKey && !config.oidcIssuer) {
251
- return { ok: true, status: 200, message: '' };
340
+ export function extractOidcScopes(payload) {
341
+ let rawScopes;
342
+ // Standard OIDC: space-separated string
343
+ if (typeof payload.scope === 'string') {
344
+ rawScopes = payload.scope.split(' ').filter((s) => s.length > 0);
252
345
  }
253
- const authHeader = req.headers.authorization;
254
- if (!authHeader?.startsWith('Bearer ')) {
255
- return {
256
- ok: false,
257
- status: 401,
258
- message: 'Missing or invalid Authorization header. Expected: Bearer <token>',
259
- };
346
+ // Azure AD / Entra: `scp` as space-delimited string (delegated tokens) or array (app tokens)
347
+ else if (typeof payload.scp === 'string') {
348
+ rawScopes = payload.scp.split(' ').filter((s) => s.length > 0);
260
349
  }
261
- const token = authHeader.slice(7);
262
- // API Key check
263
- if (config.apiKey) {
264
- if (token === config.apiKey) {
265
- return { ok: true, status: 200, message: '' };
266
- }
267
- if (!config.oidcIssuer) {
268
- return { ok: false, status: 403, message: 'Invalid API key' };
269
- }
350
+ else if (Array.isArray(payload.scp)) {
351
+ rawScopes = payload.scp.filter((s) => typeof s === 'string' && s.length > 0);
270
352
  }
271
- // OIDC / JWT validation
272
- if (config.oidcIssuer) {
273
- try {
274
- await validateJwt(token, config);
275
- return { ok: true, status: 200, message: '' };
276
- }
277
- catch (err) {
278
- const msg = err instanceof Error ? err.message : 'JWT validation failed';
279
- logger.debug('JWT validation failed', { error: msg });
280
- return { ok: false, status: 403, message: `Authentication failed: ${msg}` };
281
- }
353
+ // No scope claims at all → read-only (safe default)
354
+ if (rawScopes === undefined) {
355
+ logger.warn('OIDC JWT has no scope/scp claims — granting read-only access. ' +
356
+ 'Configure scope claims in your OIDC provider to grant write/data/sql access.');
357
+ return ['read'];
358
+ }
359
+ // Filter to known scopes
360
+ const filtered = rawScopes.filter((s) => KNOWN_SCOPES.includes(s));
361
+ // If scopes were present but none are known, grant minimum read access
362
+ if (filtered.length === 0) {
363
+ logger.warn('OIDC JWT has scope claims but none match known scopes — granting read-only', { rawScopes });
364
+ return ['read'];
282
365
  }
283
- return { ok: false, status: 403, message: 'Authentication failed' };
366
+ return expandImpliedScopes(filtered);
284
367
  }
285
368
  /**
286
369
  * Initialize JWKS client from OIDC discovery.
287
370
  */
288
371
  async function initJwks(issuer) {
289
- if (joseModule)
372
+ if (joseModule && jwksClient)
290
373
  return;
291
374
  try {
292
- joseModule = await import('jose');
375
+ if (!joseModule) {
376
+ joseModule = await import('jose');
377
+ }
293
378
  const jwksUri = new URL('.well-known/openid-configuration', issuer.endsWith('/') ? issuer : `${issuer}/`);
294
379
  const discoveryResp = await fetch(jwksUri.toString());
295
380
  const discovery = (await discoveryResp.json());
@@ -306,26 +391,4 @@ async function initJwks(issuer) {
306
391
  });
307
392
  }
308
393
  }
309
- /**
310
- * Validate a JWT token against the configured OIDC issuer.
311
- */
312
- async function validateJwt(token, config) {
313
- if (!joseModule || !jwksClient) {
314
- if (config.oidcIssuer) {
315
- await initJwks(config.oidcIssuer);
316
- }
317
- if (!joseModule || !jwksClient) {
318
- throw new Error('OIDC not initialized — check SAP_OIDC_ISSUER configuration');
319
- }
320
- }
321
- const { payload } = await joseModule.jwtVerify(token, jwksClient, {
322
- issuer: config.oidcIssuer,
323
- audience: config.oidcAudience,
324
- });
325
- logger.debug('JWT validated', {
326
- sub: payload.sub,
327
- iss: payload.iss,
328
- exp: payload.exp,
329
- });
330
- }
331
394
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,wEAAwE;AAExE,IAAI,UAAU,GAAiC,IAAI,CAAC;AACpD,IAAI,UAAU,GAAgE,IAAI,CAAC;AAEnF,wEAAwE;AAExE;;;GAGG;AACH,SAAS,gBAAgB,CAAC,aAA8B;IACtD,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC3C,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;YACxC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;YACnB,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM;YAC5B,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;SACrB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,SAAS,EAAE,iBAAiB;aACjD,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,8DAA8D;YAC9D,uEAAuE;YACvE,qEAAqE;YACrE,kEAAkE;YAClE,qEAAqE;YACrE,oDAAoD;YACpD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/F,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAA8B,EAC9B,MAAoB,EACpB,gBAAmC;IAEnC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAC;IAEnC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,oEAAoE;IACpE,6DAA6D;IAC7D,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEnD,+DAA+D;IAC/D,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;YAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;YACxC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAClD,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa;YACpC,EAAE,EAAE,GAAG,CAAC,EAAE;SACX,CAAC,CAAC;QACH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,2EAA2E;IAC3E,gFAAgF;IAChF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,MAAM,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iDAAiD,CAAC,CAAC;QAC1F,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,gEAAgE,CAAC,CAAC;QAC7G,MAAM,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CACrG,YAAY,CACb,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpD,uCAAuC;QACvC,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,UAAU,QAAQ,IAAI,IAAI,EAAE,CAAC;QAE3D,2CAA2C;QAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,eAAe,GAAG,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAExF,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAE3F,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,iDAAiD;QACjD,EAAE;QACF,sEAAsE;QACtE,mEAAmE;QACnE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvC,2DAA2D;YAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;oBAChE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;oBAC1B,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;oBACf,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACnD,CAAC,CAAC;gBACH,qEAAqE;gBACrE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAa,EAAE,EAAE;oBACrC,IAAI,GAAG,EAAE,CAAC;wBACR,IAAI,CAAC,GAAG,CAAC,CAAC;wBACV,OAAO;oBACT,CAAC;oBACD,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;gBACtC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;gBACxC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;gBACnB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;gBACzE,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE;oBAC7D,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,sEAAsE;QACtE,kEAAkE;QAClE,+DAA+D;QAC/D,6DAA6D;QAC7D,GAAG,CAAC,GAAG,CACL,aAAa,CAAC;YACZ,QAAQ;YACR,SAAS,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC;YACxB,iBAAiB,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,MAAM,CAAC;YAC3C,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;YAC3C,YAAY,EAAE,sBAAsB;SACrC,CAAC,CACH,CAAC;QAEF,yDAAyD;QACzD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAExC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,MAAM;SACP,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,oCAAoC;QACpC,MAAM,cAAc,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC/E,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5F,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC9B,IAAI,QAAQ,GAAG,aAAa,CAAC;QAC7B,IAAI,MAAM,CAAC,SAAS,IAAI,gBAAgB;YAAE,QAAQ,GAAG,mBAAmB,CAAC;aACpE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU;YAAE,QAAQ,GAAG,gBAAgB,CAAC;aACpE,IAAI,MAAM,CAAC,MAAM;YAAE,QAAQ,GAAG,SAAS,CAAC;aACxC,IAAI,MAAM,CAAC,UAAU;YAAE,QAAQ,GAAG,MAAM,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,IAAI,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE;YAC3B,MAAM,EAAE,UAAU,QAAQ,IAAI,IAAI,SAAS;YAC3C,GAAG,EAAE,UAAU,QAAQ,IAAI,IAAI,MAAM;YACrC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAoB;IAEpB,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;IAEnC,OAAO,KAAK,EAAE,KAAa,EAAE,EAAE;QAC7B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE;YAChE,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,QAAQ,EAAE,MAAM,CAAC,YAAY;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3E,OAAO;YACL,KAAK;YACL,QAAQ,EAAG,OAAO,CAAC,GAAc,IAAK,OAAO,CAAC,GAAc,IAAI,WAAW;YAC3E,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gEAAgE;YACpG,SAAS,EAAE,OAAO,CAAC,GAAG;YACtB,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SAC9C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAUD;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAC,GAAY,EAAE,MAAoB;IACzD,iCAAiC;IACjC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,mEAAmE;SAC7E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,gBAAgB;IAChB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,GAAG,EAAE,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,IAAI,UAAU;QAAE,OAAO;IAEvB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC1G,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAyB,CAAC;QAEvE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,UAAU,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;YAC7C,MAAM;YACN,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,MAAoB;IAC5D,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE;QAChE,MAAM,EAAE,MAAM,CAAC,UAAU;QACzB,QAAQ,EAAE,MAAM,CAAC,YAAY;KAC9B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,26 @@ import type { BTPConfig, BTPProxyConfig } from '../adt/btp.js';
11
11
  import { CachingLayer } from '../cache/caching-layer.js';
12
12
  import type { ServerConfig } from './types.js';
13
13
  /** ARC-1 version */
14
- export declare const VERSION = "0.3.0";
14
+ export declare const VERSION = "0.5.0";
15
+ /**
16
+ * Run a one-time feature probe against the SAP system using the shared/default client.
17
+ * Returns a promise that resolves once probe results are stored in cachedFeatures.
18
+ * In PP mode (when btpConfig is available for per-user client creation), auth failures
19
+ * (401/403) on textSearch are treated as "unknown" so the tool schema doesn't hide
20
+ * source_code from users who might have authorization. Without btpConfig, PP cannot
21
+ * create per-user clients, so shared-client auth failures are definitive.
22
+ */
23
+ export declare function runStartupProbe(config: ServerConfig, btpProxy?: BTPProxyConfig, bearerTokenProvider?: () => Promise<string>, btpConfig?: BTPConfig): Promise<void>;
15
24
  /**
16
25
  * Create the MCP server with registered tool handlers.
17
26
  * @param config Server configuration
18
27
  * @param btpProxy Optional BTP connectivity proxy config (resolved at startup)
19
28
  * @param btpConfig Optional BTP service config (for per-user destination lookup)
20
29
  * @param bearerTokenProvider Optional OAuth bearer token provider (BTP ABAP Environment)
30
+ * @param cachingLayer Optional object cache layer
31
+ * @param startupProbePromise Promise from runStartupProbe() — ListTools waits on this
21
32
  */
22
- export declare function createServer(config: ServerConfig, btpProxy?: BTPProxyConfig, btpConfig?: BTPConfig, bearerTokenProvider?: () => Promise<string>, cachingLayer?: CachingLayer): Server;
33
+ export declare function createServer(config: ServerConfig, btpProxy?: BTPProxyConfig, btpConfig?: BTPConfig, bearerTokenProvider?: () => Promise<string>, cachingLayer?: CachingLayer, startupProbePromise?: Promise<void>): Server;
23
34
  /**
24
35
  * Create and start the MCP server.
25
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oBAAoB;AACpB,eAAO,MAAM,OAAO,UAAU,CAAC;AAyG/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAC,EAAE,YAAY,GAC1B,MAAM,CAwFR;AAoCD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA6MhF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAK/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAYzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oBAAoB;AACpB,eAAO,MAAM,OAAO,UAAU,CAAC;AA0G/B;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAC,EAAE,YAAY,EAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAClC,MAAM,CAkHR;AAoCD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAiNhF"}