arc-1 0.9.25 → 1.0.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 (332) hide show
  1. package/README.md +29 -12
  2. package/dist/adt/abapgit.d.ts +19 -6
  3. package/dist/adt/abapgit.d.ts.map +1 -1
  4. package/dist/adt/abapgit.js +141 -36
  5. package/dist/adt/abapgit.js.map +1 -1
  6. package/dist/adt/authorization-trace.d.ts +23 -0
  7. package/dist/adt/authorization-trace.d.ts.map +1 -0
  8. package/dist/adt/authorization-trace.js +196 -0
  9. package/dist/adt/authorization-trace.js.map +1 -0
  10. package/dist/adt/client.d.ts +21 -8
  11. package/dist/adt/client.d.ts.map +1 -1
  12. package/dist/adt/client.js +47 -7
  13. package/dist/adt/client.js.map +1 -1
  14. package/dist/adt/config.d.ts +15 -0
  15. package/dist/adt/config.d.ts.map +1 -1
  16. package/dist/adt/config.js.map +1 -1
  17. package/dist/adt/crud.d.ts +7 -2
  18. package/dist/adt/crud.d.ts.map +1 -1
  19. package/dist/adt/crud.js +12 -4
  20. package/dist/adt/crud.js.map +1 -1
  21. package/dist/adt/ddic-xml.d.ts +27 -17
  22. package/dist/adt/ddic-xml.d.ts.map +1 -1
  23. package/dist/adt/ddic-xml.js +45 -34
  24. package/dist/adt/ddic-xml.js.map +1 -1
  25. package/dist/adt/devtools.d.ts +13 -0
  26. package/dist/adt/devtools.d.ts.map +1 -1
  27. package/dist/adt/devtools.js +120 -50
  28. package/dist/adt/devtools.js.map +1 -1
  29. package/dist/adt/diagnostics.d.ts +1 -1
  30. package/dist/adt/diagnostics.d.ts.map +1 -1
  31. package/dist/adt/diagnostics.js +1 -0
  32. package/dist/adt/diagnostics.js.map +1 -1
  33. package/dist/adt/errors.d.ts +8 -8
  34. package/dist/adt/errors.d.ts.map +1 -1
  35. package/dist/adt/errors.js +30 -11
  36. package/dist/adt/errors.js.map +1 -1
  37. package/dist/adt/http.d.ts +17 -1
  38. package/dist/adt/http.d.ts.map +1 -1
  39. package/dist/adt/http.js +102 -19
  40. package/dist/adt/http.js.map +1 -1
  41. package/dist/adt/oauth.d.ts +2 -2
  42. package/dist/adt/oauth.d.ts.map +1 -1
  43. package/dist/adt/oauth.js +5 -3
  44. package/dist/adt/oauth.js.map +1 -1
  45. package/dist/adt/package-hierarchy.d.ts.map +1 -1
  46. package/dist/adt/package-hierarchy.js.map +1 -1
  47. package/dist/adt/rap-generate.js.map +1 -1
  48. package/dist/adt/rap-handlers.js.map +1 -1
  49. package/dist/adt/rap-preflight.js.map +1 -1
  50. package/dist/adt/safety.d.ts +13 -13
  51. package/dist/adt/safety.d.ts.map +1 -1
  52. package/dist/adt/semaphore.d.ts.map +1 -1
  53. package/dist/adt/server-driven.d.ts +154 -34
  54. package/dist/adt/server-driven.d.ts.map +1 -1
  55. package/dist/adt/server-driven.js +178 -53
  56. package/dist/adt/server-driven.js.map +1 -1
  57. package/dist/adt/structure-hierarchy.js.map +1 -1
  58. package/dist/adt/transport.d.ts +6 -6
  59. package/dist/adt/transport.d.ts.map +1 -1
  60. package/dist/adt/transport.js +23 -34
  61. package/dist/adt/transport.js.map +1 -1
  62. package/dist/adt/types.d.ts +94 -6
  63. package/dist/adt/types.d.ts.map +1 -1
  64. package/dist/adt/version-diff.js.map +1 -1
  65. package/dist/adt/xml-parser.d.ts +52 -12
  66. package/dist/adt/xml-parser.d.ts.map +1 -1
  67. package/dist/adt/xml-parser.js +120 -10
  68. package/dist/adt/xml-parser.js.map +1 -1
  69. package/dist/aff/validator.js.map +1 -1
  70. package/dist/authz/policy.d.ts +8 -0
  71. package/dist/authz/policy.d.ts.map +1 -1
  72. package/dist/authz/policy.js +24 -0
  73. package/dist/authz/policy.js.map +1 -1
  74. package/dist/cache/cache.d.ts +4 -36
  75. package/dist/cache/cache.d.ts.map +1 -1
  76. package/dist/cache/cache.js +4 -5
  77. package/dist/cache/cache.js.map +1 -1
  78. package/dist/cache/caching-layer.d.ts +6 -22
  79. package/dist/cache/caching-layer.d.ts.map +1 -1
  80. package/dist/cache/caching-layer.js +5 -29
  81. package/dist/cache/caching-layer.js.map +1 -1
  82. package/dist/cache/inactive-list-cache.d.ts.map +1 -1
  83. package/dist/cache/memory.d.ts +2 -13
  84. package/dist/cache/memory.d.ts.map +1 -1
  85. package/dist/cache/memory.js +1 -70
  86. package/dist/cache/memory.js.map +1 -1
  87. package/dist/cache/sqlite.d.ts +3 -10
  88. package/dist/cache/sqlite.d.ts.map +1 -1
  89. package/dist/cache/sqlite.js +9 -85
  90. package/dist/cache/sqlite.js.map +1 -1
  91. package/dist/cli.js +6 -3
  92. package/dist/cli.js.map +1 -1
  93. package/dist/context/compressor.js.map +1 -1
  94. package/dist/context/grep.js.map +1 -1
  95. package/dist/context/unit-surgery.d.ts +28 -0
  96. package/dist/context/unit-surgery.d.ts.map +1 -0
  97. package/dist/context/unit-surgery.js +150 -0
  98. package/dist/context/unit-surgery.js.map +1 -0
  99. package/dist/extract-sap-cookies.js.map +1 -1
  100. package/dist/handlers/activate.d.ts.map +1 -1
  101. package/dist/handlers/activate.js +44 -6
  102. package/dist/handlers/activate.js.map +1 -1
  103. package/dist/handlers/context.d.ts +1 -1
  104. package/dist/handlers/context.d.ts.map +1 -1
  105. package/dist/handlers/context.js +98 -28
  106. package/dist/handlers/context.js.map +1 -1
  107. package/dist/handlers/diagnose.d.ts.map +1 -1
  108. package/dist/handlers/diagnose.js +74 -31
  109. package/dist/handlers/diagnose.js.map +1 -1
  110. package/dist/handlers/dispatch.d.ts +12 -1
  111. package/dist/handlers/dispatch.d.ts.map +1 -1
  112. package/dist/handlers/dispatch.js +160 -25
  113. package/dist/handlers/dispatch.js.map +1 -1
  114. package/dist/handlers/feature-cache.d.ts +27 -14
  115. package/dist/handlers/feature-cache.d.ts.map +1 -1
  116. package/dist/handlers/feature-cache.js +63 -25
  117. package/dist/handlers/feature-cache.js.map +1 -1
  118. package/dist/handlers/function-processing.d.ts +61 -0
  119. package/dist/handlers/function-processing.d.ts.map +1 -0
  120. package/dist/handlers/function-processing.js +45 -0
  121. package/dist/handlers/function-processing.js.map +1 -0
  122. package/dist/handlers/git.d.ts.map +1 -1
  123. package/dist/handlers/git.js +44 -19
  124. package/dist/handlers/git.js.map +1 -1
  125. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  126. package/dist/handlers/hyperfocused.js +2 -3
  127. package/dist/handlers/hyperfocused.js.map +1 -1
  128. package/dist/handlers/lint.d.ts.map +1 -1
  129. package/dist/handlers/lint.js +7 -7
  130. package/dist/handlers/lint.js.map +1 -1
  131. package/dist/handlers/manage.d.ts.map +1 -1
  132. package/dist/handlers/manage.js +47 -28
  133. package/dist/handlers/manage.js.map +1 -1
  134. package/dist/handlers/navigate.d.ts.map +1 -1
  135. package/dist/handlers/navigate.js +27 -90
  136. package/dist/handlers/navigate.js.map +1 -1
  137. package/dist/handlers/object-types.d.ts +2 -0
  138. package/dist/handlers/object-types.d.ts.map +1 -1
  139. package/dist/handlers/object-types.js +10 -0
  140. package/dist/handlers/object-types.js.map +1 -1
  141. package/dist/handlers/query-errors.d.ts +11 -0
  142. package/dist/handlers/query-errors.d.ts.map +1 -0
  143. package/dist/handlers/query-errors.js +216 -0
  144. package/dist/handlers/query-errors.js.map +1 -0
  145. package/dist/handlers/query.d.ts.map +1 -1
  146. package/dist/handlers/query.js +62 -67
  147. package/dist/handlers/query.js.map +1 -1
  148. package/dist/handlers/read.d.ts.map +1 -1
  149. package/dist/handlers/read.js +64 -41
  150. package/dist/handlers/read.js.map +1 -1
  151. package/dist/handlers/schemas.d.ts +285 -234
  152. package/dist/handlers/schemas.d.ts.map +1 -1
  153. package/dist/handlers/schemas.js +126 -32
  154. package/dist/handlers/schemas.js.map +1 -1
  155. package/dist/handlers/search.d.ts.map +1 -1
  156. package/dist/handlers/search.js +8 -7
  157. package/dist/handlers/search.js.map +1 -1
  158. package/dist/handlers/shared.d.ts +13 -0
  159. package/dist/handlers/shared.d.ts.map +1 -1
  160. package/dist/handlers/shared.js +15 -0
  161. package/dist/handlers/shared.js.map +1 -1
  162. package/dist/handlers/tool-descriptions.d.ts +4 -0
  163. package/dist/handlers/tool-descriptions.d.ts.map +1 -0
  164. package/dist/handlers/tool-descriptions.js +52 -0
  165. package/dist/handlers/tool-descriptions.js.map +1 -0
  166. package/dist/handlers/tool-registry.d.ts +20 -6
  167. package/dist/handlers/tool-registry.d.ts.map +1 -1
  168. package/dist/handlers/tool-registry.js +18 -0
  169. package/dist/handlers/tool-registry.js.map +1 -1
  170. package/dist/handlers/tools.d.ts.map +1 -1
  171. package/dist/handlers/tools.js +124 -92
  172. package/dist/handlers/tools.js.map +1 -1
  173. package/dist/handlers/transport.d.ts +1 -1
  174. package/dist/handlers/transport.d.ts.map +1 -1
  175. package/dist/handlers/transport.js +37 -10
  176. package/dist/handlers/transport.js.map +1 -1
  177. package/dist/handlers/where-used.d.ts +25 -0
  178. package/dist/handlers/where-used.d.ts.map +1 -0
  179. package/dist/handlers/where-used.js +94 -0
  180. package/dist/handlers/where-used.js.map +1 -0
  181. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  182. package/dist/handlers/write/class-surgery.js +11 -12
  183. package/dist/handlers/write/class-surgery.js.map +1 -1
  184. package/dist/handlers/write/create.d.ts.map +1 -1
  185. package/dist/handlers/write/create.js +194 -84
  186. package/dist/handlers/write/create.js.map +1 -1
  187. package/dist/handlers/write/rap.d.ts.map +1 -1
  188. package/dist/handlers/write/rap.js +9 -9
  189. package/dist/handlers/write/rap.js.map +1 -1
  190. package/dist/handlers/write/unit-surgery.d.ts +5 -0
  191. package/dist/handlers/write/unit-surgery.d.ts.map +1 -0
  192. package/dist/handlers/write/unit-surgery.js +47 -0
  193. package/dist/handlers/write/unit-surgery.js.map +1 -0
  194. package/dist/handlers/write/update-delete.js +8 -8
  195. package/dist/handlers/write/update-delete.js.map +1 -1
  196. package/dist/handlers/write-helpers.d.ts +7 -4
  197. package/dist/handlers/write-helpers.d.ts.map +1 -1
  198. package/dist/handlers/write-helpers.js +118 -63
  199. package/dist/handlers/write-helpers.js.map +1 -1
  200. package/dist/handlers/write.d.ts.map +1 -1
  201. package/dist/handlers/write.js +35 -13
  202. package/dist/handlers/write.js.map +1 -1
  203. package/dist/lint/config-builder.js.map +1 -1
  204. package/dist/lint/lint.d.ts.map +1 -1
  205. package/dist/lint/lint.js +4 -2
  206. package/dist/lint/lint.js.map +1 -1
  207. package/dist/probe/catalog.js +1 -1
  208. package/dist/probe/catalog.js.map +1 -1
  209. package/dist/public/testing.js.map +1 -1
  210. package/dist/public/ui/app.js +1 -14
  211. package/dist/registry/tool-registry.d.ts.map +1 -1
  212. package/dist/server/audit.d.ts +27 -15
  213. package/dist/server/audit.d.ts.map +1 -1
  214. package/dist/server/audit.js.map +1 -1
  215. package/dist/server/auth-rate-limit.d.ts +18 -9
  216. package/dist/server/auth-rate-limit.d.ts.map +1 -1
  217. package/dist/server/auth-rate-limit.js +31 -6
  218. package/dist/server/auth-rate-limit.js.map +1 -1
  219. package/dist/server/auth-summary.d.ts +4 -0
  220. package/dist/server/auth-summary.d.ts.map +1 -0
  221. package/dist/server/auth-summary.js +67 -0
  222. package/dist/server/auth-summary.js.map +1 -0
  223. package/dist/server/config.d.ts.map +1 -1
  224. package/dist/server/config.js +110 -7
  225. package/dist/server/config.js.map +1 -1
  226. package/dist/server/context.d.ts +12 -0
  227. package/dist/server/context.d.ts.map +1 -1
  228. package/dist/server/context.js.map +1 -1
  229. package/dist/server/destination-discovery.d.ts +36 -0
  230. package/dist/server/destination-discovery.d.ts.map +1 -0
  231. package/dist/server/destination-discovery.js +130 -0
  232. package/dist/server/destination-discovery.js.map +1 -0
  233. package/dist/server/destination-registry.d.ts +111 -0
  234. package/dist/server/destination-registry.d.ts.map +1 -0
  235. package/dist/server/destination-registry.js +449 -0
  236. package/dist/server/destination-registry.js.map +1 -0
  237. package/dist/server/http.d.ts +43 -1
  238. package/dist/server/http.d.ts.map +1 -1
  239. package/dist/server/http.js +283 -73
  240. package/dist/server/http.js.map +1 -1
  241. package/dist/server/logger.d.ts.map +1 -1
  242. package/dist/server/logger.js +58 -13
  243. package/dist/server/logger.js.map +1 -1
  244. package/dist/server/mcp-rate-limit.d.ts +6 -4
  245. package/dist/server/mcp-rate-limit.d.ts.map +1 -1
  246. package/dist/server/mcp-rate-limit.js +6 -4
  247. package/dist/server/mcp-rate-limit.js.map +1 -1
  248. package/dist/server/multi-target-basic-auth.d.ts +49 -0
  249. package/dist/server/multi-target-basic-auth.d.ts.map +1 -0
  250. package/dist/server/multi-target-basic-auth.js +246 -0
  251. package/dist/server/multi-target-basic-auth.js.map +1 -0
  252. package/dist/server/multi-target-catalog.d.ts +33 -0
  253. package/dist/server/multi-target-catalog.d.ts.map +1 -0
  254. package/dist/server/multi-target-catalog.js +130 -0
  255. package/dist/server/multi-target-catalog.js.map +1 -0
  256. package/dist/server/multi-target-destination-config.d.ts +12 -0
  257. package/dist/server/multi-target-destination-config.d.ts.map +1 -0
  258. package/dist/server/multi-target-destination-config.js +37 -0
  259. package/dist/server/multi-target-destination-config.js.map +1 -0
  260. package/dist/server/multi-target-destination-runtime.d.ts +20 -0
  261. package/dist/server/multi-target-destination-runtime.d.ts.map +1 -0
  262. package/dist/server/multi-target-destination-runtime.js +191 -0
  263. package/dist/server/multi-target-destination-runtime.js.map +1 -0
  264. package/dist/server/multi-target-feature-state.d.ts +6 -0
  265. package/dist/server/multi-target-feature-state.d.ts.map +1 -0
  266. package/dist/server/multi-target-feature-state.js +41 -0
  267. package/dist/server/multi-target-feature-state.js.map +1 -0
  268. package/dist/server/multi-target-identity.d.ts +10 -0
  269. package/dist/server/multi-target-identity.d.ts.map +1 -0
  270. package/dist/server/multi-target-identity.js +18 -0
  271. package/dist/server/multi-target-identity.js.map +1 -0
  272. package/dist/server/multi-target-runtime.d.ts +27 -0
  273. package/dist/server/multi-target-runtime.d.ts.map +1 -0
  274. package/dist/server/multi-target-runtime.js +110 -0
  275. package/dist/server/multi-target-runtime.js.map +1 -0
  276. package/dist/server/multi-target-server.d.ts +53 -0
  277. package/dist/server/multi-target-server.d.ts.map +1 -0
  278. package/dist/server/multi-target-server.js +434 -0
  279. package/dist/server/multi-target-server.js.map +1 -0
  280. package/dist/server/multi-target-shared-auth-state.d.ts +82 -0
  281. package/dist/server/multi-target-shared-auth-state.d.ts.map +1 -0
  282. package/dist/server/multi-target-shared-auth-state.js +226 -0
  283. package/dist/server/multi-target-shared-auth-state.js.map +1 -0
  284. package/dist/server/multi-target-tools.d.ts +20 -0
  285. package/dist/server/multi-target-tools.d.ts.map +1 -0
  286. package/dist/server/multi-target-tools.js +191 -0
  287. package/dist/server/multi-target-tools.js.map +1 -0
  288. package/dist/server/oauth-session-recovery.d.ts +22 -0
  289. package/dist/server/oauth-session-recovery.d.ts.map +1 -0
  290. package/dist/server/oauth-session-recovery.js +69 -0
  291. package/dist/server/oauth-session-recovery.js.map +1 -0
  292. package/dist/server/server.d.ts +47 -25
  293. package/dist/server/server.d.ts.map +1 -1
  294. package/dist/server/server.js +490 -301
  295. package/dist/server/server.js.map +1 -1
  296. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  297. package/dist/server/sinks/btp-auditlog.js +83 -11
  298. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  299. package/dist/server/sinks/file.d.ts.map +1 -1
  300. package/dist/server/sinks/file.js.map +1 -1
  301. package/dist/server/sinks/stderr.d.ts.map +1 -1
  302. package/dist/server/sinks/stderr.js.map +1 -1
  303. package/dist/server/tool-auth.d.ts +10 -0
  304. package/dist/server/tool-auth.d.ts.map +1 -0
  305. package/dist/server/tool-auth.js +75 -0
  306. package/dist/server/tool-auth.js.map +1 -0
  307. package/dist/server/trace-context.d.ts +51 -0
  308. package/dist/server/trace-context.d.ts.map +1 -0
  309. package/dist/server/trace-context.js +100 -0
  310. package/dist/server/trace-context.js.map +1 -0
  311. package/dist/server/types.d.ts +28 -7
  312. package/dist/server/types.d.ts.map +1 -1
  313. package/dist/server/types.js +5 -2
  314. package/dist/server/types.js.map +1 -1
  315. package/dist/server/ui-log-buffer.d.ts.map +1 -1
  316. package/dist/server/ui-log-buffer.js.map +1 -1
  317. package/dist/server/ui-state.d.ts +0 -2
  318. package/dist/server/ui-state.d.ts.map +1 -1
  319. package/dist/server/ui-state.js +2 -6
  320. package/dist/server/ui-state.js.map +1 -1
  321. package/dist/server/ui.d.ts.map +1 -1
  322. package/dist/server/ui.js +8 -9
  323. package/dist/server/ui.js.map +1 -1
  324. package/package.json +21 -18
  325. package/dist/cache/warmup.d.ts +0 -41
  326. package/dist/cache/warmup.d.ts.map +0 -1
  327. package/dist/cache/warmup.js +0 -337
  328. package/dist/cache/warmup.js.map +0 -1
  329. package/dist/server/elicit.d.ts +0 -43
  330. package/dist/server/elicit.d.ts.map +0 -1
  331. package/dist/server/elicit.js +0 -183
  332. package/dist/server/elicit.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ /** Secret-free startup summary for the configured MCP and SAP identity topology. */
2
+ import { logger } from './logger.js';
3
+ export function logAuthSummary(config) {
4
+ const mcpMethods = [];
5
+ const hasApiKeys = !!config.apiKeys?.length;
6
+ if (hasApiKeys)
7
+ mcpMethods.push('api-keys');
8
+ if (config.oidcIssuer && config.oidcAudience)
9
+ mcpMethods.push('oidc');
10
+ if (config.xsuaaAuth)
11
+ mcpMethods.push('xsuaa');
12
+ if (mcpMethods.length === 0)
13
+ mcpMethods.push('none');
14
+ const hasCookie = !!(config.cookieFile || config.cookieString);
15
+ const hasBearer = !!(config.btpServiceKey || config.btpServiceKeyFile);
16
+ const hasDestination = !!process.env.SAP_BTP_DESTINATION;
17
+ const hasBasic = !!(config.username && config.password);
18
+ let sapMethod = 'none';
19
+ if (config.multiTargetEndpoints) {
20
+ const multiIdentity = config.multiTargetAllowBasicAuth ? 'destination+pp/basic-shared' : 'destination+pp';
21
+ sapMethod = hasDestination ? `${multiIdentity} (single-target + multi-target)` : `${multiIdentity} (multi-target)`;
22
+ }
23
+ else if (config.ppEnabled) {
24
+ if (hasDestination)
25
+ sapMethod = 'destination+pp';
26
+ else if (hasCookie)
27
+ sapMethod = 'cookie+pp';
28
+ else
29
+ sapMethod = 'pp';
30
+ }
31
+ else if (hasBearer) {
32
+ sapMethod = 'bearer';
33
+ }
34
+ else if (hasDestination) {
35
+ sapMethod = 'destination';
36
+ }
37
+ else if (hasBasic && hasCookie) {
38
+ sapMethod = 'basic+cookie';
39
+ }
40
+ else if (hasCookie) {
41
+ sapMethod = 'cookie';
42
+ }
43
+ else if (hasBasic) {
44
+ sapMethod = 'basic';
45
+ }
46
+ const strictPpOnly = config.ppEnabled && config.ppStrictExplicit && config.ppStrict;
47
+ const mixedSapIdentity = config.ppEnabled && hasApiKeys && !strictPpOnly;
48
+ const scope = config.multiTargetEndpoints && config.multiTargetAllowBasicAuth
49
+ ? 'per-target: PP per-user or Basic shared'
50
+ : mixedSapIdentity
51
+ ? 'mixed: JWT per-user, API keys shared'
52
+ : config.ppEnabled
53
+ ? 'per-user'
54
+ : 'shared';
55
+ const samlSuffix = config.disableSaml2 ? ' disable-saml=on' : '';
56
+ logger.info(`auth: MCP=[${mcpMethods.join(',')}] SAP=${sapMethod} (${scope})${samlSuffix}`);
57
+ if (mixedSapIdentity) {
58
+ logger.warn('auth topology: PP and API-key calls use different SAP identities. Mixed mode is supported. ' +
59
+ 'Separate instances are recommended for clearer SAP identity and audit boundaries; set SAP_PP_STRICT=true ' +
60
+ 'on the PP instance when using that topology.');
61
+ }
62
+ else if (strictPpOnly && hasApiKeys) {
63
+ logger.warn('auth topology: ARC1_API_KEYS is configured but SAP_PP_STRICT=true rejects API-key MCP tool calls. ' +
64
+ 'Set SAP_PP_STRICT=false for supported mixed operation, or remove/move the keys for a strict PP topology.');
65
+ }
66
+ }
67
+ //# sourceMappingURL=auth-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-summary.js","sourceRoot":"","sources":["../../src/server/auth-summary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,YAAY,EAGZ,YAAY,EAGb,MAAM,YAAY,CAAC;AAGpB;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kFAAkF;IAClF,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA2E1D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BjF;AA0ED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE,CA8c7G;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAEtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA2GzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,YAAY,EAGZ,YAAY,EAGb,MAAM,YAAY,CAAC;AAGpB;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kFAAkF;IAClF,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA2E1D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BjF;AAwGD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE,CAqf7G;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAEtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA4KzD"}
@@ -168,6 +168,15 @@ const LEGACY_CLI_FLAGS = {
168
168
  profile: LEGACY_ENV_VARS.ARC1_PROFILE,
169
169
  'api-key': LEGACY_ENV_VARS.ARC1_API_KEY,
170
170
  };
171
+ const RETIRED_ENV_VARS = {
172
+ ARC1_CACHE_WARMUP: 'Cache warmup was removed. The normal request-driven cache remains available through ARC1_CACHE.',
173
+ ARC1_CACHE_WARMUP_PACKAGES: 'Cache warmup package filters were removed with cache warmup. Remove this environment variable.',
174
+ SAP_BTP_DESTINATIONS: 'The unreleased multi-destination prototype was removed. Use ARC1_MULTI_TARGET_ENDPOINTS=true and mark subaccount destinations with arc1.enabled=true.',
175
+ };
176
+ const RETIRED_CLI_FLAGS = {
177
+ 'cache-warmup': RETIRED_ENV_VARS.ARC1_CACHE_WARMUP,
178
+ 'cache-warmup-packages': RETIRED_ENV_VARS.ARC1_CACHE_WARMUP_PACKAGES,
179
+ };
171
180
  /** Migration guard — throws a helpful error if any legacy identifier is set. */
172
181
  function detectLegacyConfig(args) {
173
182
  const violations = [];
@@ -185,6 +194,21 @@ function detectLegacyConfig(args) {
185
194
  throw new Error(`Legacy authorization config detected (removed in v0.7):\n${violations.join('\n')}\n\nSee docs_page/updating.md#v07-authorization-refactor-breaking-change for the full migration guide.`);
186
195
  }
187
196
  }
197
+ function detectRetiredConfig(args) {
198
+ const violations = [];
199
+ for (const env of Object.keys(RETIRED_ENV_VARS)) {
200
+ if (process.env[env] !== undefined)
201
+ violations.push(` ${env}: ${RETIRED_ENV_VARS[env]}`);
202
+ }
203
+ for (const flag of Object.keys(RETIRED_CLI_FLAGS)) {
204
+ if (args.some((arg) => arg === `--${flag}` || arg.startsWith(`--${flag}=`))) {
205
+ violations.push(` --${flag}: ${RETIRED_CLI_FLAGS[flag]}`);
206
+ }
207
+ }
208
+ if (violations.length > 0) {
209
+ throw new Error(`Removed ARC-1 configuration detected:\n${violations.join('\n')}\n\nSee docs_page/updating.md for migration details.`);
210
+ }
211
+ }
188
212
  /**
189
213
  * Parse CLI args + env into a `{ config, sources }` pair.
190
214
  * `sources` records where each field's value came from (default / env / flag / file).
@@ -192,6 +216,7 @@ function detectLegacyConfig(args) {
192
216
  */
193
217
  export function resolveConfig(args) {
194
218
  detectLegacyConfig(args);
219
+ detectRetiredConfig(args);
195
220
  const config = { ...DEFAULT_CONFIG };
196
221
  const sources = {};
197
222
  // ── Resolvers ──────────────────────────────────────────────────────
@@ -316,6 +341,7 @@ export function resolveConfig(args) {
316
341
  config.httpAddr = `${addrHost}:${parsedPort}`;
317
342
  sources.httpAddr = getFlag('port') !== undefined ? { flag: '--port' } : { env: 'ARC1_PORT' };
318
343
  }
344
+ config.serverName = resolveStr('server-name', 'ARC1_SERVER_NAME', DEFAULT_CONFIG.serverName, 'serverName');
319
345
  // ── Read-only Admin UI ────────────────────────────────────────────
320
346
  const uiFlag = getOptionalFlagValue('ui');
321
347
  const uiEnv = process.env.ARC1_UI;
@@ -435,6 +461,19 @@ export function resolveConfig(args) {
435
461
  const parsed = Number.parseInt(clockTolerance, 10);
436
462
  config.oidcClockTolerance = Number.isNaN(parsed) ? undefined : parsed;
437
463
  }
464
+ config.oidcDiscovery = resolveBool('oidc-discovery', 'SAP_OIDC_DISCOVERY', true, 'oidcDiscovery');
465
+ const oidcScopesRaw = getFlag('oidc-scopes') ?? process.env.SAP_OIDC_SCOPES;
466
+ if (oidcScopesRaw) {
467
+ // Comma or whitespace separated — OAuth scope strings are space-delimited on the wire.
468
+ config.oidcScopes = oidcScopesRaw
469
+ .split(/[,\s]+/)
470
+ .map((s) => s.trim())
471
+ .filter((s) => s.length > 0);
472
+ sources.oidcScopes = getFlag('oidc-scopes') !== undefined ? { flag: '--oidc-scopes' } : { env: 'SAP_OIDC_SCOPES' };
473
+ }
474
+ else {
475
+ sources.oidcScopes = 'default';
476
+ }
438
477
  config.xsuaaAuth = resolveBool('xsuaa-auth', 'SAP_XSUAA_AUTH', false, 'xsuaaAuth');
439
478
  config.allowHttpNoAuth = resolveBool('allow-http-no-auth', 'ARC1_ALLOW_HTTP_NO_AUTH', false, 'allowHttpNoAuth');
440
479
  // OAuth DCR client_id lifetime. Default: 0 = never expire (no per-client
@@ -470,6 +509,8 @@ export function resolveConfig(args) {
470
509
  config.btpServiceKeyFile = resolveOptionalStr('btp-service-key-file', 'SAP_BTP_SERVICE_KEY_FILE', 'btpServiceKeyFile');
471
510
  const cbPort = resolveStr('btp-oauth-callback-port', 'SAP_BTP_OAUTH_CALLBACK_PORT', '0', 'btpOAuthCallbackPort');
472
511
  config.btpOAuthCallbackPort = Number.parseInt(cbPort, 10) || 0;
512
+ config.multiTargetEndpoints = resolveBool('multi-target-endpoints', 'ARC1_MULTI_TARGET_ENDPOINTS', false, 'multiTargetEndpoints');
513
+ config.multiTargetAllowBasicAuth = resolveBool('multi-target-allow-basic-auth', 'ARC1_MULTI_TARGET_ALLOW_BASIC_AUTH', false, 'multiTargetAllowBasicAuth');
473
514
  // ── Principal Propagation ──────────────────────────────────────────
474
515
  config.ppEnabled = resolveBool('pp-enabled', 'SAP_PP_ENABLED', false, 'ppEnabled');
475
516
  const ppStrictFlag = getFlag('pp-strict');
@@ -485,9 +526,9 @@ export function resolveConfig(args) {
485
526
  sources.ppStrict = { env: 'SAP_PP_STRICT' };
486
527
  }
487
528
  else {
488
- // Principal propagation should fail closed on JWT propagation failures by default.
489
- // Non-JWT API-key/stdio requests keep using the shared client unless strict mode
490
- // is explicitly enabled with SAP_PP_STRICT=true / --pp-strict true.
529
+ // JWT principal-propagation failures always fail closed. The derived default keeps
530
+ // non-JWT API-key/stdio requests on the shared client unless strict mode is explicitly
531
+ // enabled with SAP_PP_STRICT=true / --pp-strict true.
491
532
  config.ppStrict = config.ppEnabled;
492
533
  config.ppStrictExplicit = false;
493
534
  sources.ppStrict = 'default';
@@ -520,8 +561,6 @@ export function resolveConfig(args) {
520
561
  const cacheMode = resolveStr('cache', 'ARC1_CACHE', 'auto', 'cacheMode');
521
562
  config.cacheMode = (['memory', 'sqlite', 'none'].includes(cacheMode) ? cacheMode : 'auto');
522
563
  config.cacheFile = resolveStr('cache-file', 'ARC1_CACHE_FILE', '.arc1-cache.db', 'cacheFile');
523
- config.cacheWarmup = resolveBool('cache-warmup', 'ARC1_CACHE_WARMUP', false, 'cacheWarmup');
524
- config.cacheWarmupPackages = resolveStr('cache-warmup-packages', 'ARC1_CACHE_WARMUP_PACKAGES', '', 'cacheWarmupPackages');
525
564
  // ── Concurrency ────────────────────────────────────────────────────
526
565
  const maxConcurrent = getFlag('max-concurrent') ?? process.env.ARC1_MAX_CONCURRENT;
527
566
  if (maxConcurrent) {
@@ -546,6 +585,20 @@ export function resolveConfig(args) {
546
585
  else {
547
586
  sources.authRateLimit = 'default';
548
587
  }
588
+ const mcpHttpRateLimitRaw = process.env.ARC1_MCP_HTTP_RATE_LIMIT;
589
+ if (mcpHttpRateLimitRaw !== undefined) {
590
+ const parsed = Number.parseInt(mcpHttpRateLimitRaw, 10);
591
+ if (Number.isNaN(parsed) || parsed < 0 || String(parsed) !== mcpHttpRateLimitRaw.trim()) {
592
+ logger.warn(`Invalid ARC1_MCP_HTTP_RATE_LIMIT='${mcpHttpRateLimitRaw}' — expected positive integer or 0. Using the derived MCP HTTP limit.`);
593
+ }
594
+ else {
595
+ config.mcpHttpRateLimit = parsed;
596
+ sources.mcpHttpRateLimit = { env: 'ARC1_MCP_HTTP_RATE_LIMIT' };
597
+ }
598
+ }
599
+ else {
600
+ sources.mcpHttpRateLimit = 'default';
601
+ }
549
602
  const rateLimitRaw = getFlag('rate-limit') ?? process.env.ARC1_RATE_LIMIT;
550
603
  if (rateLimitRaw !== undefined) {
551
604
  const parsed = Number.parseInt(rateLimitRaw, 10);
@@ -581,7 +634,7 @@ export function resolveConfig(args) {
581
634
  config.logLevel = (['debug', 'info', 'warn', 'error'].includes(logLevel) ? logLevel : 'info');
582
635
  const logFormat = resolveStr('log-format', 'ARC1_LOG_FORMAT', 'text', 'logFormat');
583
636
  config.logFormat = (logFormat === 'json' ? 'json' : 'text');
584
- config.minimalErrors = resolveBool('minimal-errors', 'ARC1_MINIMAL_ERRORS', false, 'minimalErrors');
637
+ config.minimalErrors = resolveBool('minimal-errors', 'ARC1_MINIMAL_ERRORS', config.transport === 'http-streamable', 'minimalErrors');
585
638
  // ── Misc ───────────────────────────────────────────────────────────
586
639
  config.verbose = resolveBool('verbose', 'SAP_VERBOSE', false, 'verbose');
587
640
  if (config.verbose)
@@ -612,6 +665,43 @@ export function validateConfig(config) {
612
665
  `SAP does not pad the client number — write it with leading zeros, ` +
613
666
  `e.g. '010' for client 10 or '100' for client 100.`);
614
667
  }
668
+ if (config.multiTargetEndpoints) {
669
+ if (config.transport !== 'http-streamable') {
670
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires SAP_TRANSPORT=http-streamable.');
671
+ }
672
+ if (!config.xsuaaAuth) {
673
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires SAP_XSUAA_AUTH=true.');
674
+ }
675
+ if (config.cacheMode !== 'none') {
676
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires ARC1_CACHE=none.');
677
+ }
678
+ if (config.toolMode !== 'standard') {
679
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires ARC1_TOOL_MODE=standard.');
680
+ }
681
+ if (config.uiMode !== 'off') {
682
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires ARC1_UI=off.');
683
+ }
684
+ if (config.plugins.length > 0) {
685
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true does not support ARC1_PLUGINS in v1.');
686
+ }
687
+ if (config.cookieFile || config.cookieString || config.ppAllowSharedCookies) {
688
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true does not support shared cookies or SAP_PP_ALLOW_SHARED_COOKIES.');
689
+ }
690
+ if (config.btpServiceKey || config.btpServiceKeyFile) {
691
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires BTP CF service bindings, not a BTP service key.');
692
+ }
693
+ if (config.url || config.username || config.password) {
694
+ throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true does not support a direct SAP_URL/SAP_USER/SAP_PASSWORD connection. Use BTP destinations; configure an optional single-target /mcp through SAP_BTP_DESTINATION.');
695
+ }
696
+ if (config.rateLimit === 0) {
697
+ console.error('[warn] ARC1_RATE_LIMIT=0 leaves per-user MCP limiting disabled in multi-target mode. Set a value based on expected active users; 120/min is the recommended beta starting point.');
698
+ }
699
+ }
700
+ // This opt-in is evaluated only by the multi-target runtime. Keep startup nonfatal so an
701
+ // administrator can stage the setting before enabling the feature, but make the no-op visible.
702
+ if (config.multiTargetAllowBasicAuth && !config.multiTargetEndpoints) {
703
+ console.error('[warn] ARC1_MULTI_TARGET_ALLOW_BASIC_AUTH=true has no effect without ARC1_MULTI_TARGET_ENDPOINTS=true — ignoring the shared Basic opt-in.');
704
+ }
615
705
  if (config.oidcIssuer && !config.oidcAudience) {
616
706
  throw new Error('SAP_OIDC_AUDIENCE is required when SAP_OIDC_ISSUER is set — ' +
617
707
  'audience validation prevents token confusion across services (RFC 9700 §2.3)');
@@ -619,8 +709,21 @@ export function validateConfig(config) {
619
709
  if (config.oidcAudience && !config.oidcIssuer) {
620
710
  throw new Error('SAP_OIDC_ISSUER is required when SAP_OIDC_AUDIENCE is set');
621
711
  }
712
+ if (config.oidcScopes?.length && !config.oidcIssuer) {
713
+ throw new Error('SAP_OIDC_ISSUER is required when SAP_OIDC_SCOPES is set — scopes are only advertised in OIDC mode');
714
+ }
715
+ // Inert, not dangerous — both strict-PP enforcement sites gate on ppEnabled. Warn instead
716
+ // of crashing: an mtaext cannot unset a base mta.yaml property, so an override that turns
717
+ // PP off strands SAP_PP_STRICT=true and a hard throw would brick the deployment.
622
718
  if (config.ppStrict && !config.ppEnabled) {
623
- throw new Error('SAP_PP_STRICT=true requires SAP_PP_ENABLED=true — strict mode has no effect without principal propagation enabled');
719
+ console.error('[warn] SAP_PP_STRICT=true has no effect without SAP_PP_ENABLED=true — ignoring strict mode. Set SAP_PP_ENABLED=true if you meant to enable principal propagation.');
720
+ }
721
+ // The mirror-image stranding: an mtaext that turns XSUAA off and adds API keys, but leaves
722
+ // the base SAP_PP_ENABLED/SAP_PP_STRICT stranded, passes validation (API keys satisfy
723
+ // hasHttpAuth) and logs a healthy `per-user` scope while server.ts rejects every API-key
724
+ // call for lacking a JWT. Loud at startup beats 100% of traffic failing silently.
725
+ if (config.ppEnabled && config.ppStrictExplicit && config.ppStrict && config.apiKeys?.length) {
726
+ console.error('[warn] SAP_PP_STRICT=true rejects every non-JWT call, so the configured ARC1_API_KEYS clients cannot call any tool. Set SAP_PP_STRICT=false for mixed PP/API-key operation, or SAP_PP_ENABLED=false to run fully shared.');
624
727
  }
625
728
  const hasHttpAuth = !!(config.apiKeys?.length || config.oidcIssuer || config.xsuaaAuth);
626
729
  if (config.transport === 'http-streamable' && !hasHttpAuth && !config.allowHttpNoAuth) {
@@ -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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"}
@@ -11,6 +11,18 @@ export interface RequestContext {
11
11
  requestId: string;
12
12
  user?: string;
13
13
  tool?: string;
14
+ /** Legacy multi-destination/internal runtime key. Never expose it as a public target. */
15
+ destination?: string;
16
+ /** Public immutable SID/client target for multi-target calls. */
17
+ target?: string;
18
+ /** Effective SAP identity mode for the selected multi-target call. */
19
+ identity?: 'per-user' | 'shared';
20
+ /** Validated inbound W3C `traceparent`, forwarded verbatim to SAP. See trace-context.ts. */
21
+ traceparent?: string;
22
+ /** Validated inbound W3C `tracestate`; only ever set alongside `traceparent`. */
23
+ tracestate?: string;
24
+ /** Calling MCP client/agent (`clientInfo` on stdio, `User-Agent` on HTTP). Audit-only. */
25
+ clientAgent?: string;
14
26
  }
15
27
  export declare const requestContext: AsyncLocalStorage<RequestContext>;
16
28
  /** Generate a monotonically increasing request ID */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,mCAA0C,CAAC;AAItE,qDAAqD;AACrD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACjC,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,mCAA0C,CAAC;AAItE,qDAAqD;AACrD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQrD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAkB,CAAC;AAEtE,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,qDAAqD;AACrD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAoBrD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAkB,CAAC;AAEtE,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,qDAAqD;AACrD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /** Secret-safe startup discovery for destination-discovered multi-target mode. */
2
+ import { type BTPConfig, type Destination } from '@arc-mcp/xsuaa-auth/btp';
3
+ export interface DiscoveredDestination {
4
+ readonly name: string;
5
+ readonly type: string;
6
+ readonly urlState: 'missing' | 'invalid' | 'valid';
7
+ readonly urlFingerprint?: string;
8
+ readonly authentication: string;
9
+ readonly proxyType: string;
10
+ readonly sapSysId?: string;
11
+ readonly sapClient?: string;
12
+ readonly description?: string;
13
+ readonly sapLanguage?: string;
14
+ /** Safe destination behavior setting. Credentials are deliberately never projected. */
15
+ readonly preemptive?: string;
16
+ readonly hasCloudConnectorLocationId: boolean;
17
+ readonly cloudConnectorLocationIdFingerprint?: string;
18
+ readonly arcProperties: Readonly<Record<string, string>>;
19
+ }
20
+ export interface DestinationDiscoveryResult {
21
+ readonly subaccount: readonly DiscoveredDestination[];
22
+ readonly instanceNames: readonly string[];
23
+ readonly scannedCount: number;
24
+ readonly unrelatedCount: number;
25
+ readonly arcAdjacentWithoutMarkerCount: number;
26
+ }
27
+ export declare class DestinationDiscoveryError extends Error {
28
+ readonly code: 'DESTINATION_TOKEN_FAILED' | 'DESTINATION_LIST_FAILED' | 'DESTINATION_RESPONSE_INVALID';
29
+ constructor(code: 'DESTINATION_TOKEN_FAILED' | 'DESTINATION_LIST_FAILED' | 'DESTINATION_RESPONSE_INVALID', message: string);
30
+ }
31
+ export declare function opaqueDestinationValue(value: string): string;
32
+ export declare function canonicalDestinationUrl(value: string): string | undefined;
33
+ export declare function projectMultiTargetDestination(destination: Destination): DiscoveredDestination | undefined;
34
+ /** Fetch one immutable startup snapshot. Raw Destination Service objects do not escape this function. */
35
+ export declare function discoverDestinations(btpConfig: BTPConfig): Promise<DestinationDiscoveryResult>;
36
+ //# sourceMappingURL=destination-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination-discovery.d.ts","sourceRoot":"","sources":["../../src/server/destination-discovery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAIlF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,mCAAmC,CAAC,EAAE,MAAM,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;CAChD;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAEhD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,GAAG,8BAA8B;IADxG,YACW,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,GAAG,8BAA8B,EACtG,OAAO,EAAE,MAAM,EAIhB;CACF;AAeD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAazE;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,qBAAqB,GAAG,SAAS,CAmCzG;AA4BD,yGAAyG;AACzG,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAuBpG"}
@@ -0,0 +1,130 @@
1
+ /** Secret-safe startup discovery for destination-discovered multi-target mode. */
2
+ import { createHash } from 'node:crypto';
3
+ import { DestinationServiceRequestError, listDestinationsAtLevel, } from '@arc-mcp/xsuaa-auth/btp';
4
+ import { authLibLogger } from './logger.js';
5
+ import { isSupportedMultiTargetArcProperty } from './multi-target-destination-config.js';
6
+ export class DestinationDiscoveryError extends Error {
7
+ code;
8
+ constructor(code, message) {
9
+ super(message);
10
+ this.code = code;
11
+ this.name = 'DestinationDiscoveryError';
12
+ }
13
+ }
14
+ function stringProperty(properties, key) {
15
+ const value = properties[key];
16
+ return typeof value === 'string' ? value : undefined;
17
+ }
18
+ /** Preserve an explicitly supplied safe scalar so validation can fail closed on malformed values. */
19
+ function projectedScalar(properties, key) {
20
+ const value = properties[key];
21
+ if (value === undefined)
22
+ return undefined;
23
+ if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number')
24
+ return String(value);
25
+ return '';
26
+ }
27
+ export function opaqueDestinationValue(value) {
28
+ return createHash('sha256').update(value).digest('hex');
29
+ }
30
+ export function canonicalDestinationUrl(value) {
31
+ try {
32
+ const url = new URL(value);
33
+ if (url.protocol !== 'http:' && url.protocol !== 'https:')
34
+ return undefined;
35
+ url.hash = '';
36
+ url.username = '';
37
+ url.password = '';
38
+ url.hostname = url.hostname.toLowerCase();
39
+ if (url.pathname !== '/')
40
+ url.pathname = url.pathname.replace(/\/+$/, '');
41
+ return url.toString();
42
+ }
43
+ catch {
44
+ return undefined;
45
+ }
46
+ }
47
+ export function projectMultiTargetDestination(destination) {
48
+ const properties = destination.originalProperties;
49
+ if (!properties)
50
+ return undefined;
51
+ const arcProperties = {};
52
+ for (const [key, value] of Object.entries(properties)) {
53
+ if (!key.toLowerCase().startsWith('arc1.'))
54
+ continue;
55
+ // Supported values are needed by the validator. Unknown/wrong-case keys are
56
+ // retained for fail-closed diagnostics, but their untrusted values are discarded.
57
+ arcProperties[key] = isSupportedMultiTargetArcProperty(key)
58
+ ? typeof value === 'string'
59
+ ? value
60
+ : String(value ?? '')
61
+ : '';
62
+ }
63
+ if (Object.keys(arcProperties).length === 0)
64
+ return undefined;
65
+ const rawUrl = destination.URL ?? stringProperty(properties, 'URL') ?? '';
66
+ const canonicalUrl = rawUrl ? canonicalDestinationUrl(rawUrl) : undefined;
67
+ const locationId = destination.CloudConnectorLocationId ?? stringProperty(properties, 'CloudConnectorLocationId');
68
+ return Object.freeze({
69
+ name: destination.Name,
70
+ type: destination.Type ?? stringProperty(properties, 'Type') ?? '',
71
+ urlState: rawUrl ? (canonicalUrl ? 'valid' : 'invalid') : 'missing',
72
+ urlFingerprint: canonicalUrl ? opaqueDestinationValue(canonicalUrl) : undefined,
73
+ authentication: destination.Authentication,
74
+ proxyType: destination.ProxyType,
75
+ sapSysId: stringProperty(properties, 'sap-sysid'),
76
+ sapClient: destination['sap-client'] ?? stringProperty(properties, 'sap-client'),
77
+ description: stringProperty(properties, 'Description'),
78
+ sapLanguage: stringProperty(properties, 'sap-language'),
79
+ preemptive: projectedScalar(properties, 'Preemptive'),
80
+ hasCloudConnectorLocationId: !!locationId,
81
+ cloudConnectorLocationIdFingerprint: locationId ? opaqueDestinationValue(locationId) : undefined,
82
+ arcProperties: Object.freeze(arcProperties),
83
+ });
84
+ }
85
+ function adjacentWithoutMarker(destination) {
86
+ const properties = destination.originalProperties;
87
+ if (!properties)
88
+ return false;
89
+ const hasSapIdentity = properties['sap-sysid'] !== undefined || properties['sap-client'] !== undefined;
90
+ const hasArcProperty = Object.keys(properties).some((key) => key.toLowerCase().startsWith('arc1.'));
91
+ return hasSapIdentity && !hasArcProperty;
92
+ }
93
+ function classifyError(error) {
94
+ if (error instanceof DestinationServiceRequestError) {
95
+ if (error.operation === 'token') {
96
+ return new DestinationDiscoveryError('DESTINATION_TOKEN_FAILED', 'Destination Service authentication failed; check the bound destination service credentials.');
97
+ }
98
+ return new DestinationDiscoveryError(error.status && error.status >= 400 ? 'DESTINATION_LIST_FAILED' : 'DESTINATION_RESPONSE_INVALID', error.status
99
+ ? `Destination Service discovery returned HTTP ${error.status}.`
100
+ : 'Destination Service discovery failed.');
101
+ }
102
+ return new DestinationDiscoveryError('DESTINATION_LIST_FAILED', 'Destination Service discovery failed.');
103
+ }
104
+ /** Fetch one immutable startup snapshot. Raw Destination Service objects do not escape this function. */
105
+ export async function discoverDestinations(btpConfig) {
106
+ try {
107
+ const [subaccountRaw, instanceRaw] = await Promise.all([
108
+ listDestinationsAtLevel(btpConfig, 'subaccount', authLibLogger),
109
+ listDestinationsAtLevel(btpConfig, 'instance', authLibLogger),
110
+ ]);
111
+ const subaccount = subaccountRaw
112
+ .map(projectMultiTargetDestination)
113
+ .filter((entry) => !!entry);
114
+ const instanceNames = instanceRaw.map((entry) => entry.Name);
115
+ const arcAdjacentWithoutMarkerCount = subaccountRaw.filter(adjacentWithoutMarker).length;
116
+ const scannedCount = subaccountRaw.length;
117
+ const unrelatedCount = Math.max(0, scannedCount - subaccount.length - arcAdjacentWithoutMarkerCount);
118
+ return Object.freeze({
119
+ subaccount: Object.freeze(subaccount),
120
+ instanceNames: Object.freeze(instanceNames),
121
+ scannedCount,
122
+ unrelatedCount,
123
+ arcAdjacentWithoutMarkerCount,
124
+ });
125
+ }
126
+ catch (error) {
127
+ throw classifyError(error);
128
+ }
129
+ }
130
+ //# sourceMappingURL=destination-discovery.js.map