mcp-creatio 0.6.2 → 0.6.4

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 (353) hide show
  1. package/README.md +280 -156
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +27 -10
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config-builder.d.ts +8 -0
  6. package/dist/config-builder.d.ts.map +1 -1
  7. package/dist/config-builder.js +147 -43
  8. package/dist/config-builder.js.map +1 -1
  9. package/dist/consts.d.ts.map +1 -1
  10. package/dist/consts.js +2 -1
  11. package/dist/consts.js.map +1 -1
  12. package/dist/creatio/auth/auth-manager.d.ts.map +1 -1
  13. package/dist/creatio/auth/auth-manager.js +5 -2
  14. package/dist/creatio/auth/auth-manager.js.map +1 -1
  15. package/dist/creatio/auth/auth.d.ts +4 -31
  16. package/dist/creatio/auth/auth.d.ts.map +1 -1
  17. package/dist/creatio/auth/auth.js +20 -26
  18. package/dist/creatio/auth/auth.js.map +1 -1
  19. package/dist/creatio/auth/constants.d.ts +14 -0
  20. package/dist/creatio/auth/constants.d.ts.map +1 -0
  21. package/dist/creatio/auth/constants.js +20 -0
  22. package/dist/creatio/auth/constants.js.map +1 -0
  23. package/dist/creatio/auth/contracts.d.ts +15 -0
  24. package/dist/creatio/auth/contracts.d.ts.map +1 -0
  25. package/dist/creatio/auth/contracts.js +3 -0
  26. package/dist/creatio/auth/contracts.js.map +1 -0
  27. package/dist/creatio/auth/headers.d.ts +3 -0
  28. package/dist/creatio/auth/headers.d.ts.map +1 -0
  29. package/dist/creatio/auth/headers.js +15 -0
  30. package/dist/creatio/auth/headers.js.map +1 -0
  31. package/dist/creatio/auth/identity.d.ts +8 -0
  32. package/dist/creatio/auth/identity.d.ts.map +1 -0
  33. package/dist/creatio/auth/identity.js +18 -0
  34. package/dist/creatio/auth/identity.js.map +1 -0
  35. package/dist/creatio/auth/index.d.ts +4 -3
  36. package/dist/creatio/auth/index.d.ts.map +1 -1
  37. package/dist/creatio/auth/index.js +5 -3
  38. package/dist/creatio/auth/index.js.map +1 -1
  39. package/dist/creatio/auth/providers/base-oauth2-provider.d.ts +13 -7
  40. package/dist/creatio/auth/providers/base-oauth2-provider.d.ts.map +1 -1
  41. package/dist/creatio/auth/providers/base-oauth2-provider.js +29 -19
  42. package/dist/creatio/auth/providers/base-oauth2-provider.js.map +1 -1
  43. package/dist/creatio/auth/providers/base-provider.js +1 -1
  44. package/dist/creatio/auth/providers/base-provider.js.map +1 -1
  45. package/dist/creatio/auth/providers/broker-provider.d.ts +20 -0
  46. package/dist/creatio/auth/providers/broker-provider.d.ts.map +1 -0
  47. package/dist/creatio/auth/providers/broker-provider.js +72 -0
  48. package/dist/creatio/auth/providers/broker-provider.js.map +1 -0
  49. package/dist/creatio/auth/providers/creatio-oauth-client.d.ts +27 -0
  50. package/dist/creatio/auth/providers/creatio-oauth-client.d.ts.map +1 -0
  51. package/dist/creatio/auth/providers/creatio-oauth-client.js +122 -0
  52. package/dist/creatio/auth/providers/creatio-oauth-client.js.map +1 -0
  53. package/dist/creatio/auth/providers/index.d.ts +3 -1
  54. package/dist/creatio/auth/providers/index.d.ts.map +1 -1
  55. package/dist/creatio/auth/providers/index.js +3 -1
  56. package/dist/creatio/auth/providers/index.js.map +1 -1
  57. package/dist/creatio/auth/providers/oauth2-bearer-provider.d.ts +17 -0
  58. package/dist/creatio/auth/providers/oauth2-bearer-provider.d.ts.map +1 -0
  59. package/dist/creatio/auth/providers/oauth2-bearer-provider.js +33 -0
  60. package/dist/creatio/auth/providers/oauth2-bearer-provider.js.map +1 -0
  61. package/dist/creatio/auth/providers/oauth2-provider.d.ts +2 -2
  62. package/dist/creatio/auth/providers/oauth2-provider.d.ts.map +1 -1
  63. package/dist/creatio/auth/providers/oauth2-provider.js +4 -9
  64. package/dist/creatio/auth/providers/oauth2-provider.js.map +1 -1
  65. package/dist/creatio/auth/providers/type.d.ts +20 -1
  66. package/dist/creatio/auth/providers/type.d.ts.map +1 -1
  67. package/dist/creatio/auth/providers/type.js +22 -2
  68. package/dist/creatio/auth/providers/type.js.map +1 -1
  69. package/dist/creatio/client-config.d.ts +26 -5
  70. package/dist/creatio/client-config.d.ts.map +1 -1
  71. package/dist/creatio/engines/admin-operation-engine.d.ts +1 -1
  72. package/dist/creatio/engines/admin-operation-engine.d.ts.map +1 -1
  73. package/dist/creatio/engines/admin-operation-engine.js +3 -3
  74. package/dist/creatio/engines/admin-operation-engine.js.map +1 -1
  75. package/dist/creatio/engines/configuration-engine.d.ts +1 -1
  76. package/dist/creatio/engines/configuration-engine.d.ts.map +1 -1
  77. package/dist/creatio/engines/configuration-engine.js +3 -3
  78. package/dist/creatio/engines/configuration-engine.js.map +1 -1
  79. package/dist/creatio/engines/crud-engine.d.ts +1 -1
  80. package/dist/creatio/engines/crud-engine.d.ts.map +1 -1
  81. package/dist/creatio/engines/crud-engine.js +4 -4
  82. package/dist/creatio/engines/crud-engine.js.map +1 -1
  83. package/dist/creatio/engines/engine-manager.d.ts +4 -2
  84. package/dist/creatio/engines/engine-manager.d.ts.map +1 -1
  85. package/dist/creatio/engines/engine-manager.js +9 -10
  86. package/dist/creatio/engines/engine-manager.js.map +1 -1
  87. package/dist/creatio/engines/engine.d.ts.map +1 -1
  88. package/dist/creatio/engines/engine.js +12 -1
  89. package/dist/creatio/engines/engine.js.map +1 -1
  90. package/dist/creatio/engines/feature-engine.d.ts +1 -1
  91. package/dist/creatio/engines/feature-engine.d.ts.map +1 -1
  92. package/dist/creatio/engines/feature-engine.js +3 -3
  93. package/dist/creatio/engines/feature-engine.js.map +1 -1
  94. package/dist/creatio/engines/process-engine.d.ts +1 -1
  95. package/dist/creatio/engines/process-engine.d.ts.map +1 -1
  96. package/dist/creatio/engines/process-engine.js +3 -3
  97. package/dist/creatio/engines/process-engine.js.map +1 -1
  98. package/dist/creatio/engines/sys-settings-engine.d.ts +1 -1
  99. package/dist/creatio/engines/sys-settings-engine.d.ts.map +1 -1
  100. package/dist/creatio/engines/sys-settings-engine.js +3 -3
  101. package/dist/creatio/engines/sys-settings-engine.js.map +1 -1
  102. package/dist/creatio/engines/user-engine.d.ts +1 -1
  103. package/dist/creatio/engines/user-engine.d.ts.map +1 -1
  104. package/dist/creatio/engines/user-engine.js +3 -3
  105. package/dist/creatio/engines/user-engine.js.map +1 -1
  106. package/dist/creatio/provider-context.d.ts +3 -0
  107. package/dist/creatio/provider-context.d.ts.map +1 -1
  108. package/dist/creatio/services/client-cache-hash-client.d.ts +22 -0
  109. package/dist/creatio/services/client-cache-hash-client.d.ts.map +1 -0
  110. package/dist/creatio/services/client-cache-hash-client.js +56 -0
  111. package/dist/creatio/services/client-cache-hash-client.js.map +1 -0
  112. package/dist/creatio/services/creatio-service-context.d.ts +6 -1
  113. package/dist/creatio/services/creatio-service-context.d.ts.map +1 -1
  114. package/dist/creatio/services/creatio-service-context.js +15 -1
  115. package/dist/creatio/services/creatio-service-context.js.map +1 -1
  116. package/dist/creatio/services/crud-provider-factory.d.ts +4 -0
  117. package/dist/creatio/services/crud-provider-factory.d.ts.map +1 -1
  118. package/dist/creatio/services/crud-provider-factory.js +1 -1
  119. package/dist/creatio/services/crud-provider-factory.js.map +1 -1
  120. package/dist/creatio/services/dataservice/data-service-column-values.d.ts.map +1 -1
  121. package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts +5 -3
  122. package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts.map +1 -1
  123. package/dist/creatio/services/dataservice/data-service-crud-provider.js +8 -6
  124. package/dist/creatio/services/dataservice/data-service-crud-provider.js.map +1 -1
  125. package/dist/creatio/services/dataservice/data-service-filter-translator.d.ts.map +1 -1
  126. package/dist/creatio/services/dataservice/data-service-filter-translator.js +7 -2
  127. package/dist/creatio/services/dataservice/data-service-filter-translator.js.map +1 -1
  128. package/dist/creatio/services/dataservice/data-service-query-builder.d.ts.map +1 -1
  129. package/dist/creatio/services/dataservice/data-service-query-builder.js.map +1 -1
  130. package/dist/creatio/services/dataservice/data-service-schema.d.ts +6 -4
  131. package/dist/creatio/services/dataservice/data-service-schema.d.ts.map +1 -1
  132. package/dist/creatio/services/dataservice/data-service-schema.js +29 -18
  133. package/dist/creatio/services/dataservice/data-service-schema.js.map +1 -1
  134. package/dist/creatio/services/dataservice/data-service-transport.d.ts +4 -1
  135. package/dist/creatio/services/dataservice/data-service-transport.d.ts.map +1 -1
  136. package/dist/creatio/services/dataservice/data-service-transport.js +8 -3
  137. package/dist/creatio/services/dataservice/data-service-transport.js.map +1 -1
  138. package/dist/creatio/services/dataservice/data-service-types.d.ts +0 -19
  139. package/dist/creatio/services/dataservice/data-service-types.d.ts.map +1 -1
  140. package/dist/creatio/services/dataservice/data-service-value-type.d.ts +2 -1
  141. package/dist/creatio/services/dataservice/data-service-value-type.d.ts.map +1 -1
  142. package/dist/creatio/services/dataservice/data-service-value-type.js +20 -16
  143. package/dist/creatio/services/dataservice/data-service-value-type.js.map +1 -1
  144. package/dist/creatio/services/http-client.d.ts +13 -0
  145. package/dist/creatio/services/http-client.d.ts.map +1 -1
  146. package/dist/creatio/services/http-client.js +26 -2
  147. package/dist/creatio/services/http-client.js.map +1 -1
  148. package/dist/creatio/services/identifiers.d.ts +10 -0
  149. package/dist/creatio/services/identifiers.d.ts.map +1 -0
  150. package/dist/creatio/services/identifiers.js +20 -0
  151. package/dist/creatio/services/identifiers.js.map +1 -0
  152. package/dist/creatio/services/index.d.ts +2 -0
  153. package/dist/creatio/services/index.d.ts.map +1 -1
  154. package/dist/creatio/services/index.js +2 -0
  155. package/dist/creatio/services/index.js.map +1 -1
  156. package/dist/creatio/services/odata/metadata-store.d.ts +16 -3
  157. package/dist/creatio/services/odata/metadata-store.d.ts.map +1 -1
  158. package/dist/creatio/services/odata/metadata-store.js +65 -38
  159. package/dist/creatio/services/odata/metadata-store.js.map +1 -1
  160. package/dist/creatio/services/odata/odata-crud-provider.d.ts.map +1 -1
  161. package/dist/creatio/services/odata/odata-crud-provider.js +10 -25
  162. package/dist/creatio/services/odata/odata-crud-provider.js.map +1 -1
  163. package/dist/creatio/services/odata/odata-query-translator.d.ts +4 -5
  164. package/dist/creatio/services/odata/odata-query-translator.d.ts.map +1 -1
  165. package/dist/creatio/services/odata/odata-query-translator.js +32 -20
  166. package/dist/creatio/services/odata/odata-query-translator.js.map +1 -1
  167. package/dist/creatio/services/schema-freshness-gate.d.ts +26 -0
  168. package/dist/creatio/services/schema-freshness-gate.d.ts.map +1 -0
  169. package/dist/creatio/services/schema-freshness-gate.js +58 -0
  170. package/dist/creatio/services/schema-freshness-gate.js.map +1 -0
  171. package/dist/creatio/services/user-info-provider.d.ts.map +1 -1
  172. package/dist/creatio/services/user-info-provider.js +2 -2
  173. package/dist/creatio/services/user-info-provider.js.map +1 -1
  174. package/dist/index.js +35 -4
  175. package/dist/index.js.map +1 -1
  176. package/dist/log.d.ts +1 -1
  177. package/dist/log.d.ts.map +1 -1
  178. package/dist/log.js +6 -2
  179. package/dist/log.js.map +1 -1
  180. package/dist/server/bearer/base-url-guard.d.ts +20 -0
  181. package/dist/server/bearer/base-url-guard.d.ts.map +1 -0
  182. package/dist/server/bearer/base-url-guard.js +55 -0
  183. package/dist/server/bearer/base-url-guard.js.map +1 -0
  184. package/dist/server/bearer/bearer-edge.d.ts +42 -0
  185. package/dist/server/bearer/bearer-edge.d.ts.map +1 -0
  186. package/dist/server/bearer/bearer-edge.js +122 -0
  187. package/dist/server/bearer/bearer-edge.js.map +1 -0
  188. package/dist/server/bearer/bearer-token.d.ts +27 -0
  189. package/dist/server/bearer/bearer-token.d.ts.map +1 -0
  190. package/dist/server/bearer/bearer-token.js +50 -0
  191. package/dist/server/bearer/bearer-token.js.map +1 -0
  192. package/dist/server/bearer/index.d.ts +3 -0
  193. package/dist/server/bearer/index.d.ts.map +1 -0
  194. package/dist/server/bearer/index.js +19 -0
  195. package/dist/server/bearer/index.js.map +1 -0
  196. package/dist/server/http/auth-edge.d.ts +26 -0
  197. package/dist/server/http/auth-edge.d.ts.map +1 -0
  198. package/dist/server/http/auth-edge.js +75 -0
  199. package/dist/server/http/auth-edge.js.map +1 -0
  200. package/dist/server/http/broker-handlers.d.ts +45 -0
  201. package/dist/server/http/broker-handlers.d.ts.map +1 -0
  202. package/dist/server/http/broker-handlers.js +224 -0
  203. package/dist/server/http/broker-handlers.js.map +1 -0
  204. package/dist/server/http/{httpServer.d.ts → http-server.d.ts} +5 -13
  205. package/dist/server/http/http-server.d.ts.map +1 -0
  206. package/dist/server/http/{httpServer.js → http-server.js} +19 -53
  207. package/dist/server/http/http-server.js.map +1 -0
  208. package/dist/server/http/index.d.ts +1 -3
  209. package/dist/server/http/index.d.ts.map +1 -1
  210. package/dist/server/http/index.js +1 -3
  211. package/dist/server/http/index.js.map +1 -1
  212. package/dist/server/http/mcp-handlers.d.ts.map +1 -1
  213. package/dist/server/http/mcp-handlers.js +16 -3
  214. package/dist/server/http/mcp-handlers.js.map +1 -1
  215. package/dist/server/http/middleware.d.ts +3 -4
  216. package/dist/server/http/middleware.d.ts.map +1 -1
  217. package/dist/server/http/middleware.js +33 -23
  218. package/dist/server/http/middleware.js.map +1 -1
  219. package/dist/server/http/public-origin.d.ts +10 -0
  220. package/dist/server/http/public-origin.d.ts.map +1 -0
  221. package/dist/server/http/public-origin.js +19 -0
  222. package/dist/server/http/public-origin.js.map +1 -0
  223. package/dist/server/http/rate-limiter.d.ts +1 -1
  224. package/dist/server/http/rate-limiter.d.ts.map +1 -1
  225. package/dist/server/http/rate-limiter.js +11 -11
  226. package/dist/server/http/rate-limiter.js.map +1 -1
  227. package/dist/server/http-agent.d.ts +9 -0
  228. package/dist/server/http-agent.d.ts.map +1 -0
  229. package/dist/server/http-agent.js +35 -0
  230. package/dist/server/http-agent.js.map +1 -0
  231. package/dist/server/index.d.ts +2 -0
  232. package/dist/server/index.d.ts.map +1 -1
  233. package/dist/server/index.js +2 -0
  234. package/dist/server/index.js.map +1 -1
  235. package/dist/server/keepalive.d.ts +26 -0
  236. package/dist/server/keepalive.d.ts.map +1 -0
  237. package/dist/server/keepalive.js +64 -0
  238. package/dist/server/keepalive.js.map +1 -0
  239. package/dist/server/mcp/creatio-rest.d.ts +6 -0
  240. package/dist/server/mcp/creatio-rest.d.ts.map +1 -1
  241. package/dist/server/mcp/creatio-rest.js +21 -3
  242. package/dist/server/mcp/creatio-rest.js.map +1 -1
  243. package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts +1 -1
  244. package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts.map +1 -1
  245. package/dist/server/mcp/crtmcp/crt-mcp-client.js +16 -13
  246. package/dist/server/mcp/crtmcp/crt-mcp-client.js.map +1 -1
  247. package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts +2 -2
  248. package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts.map +1 -1
  249. package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js +17 -17
  250. package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js.map +1 -1
  251. package/dist/server/mcp/dataforge/dataforge-client.d.ts +12 -12
  252. package/dist/server/mcp/dataforge/dataforge-client.d.ts.map +1 -1
  253. package/dist/server/mcp/dataforge/dataforge-client.js +40 -47
  254. package/dist/server/mcp/dataforge/dataforge-client.js.map +1 -1
  255. package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts +2 -2
  256. package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts.map +1 -1
  257. package/dist/server/mcp/dataforge/dataforge-tool-preparer.js +9 -9
  258. package/dist/server/mcp/dataforge/dataforge-tool-preparer.js.map +1 -1
  259. package/dist/server/mcp/filters.d.ts.map +1 -1
  260. package/dist/server/mcp/filters.js +4 -1
  261. package/dist/server/mcp/filters.js.map +1 -1
  262. package/dist/server/mcp/globalsearch/globalsearch-client.d.ts +4 -4
  263. package/dist/server/mcp/globalsearch/globalsearch-client.d.ts.map +1 -1
  264. package/dist/server/mcp/globalsearch/globalsearch-client.js +39 -50
  265. package/dist/server/mcp/globalsearch/globalsearch-client.js.map +1 -1
  266. package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts +1 -1
  267. package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts.map +1 -1
  268. package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js +1 -1
  269. package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js.map +1 -1
  270. package/dist/server/mcp/server.d.ts +35 -8
  271. package/dist/server/mcp/server.d.ts.map +1 -1
  272. package/dist/server/mcp/server.js +113 -45
  273. package/dist/server/mcp/server.js.map +1 -1
  274. package/dist/server/mcp/tools-data.d.ts +2 -2
  275. package/dist/server/mcp/tools-data.d.ts.map +1 -1
  276. package/dist/server/mcp/tools-data.js +1 -1
  277. package/dist/server/mcp/tools-data.js.map +1 -1
  278. package/dist/server/oauth/oauth-server.d.ts +41 -10
  279. package/dist/server/oauth/oauth-server.d.ts.map +1 -1
  280. package/dist/server/oauth/oauth-server.js +82 -48
  281. package/dist/server/oauth/oauth-server.js.map +1 -1
  282. package/dist/server/oauth/storage.d.ts +42 -5
  283. package/dist/server/oauth/storage.d.ts.map +1 -1
  284. package/dist/server/oauth/storage.js +81 -18
  285. package/dist/server/oauth/storage.js.map +1 -1
  286. package/dist/server/oauth/token-manager.d.ts +21 -4
  287. package/dist/server/oauth/token-manager.d.ts.map +1 -1
  288. package/dist/server/oauth/token-manager.js +18 -19
  289. package/dist/server/oauth/token-manager.js.map +1 -1
  290. package/dist/server/oauth/types.d.ts +0 -12
  291. package/dist/server/oauth/types.d.ts.map +1 -1
  292. package/dist/server/oauth/validators.d.ts.map +1 -1
  293. package/dist/server/oauth/validators.js +14 -5
  294. package/dist/server/oauth/validators.js.map +1 -1
  295. package/dist/sessions/index.d.ts +1 -1
  296. package/dist/sessions/index.d.ts.map +1 -1
  297. package/dist/sessions/index.js +1 -1
  298. package/dist/sessions/index.js.map +1 -1
  299. package/dist/sessions/redis-token-store.d.ts +22 -0
  300. package/dist/sessions/redis-token-store.d.ts.map +1 -0
  301. package/dist/sessions/redis-token-store.js +70 -0
  302. package/dist/sessions/redis-token-store.js.map +1 -0
  303. package/dist/sessions/session-context.d.ts +21 -40
  304. package/dist/sessions/session-context.d.ts.map +1 -1
  305. package/dist/sessions/session-context.js +25 -105
  306. package/dist/sessions/session-context.js.map +1 -1
  307. package/dist/sessions/token-crypto.d.ts +8 -0
  308. package/dist/sessions/token-crypto.d.ts.map +1 -0
  309. package/dist/sessions/token-crypto.js +43 -0
  310. package/dist/sessions/token-crypto.js.map +1 -0
  311. package/dist/sessions/token-store.d.ts +42 -0
  312. package/dist/sessions/token-store.d.ts.map +1 -0
  313. package/dist/sessions/token-store.js +66 -0
  314. package/dist/sessions/token-store.js.map +1 -0
  315. package/dist/utils/context.d.ts +12 -0
  316. package/dist/utils/context.d.ts.map +1 -1
  317. package/dist/utils/context.js +16 -0
  318. package/dist/utils/context.js.map +1 -1
  319. package/dist/utils/env-aliases.d.ts +9 -0
  320. package/dist/utils/env-aliases.d.ts.map +1 -0
  321. package/dist/utils/env-aliases.js +61 -0
  322. package/dist/utils/env-aliases.js.map +1 -0
  323. package/dist/utils/env.d.ts +5 -0
  324. package/dist/utils/env.d.ts.map +1 -1
  325. package/dist/utils/env.js +10 -1
  326. package/dist/utils/env.js.map +1 -1
  327. package/dist/utils/index.d.ts +1 -0
  328. package/dist/utils/index.d.ts.map +1 -1
  329. package/dist/utils/index.js +1 -0
  330. package/dist/utils/index.js.map +1 -1
  331. package/dist/utils/redact.d.ts +25 -0
  332. package/dist/utils/redact.d.ts.map +1 -0
  333. package/dist/utils/redact.js +64 -0
  334. package/dist/utils/redact.js.map +1 -0
  335. package/package.json +78 -76
  336. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +0 -21
  337. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +0 -1
  338. package/dist/creatio/auth/providers/oauth2-code-provider.js +0 -251
  339. package/dist/creatio/auth/providers/oauth2-code-provider.js.map +0 -1
  340. package/dist/server/http/creatio-oauth-handlers.d.ts +0 -13
  341. package/dist/server/http/creatio-oauth-handlers.d.ts.map +0 -1
  342. package/dist/server/http/creatio-oauth-handlers.js +0 -160
  343. package/dist/server/http/creatio-oauth-handlers.js.map +0 -1
  344. package/dist/server/http/httpServer.d.ts.map +0 -1
  345. package/dist/server/http/httpServer.js.map +0 -1
  346. package/dist/server/http/mcp-oauth-handlers.d.ts +0 -11
  347. package/dist/server/http/mcp-oauth-handlers.d.ts.map +0 -1
  348. package/dist/server/http/mcp-oauth-handlers.js +0 -118
  349. package/dist/server/http/mcp-oauth-handlers.js.map +0 -1
  350. package/dist/sessions/token-refresh-scheduler.d.ts +0 -16
  351. package/dist/sessions/token-refresh-scheduler.d.ts.map +0 -1
  352. package/dist/sessions/token-refresh-scheduler.js +0 -66
  353. package/dist/sessions/token-refresh-scheduler.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"odata-crud-provider.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-crud-provider.ts"],"names":[],"mappings":"AACA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,qBAAa,iBAAkB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,SAAgB,IAAI,mBAAmB;IAEvC,SAAgB,YAAY,EAAE,gBAAgB,CAAqC;gBAGlF,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,kBAAkB,EACjC,UAAU,uBAA6B;IAOxC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAUjB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI7D,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAqBxC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAyC3C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB;IAqB7C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB;CAmBpD"}
1
+ {"version":3,"file":"odata-crud-provider.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-crud-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,qBAAa,iBAAkB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,SAAgB,IAAI,mBAAmB;IAEvC,SAAgB,YAAY,EAAE,gBAAgB,CAAqC;gBAGlF,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,kBAAkB,EACjC,UAAU,uBAA6B;IAOxC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAQjB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI7D,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAqBxC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC3C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB;IAqB7C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB;CAmBpD"}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ODataCrudProvider = void 0;
7
- const log_1 = __importDefault(require("../../../log"));
8
4
  const entity_name_1 = require("../entity-name");
5
+ const identifiers_1 = require("../identifiers");
9
6
  const odata_query_translator_1 = require("./odata-query-translator");
10
7
  const odata_routes_1 = require("./odata-routes");
11
8
  class ODataCrudProvider {
@@ -31,9 +28,8 @@ class ODataCrudProvider {
31
28
  return `${(0, odata_routes_1.odataRoot)(this._client.normalizedBaseUrl)}/${(0, entity_name_1.assertEntityName)(entity)}`;
32
29
  }
33
30
  _formatEntityKey(id) {
34
- const GUID_PATTERN = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
35
- const NUMERIC_PATTERN = /^\d+$/;
36
- if (NUMERIC_PATTERN.test(id) || GUID_PATTERN.test(id)) {
31
+ // A numeric or GUID key is a bare literal; any other string key is quoted (quotes doubled).
32
+ if (/^\d+$/.test(id) || identifiers_1.GUID_RE.test(id)) {
37
33
  return id;
38
34
  }
39
35
  return `'${id.replace(/'/g, "''")}'`;
@@ -60,20 +56,20 @@ class ODataCrudProvider {
60
56
  }
61
57
  async read(query) {
62
58
  const { entity, count } = query;
63
- const startTime = Date.now();
64
59
  const queryParams = this._translator.buildQueryParams(query);
65
60
  const url = this._buildEntityUrl(entity) + this._buildQueryString(queryParams);
66
- const headers = await this._client.getJsonHeaders();
67
- try {
68
- const body = await this._client.fetchJson(url, async () => ({ headers }));
61
+ return this._client.request('read', url, async () => {
62
+ const headers = await this._client.getJsonHeaders();
63
+ return this._client.fetchWithAuth(url, async () => ({ headers }));
64
+ }, async (response, duration) => {
65
+ const body = await response.json().catch(() => ({}));
69
66
  const value = this._extractODataValue(body);
70
67
  const items = Array.isArray(value) ? value : value != null ? [value] : [];
71
- const duration = Date.now() - startTime;
72
68
  // `@odata.count` is the server-side total of all matching records (ignores $top/$skip).
73
69
  const total = body && typeof body === 'object' && '@odata.count' in body
74
70
  ? Number(body['@odata.count'])
75
71
  : undefined;
76
- log_1.default.info('creatio.crud.read.success', {
72
+ this._client.logSuccess('read', response.status, duration, {
77
73
  entity,
78
74
  select: query.columns?.join(','),
79
75
  expand: query.odata?.expand?.join(','),
@@ -82,21 +78,10 @@ class ODataCrudProvider {
82
78
  count,
83
79
  resultCount: items.length,
84
80
  total,
85
- duration,
86
81
  });
87
82
  // Surface the server-side total only when a count was requested and present.
88
83
  return count && total !== undefined ? { items, totalCount: total } : { items };
89
- }
90
- catch (error) {
91
- const duration = Date.now() - startTime;
92
- log_1.default.error('creatio.crud.read.error', {
93
- entity,
94
- url,
95
- error: String(error?.message ?? error),
96
- duration,
97
- });
98
- throw error;
99
- }
84
+ }, { errorPrefix: 'creatio_read_failed', logContext: { entity } });
100
85
  }
101
86
  async update({ entity, id, data }) {
102
87
  const url = `${this._buildEntityUrl(entity)}(${this._formatEntityKey(id)})`;
@@ -1 +1 @@
1
- {"version":3,"file":"odata-crud-provider.js","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-crud-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odata-crud-provider.js","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-crud-provider.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,9 @@ import { FilterNode, ReadQuery } from '../../contracts';
12
12
  * embedded quotes doubled.
13
13
  */
14
14
  export declare class ODataQueryTranslator {
15
- private static readonly GUID;
16
- private _isGuid;
15
+ private static readonly SAFE_PATH;
17
16
  private _isIdish;
18
- private static readonly ISO_DATETIME;
17
+ private _assertPath;
19
18
  private _escapeStr;
20
19
  /** Render a literal. `temporal` allows ISO date/datetime strings to be emitted unquoted
21
20
  * (comparison operators); the string functions (contains/…) always quote. */
@@ -26,11 +25,11 @@ export declare class ODataQueryTranslator {
26
25
  private _condition;
27
26
  private _inCondition;
28
27
  private _node;
29
- /** Render a {@link FilterNode} into an OData `$filter` expression (or undefined if empty). */
30
- translateFilter(node: FilterNode | undefined): string | undefined;
31
28
  /** Combine the structured filter with an optional raw `$filter` escape hatch (AND-joined). */
32
29
  private _resolveFilter;
33
30
  private _orderBy;
31
+ /** Render a {@link FilterNode} into an OData `$filter` expression (or undefined if empty). */
32
+ translateFilter(node: FilterNode | undefined): string | undefined;
34
33
  /** Build the encoded OData query-string params for a read. */
35
34
  buildQueryParams(query: ReadQuery): string[];
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"odata-query-translator.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-query-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5F;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CACqD;IAEjF,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAC2C;IAE/E,OAAO,CAAC,UAAU;IAIlB;kFAC8E;IAC9E,OAAO,CAAC,WAAW;IA0BnB;iFAC6E;IAC7E,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,KAAK;IAiBb,8FAA8F;IACvF,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAIxE,8FAA8F;IAC9F,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IAOhB,8DAA8D;IACvD,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE;CA4BnD"}
1
+ {"version":3,"file":"odata-query-translator.d.ts","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-query-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5F;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;IAKhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAyD;IAI1F,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB;kFAC8E;IAC9E,OAAO,CAAC,WAAW;IA4BnB;iFAC6E;IAC7E,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,KAAK;IAmBb,8FAA8F;IAC9F,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IAOhB,8FAA8F;IACvF,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAIxE,8DAA8D;IACvD,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE;CA6BnD"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ODataQueryTranslator = void 0;
4
+ const identifiers_1 = require("../identifiers");
4
5
  const lookup_path_1 = require("../lookup-path");
5
6
  /**
6
7
  * Projects a neutral {@link ReadQuery} onto OData query-string parameters. This is the
@@ -15,17 +16,22 @@ const lookup_path_1 = require("../lookup-path");
15
16
  * embedded quotes doubled.
16
17
  */
17
18
  class ODataQueryTranslator {
18
- static GUID = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
19
- _isGuid(value) {
20
- return typeof value === 'string' && ODataQueryTranslator.GUID.test(value);
21
- }
19
+ // A column path is an identifier, optionally navigation-dotted with `/` (e.g. `Contact/Name`).
20
+ // Filter/select/orderby field names are concatenated into the `$filter`/`$select`/`$orderby`
21
+ // expressions, so reject anything else to deny OData expression injection via a crafted column
22
+ // name (CWE-943) — filter *values* are already escaped/typed; this guards the *identifiers*.
23
+ static SAFE_PATH = /^[A-Za-z_][A-Za-z0-9_]*(\/[A-Za-z_][A-Za-z0-9_]*)*$/;
24
+ // A field whose name ends in `Id` (the scalar key `Id`, a lookup FK `XxxId`, or a nav `Xxx/Id`)
25
+ // — such a column is GUID-typed, so a GUID literal against it is emitted bare (see _literalFor).
22
26
  _isIdish(field) {
23
- return /(^|\/)Id$/.test(field) || /Id$/i.test(field);
27
+ return /Id$/i.test(field);
28
+ }
29
+ _assertPath(field) {
30
+ if (!ODataQueryTranslator.SAFE_PATH.test(field)) {
31
+ throw new Error(`unsafe_odata_identifier:${field}`);
32
+ }
33
+ return field;
24
34
  }
25
- // ISO-8601 date / date-time. OData v4 expresses Edm.Date and Edm.DateTimeOffset literals
26
- // UNQUOTED (e.g. `2026-06-01`, `2026-06-01T00:00:00Z`); quoting them 400s with
27
- // "incompatible types Edm.DateTimeOffset and Edm.String".
28
- static ISO_DATETIME = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2})?(\.\d+)?(Z|[+-]\d{2}:?\d{2})?)?$/;
29
35
  _escapeStr(value) {
30
36
  return value.replace(/'/g, "''");
31
37
  }
@@ -46,10 +52,12 @@ class ODataQueryTranslator {
46
52
  const v = String(value);
47
53
  // Bare (unquoted) GUID for any Id-typed path — the scalar key `Id`, a lookup FK
48
54
  // `XxxId`, or a navigation `Xxx/Id`. Other strings (incl. `Xxx/Name`) are quoted.
49
- if (this._isGuid(v) && this._isIdish(field)) {
55
+ if ((0, identifiers_1.isGuid)(v) && this._isIdish(field)) {
50
56
  return v;
51
57
  }
52
- if (temporal && ODataQueryTranslator.ISO_DATETIME.test(v)) {
58
+ // OData v4 expresses Edm.Date / Edm.DateTimeOffset literals UNQUOTED (quoting them 400s
59
+ // with "incompatible types Edm.DateTimeOffset and Edm.String").
60
+ if (temporal && (0, identifiers_1.isIsoDateLike)(v)) {
53
61
  return v;
54
62
  }
55
63
  return `'${this._escapeStr(v)}'`;
@@ -59,10 +67,10 @@ class ODataQueryTranslator {
59
67
  /** Navigate a lookup compared to a GUID to its `Id` path (`ContactId`/`Owner`/`Contact/Type`
60
68
  * -> `…/Id`); non-GUID values and already-`Id` paths are left untouched. */
61
69
  _lookupNavField(field, value) {
62
- return this._isGuid(value) ? (0, lookup_path_1.lookupIdPath)(field, '/') : field;
70
+ return (0, identifiers_1.isGuid)(value) ? (0, lookup_path_1.lookupIdPath)(field, '/') : field;
63
71
  }
64
72
  _condition(node) {
65
- const field = String(node.field);
73
+ const field = this._assertPath(String(node.field));
66
74
  const { op } = node;
67
75
  if (op === 'isNull') {
68
76
  return `${field} eq null`;
@@ -85,6 +93,7 @@ class ODataQueryTranslator {
85
93
  if (!node.values.length) {
86
94
  return undefined;
87
95
  }
96
+ this._assertPath(String(node.field));
88
97
  const parts = node.values.map((v) => {
89
98
  const f = this._lookupNavField(node.field, v);
90
99
  return `${f} eq ${this._literalFor(f, v)}`;
@@ -98,7 +107,9 @@ class ODataQueryTranslator {
98
107
  if (node.kind === 'in') {
99
108
  return this._inCondition(node);
100
109
  }
101
- const rendered = node.items.map((n) => this._node(n)).filter((s) => Boolean(s));
110
+ const rendered = node.items
111
+ .map((n) => this._node(n))
112
+ .filter((s) => Boolean(s));
102
113
  if (!rendered.length) {
103
114
  return undefined;
104
115
  }
@@ -107,10 +118,6 @@ class ODataQueryTranslator {
107
118
  }
108
119
  return `(${rendered.join(` ${node.logic} `)})`;
109
120
  }
110
- /** Render a {@link FilterNode} into an OData `$filter` expression (or undefined if empty). */
111
- translateFilter(node) {
112
- return node ? this._node(node) : undefined;
113
- }
114
121
  /** Combine the structured filter with an optional raw `$filter` escape hatch (AND-joined). */
115
122
  _resolveFilter(query) {
116
123
  const structured = this.translateFilter(query.filter);
@@ -124,7 +131,11 @@ class ODataQueryTranslator {
124
131
  if (!query.order || query.order.length === 0) {
125
132
  return undefined;
126
133
  }
127
- return query.order.map((o) => `${o.field} ${o.dir}`).join(', ');
134
+ return query.order.map((o) => `${this._assertPath(o.field)} ${o.dir}`).join(', ');
135
+ }
136
+ /** Render a {@link FilterNode} into an OData `$filter` expression (or undefined if empty). */
137
+ translateFilter(node) {
138
+ return node ? this._node(node) : undefined;
128
139
  }
129
140
  /** Build the encoded OData query-string params for a read. */
130
141
  buildQueryParams(query) {
@@ -134,7 +145,8 @@ class ODataQueryTranslator {
134
145
  params.push(`$filter=${encodeURIComponent(filter)}`);
135
146
  }
136
147
  if (query.columns && query.columns.length > 0) {
137
- params.push(`$select=${encodeURIComponent(query.columns.join(','))}`);
148
+ const columns = query.columns.map((c) => this._assertPath(c));
149
+ params.push(`$select=${encodeURIComponent(columns.join(','))}`);
138
150
  }
139
151
  const expand = query.odata?.expand;
140
152
  if (expand && expand.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"odata-query-translator.js","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-query-translator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odata-query-translator.js","sourceRoot":"","sources":["../../../../src/creatio/services/odata/odata-query-translator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ClientCacheHashClient } from './client-cache-hash-client';
2
+ /**
3
+ * Freshness policy ("thermostat") for the schema/metadata caches. It turns Creatio's client-cache
4
+ * hashes into a per-base-url VERSION TOKEN: a schema-cache entry stamped with an older token is
5
+ * treated as stale and refetched. This mirrors how the Freedom UI keeps its caches fresh.
6
+ *
7
+ * - Caches the hash snapshot per base URL for a short TTL, so we poll the endpoint at most once per
8
+ * ~TTL no matter how many schema reads happen.
9
+ * - Degrades gracefully: if the endpoint is unavailable, returns a coarse time-bucketed token so
10
+ * caches refresh on a fallback cadence rather than going stale forever.
11
+ * - Keyed by base URL so a multi-tenant gateway deployment never reuses tenant A's version for B.
12
+ */
13
+ export declare class SchemaFreshnessGate {
14
+ private readonly _client;
15
+ private readonly _ttlMs;
16
+ private readonly _snapshots;
17
+ constructor(client: ClientCacheHashClient, ttlMs?: number);
18
+ /**
19
+ * Current schema-version token for `baseUrl`. Stable while the data model is unchanged; changes
20
+ * when Creatio's `runtime-entity-schema` hash or the global `cacheVersion` changes. Callers stamp
21
+ * cached schemas with this and treat a mismatch as a miss.
22
+ */
23
+ getSchemaVersion(baseUrl: string): Promise<string>;
24
+ private _fetchToken;
25
+ }
26
+ //# sourceMappingURL=schema-freshness-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-freshness-gate.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/schema-freshness-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAenE;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;gBAEnE,MAAM,EAAE,qBAAqB,EAAE,KAAK,GAAE,MAAgC;IAKlF;;;;OAIG;IACU,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAWjD,WAAW;CAQzB"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaFreshnessGate = void 0;
4
+ /** The ClientCache bucket that flips when the entity data model changes (add/alter/remove an
5
+ * entity or column). Its value = configuration hash + user culture. Watching this + `cacheVersion`
6
+ * is exactly what the Freedom UI does to invalidate its own runtime-entity-schema cache. */
7
+ const ENTITY_SCHEMA_HASH_NAME = 'runtime-entity-schema';
8
+ /** How long a fetched hash snapshot is trusted before we re-poll. Bounds endpoint load AND the
9
+ * worst-case staleness window after a data-model change. */
10
+ const DEFAULT_SNAPSHOT_TTL_MS = 60 * 1000;
11
+ /** When the endpoint is unavailable, fall back to a coarse time-bucketed token so schema caches
12
+ * still refresh on a fixed cadence instead of being trusted indefinitely. */
13
+ const FALLBACK_BUCKET_MS = 5 * 60 * 1000;
14
+ /**
15
+ * Freshness policy ("thermostat") for the schema/metadata caches. It turns Creatio's client-cache
16
+ * hashes into a per-base-url VERSION TOKEN: a schema-cache entry stamped with an older token is
17
+ * treated as stale and refetched. This mirrors how the Freedom UI keeps its caches fresh.
18
+ *
19
+ * - Caches the hash snapshot per base URL for a short TTL, so we poll the endpoint at most once per
20
+ * ~TTL no matter how many schema reads happen.
21
+ * - Degrades gracefully: if the endpoint is unavailable, returns a coarse time-bucketed token so
22
+ * caches refresh on a fallback cadence rather than going stale forever.
23
+ * - Keyed by base URL so a multi-tenant gateway deployment never reuses tenant A's version for B.
24
+ */
25
+ class SchemaFreshnessGate {
26
+ _client;
27
+ _ttlMs;
28
+ _snapshots = new Map();
29
+ constructor(client, ttlMs = DEFAULT_SNAPSHOT_TTL_MS) {
30
+ this._client = client;
31
+ this._ttlMs = ttlMs;
32
+ }
33
+ /**
34
+ * Current schema-version token for `baseUrl`. Stable while the data model is unchanged; changes
35
+ * when Creatio's `runtime-entity-schema` hash or the global `cacheVersion` changes. Callers stamp
36
+ * cached schemas with this and treat a mismatch as a miss.
37
+ */
38
+ async getSchemaVersion(baseUrl) {
39
+ const now = Date.now();
40
+ const cached = this._snapshots.get(baseUrl);
41
+ if (cached && now - cached.at < this._ttlMs) {
42
+ return cached.token;
43
+ }
44
+ const token = await this._fetchToken(now);
45
+ this._snapshots.set(baseUrl, { token, at: now });
46
+ return token;
47
+ }
48
+ async _fetchToken(now) {
49
+ const hashes = await this._client.getHashes();
50
+ if (!hashes) {
51
+ return `fallback:${Math.floor(now / FALLBACK_BUCKET_MS)}`;
52
+ }
53
+ const entitySchema = hashes.hashes[ENTITY_SCHEMA_HASH_NAME] ?? '';
54
+ return `v${hashes.cacheVersion}:${entitySchema}`;
55
+ }
56
+ }
57
+ exports.SchemaFreshnessGate = SchemaFreshnessGate;
58
+ //# sourceMappingURL=schema-freshness-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-freshness-gate.js","sourceRoot":"","sources":["../../../src/creatio/services/schema-freshness-gate.ts"],"names":[],"mappings":";;;AAEA;;6FAE6F;AAC7F,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAExD;6DAC6D;AAC7D,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C;8EAC8E;AAC9E,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAa,mBAAmB;IACd,OAAO,CAAwB;IAC/B,MAAM,CAAS;IACf,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE/E,YAAY,MAA6B,EAAE,QAAgB,uBAAuB;QACjF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAW;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,EAAE,CAAC;IAClD,CAAC;CACD;AAlCD,kDAkCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-info-provider.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/user-info-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,gBAAiB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,SAAgB,IAAI,+BAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAIrC,OAAO,CAAC,cAAc;IAIT,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;CAuB3D"}
1
+ {"version":3,"file":"user-info-provider.d.ts","sourceRoot":"","sources":["../../../src/creatio/services/user-info-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,gBAAiB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,SAAgB,IAAI,+BAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAIrC,OAAO,CAAC,cAAc;IAIT,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;CAiB3D"}
@@ -12,14 +12,14 @@ class UserInfoProvider {
12
12
  }
13
13
  async getCurrentUserInfo() {
14
14
  const url = this._getServiceUrl();
15
- return this._client.executeWithTiming('getCurrentUserInfo', url, async () => {
15
+ return this._client.request('getCurrentUserInfo', url, async () => {
16
16
  const requestInit = await this._client.createPostRequest();
17
17
  return this._client.fetchWithAuth(url, async () => requestInit);
18
18
  }, async (response, duration) => {
19
19
  this._client.logSuccess('getCurrentUserInfo', response.status, duration);
20
20
  const body = await response.json().catch(() => ({}));
21
21
  return body;
22
- }, async (response, duration) => this._client.handleErrorResponse('getCurrentUserInfo', response, duration, 'creatio_get_current_user_info_failed'));
22
+ }, { errorPrefix: 'creatio_get_current_user_info_failed' });
23
23
  }
24
24
  }
25
25
  exports.UserInfoProvider = UserInfoProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"user-info-provider.js","sourceRoot":"","sources":["../../../src/creatio/services/user-info-provider.ts"],"names":[],"mappings":";;;AAIA,MAAa,gBAAgB;IACX,OAAO,CAAoB;IAE5B,IAAI,GAAG,2BAA2B,CAAC;IAEnD,YAAY,MAAyB;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,cAAc;QACrB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,wDAAwD,CAAC;IAClG,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACpC,oBAAoB,EACpB,GAAG,EACH,KAAK,IAAI,EAAE;YACV,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,EACD,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,IAAuB,CAAC;QAChC,CAAC,EACD,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAC/B,oBAAoB,EACpB,QAAQ,EACR,QAAQ,EACR,sCAAsC,CACtC,CACF,CAAC;IACH,CAAC;CACD;AApCD,4CAoCC"}
1
+ {"version":3,"file":"user-info-provider.js","sourceRoot":"","sources":["../../../src/creatio/services/user-info-provider.ts"],"names":[],"mappings":";;;AAIA,MAAa,gBAAgB;IACX,OAAO,CAAoB;IAE5B,IAAI,GAAG,2BAA2B,CAAC;IAEnD,YAAY,MAAyB;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,cAAc;QACrB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,wDAAwD,CAAC;IAClG,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAC1B,oBAAoB,EACpB,GAAG,EACH,KAAK,IAAI,EAAE;YACV,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,EACD,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,IAAuB,CAAC;QAChC,CAAC,EACD,EAAE,WAAW,EAAE,sCAAsC,EAAE,CACvD,CAAC;IACH,CAAC;CACD;AA9BD,4CA8BC"}
package/dist/index.js CHANGED
@@ -8,22 +8,51 @@ const consts_1 = require("./consts");
8
8
  const creatio_1 = require("./creatio");
9
9
  const log_1 = __importDefault(require("./log"));
10
10
  const server_1 = require("./server");
11
+ const sessions_1 = require("./sessions");
11
12
  const utils_1 = require("./utils");
12
13
  let _httpInstance;
14
+ let _keepAlive;
15
+ let _tokenStore;
16
+ /** Single shared Creatio session exists only for legacy / client_credentials — the modes the
17
+ * proactive keep-alive applies to (broker/delegated/gateway are per-user / per-request). */
18
+ function isSingleSessionMode(kind) {
19
+ return kind === creatio_1.AuthProviderType.Legacy || kind === creatio_1.AuthProviderType.OAuth2;
20
+ }
13
21
  async function main() {
22
+ (0, server_1.installHttpAgent)();
14
23
  log_1.default.appStart({ env: { node: process.version, HTTP_MCP_PORT: consts_1.HTTP_MCP_PORT } });
24
+ // Auth mode is resolved in config-builder: explicit CREATIO_MCP_AUTH_MODE, else inferred
25
+ // (legacy/client_credentials from creds, otherwise delegated for this multi-user HTTP server).
15
26
  const cfg = (0, config_builder_1.getCreatioClientConfig)();
27
+ // Broker holds users' Creatio tokens server-side; a Redis store makes that stateless +
28
+ // restart-durable + multi-instance (default stays in-memory). Only broker mode needs it.
29
+ if (cfg.auth.kind === creatio_1.AuthProviderType.Broker) {
30
+ const tokenStoreConfig = (0, config_builder_1.getTokenStoreConfig)();
31
+ if (tokenStoreConfig.kind === 'redis') {
32
+ _tokenStore = await (0, sessions_1.createTokenStore)(tokenStoreConfig);
33
+ sessions_1.SessionContext.instance.setTokenStore(_tokenStore);
34
+ }
35
+ }
16
36
  const provider = new creatio_1.CreatioServiceContext(cfg);
17
- const readonlyMode = (0, utils_1.envBool)('READONLY_MODE', false);
37
+ const readonlyMode = (0, utils_1.envBool)('CREATIO_MCP_READONLY', false);
18
38
  const engines = new creatio_1.CreatioEngineManager(provider, { readonly: readonlyMode });
19
39
  const server = new server_1.Server(engines, {
20
40
  readonlyMode,
21
- disableDataForge: (0, utils_1.envBool)('DISABLE_DATAFORGE', false),
22
- disableGlobalSearch: (0, utils_1.envBool)('DISABLE_GLOBAL_SEARCH', false),
41
+ disableDataForge: (0, utils_1.envBool)('CREATIO_MCP_DISABLE_DATAFORGE', false),
42
+ disableGlobalSearch: (0, utils_1.envBool)('CREATIO_MCP_DISABLE_GLOBAL_SEARCH', false),
23
43
  });
24
- const http = new server_1.HttpServer(server);
44
+ const http = new server_1.HttpServer(server, cfg);
25
45
  _httpInstance = http;
26
46
  await http.start(consts_1.HTTP_MCP_PORT);
47
+ if (isSingleSessionMode(cfg.auth.kind)) {
48
+ _keepAlive = new server_1.SessionKeepAlive((0, server_1.keepAliveIntervalMs)(), async () => {
49
+ await engines.user.getCurrentUserInfo();
50
+ // Reuse the periodic ping to also refresh the schema-freshness snapshot (not a wasted
51
+ // round-trip): the next schema read starts from a warm, validated cache.
52
+ await engines.warmSchemaCache();
53
+ });
54
+ _keepAlive.start();
55
+ }
27
56
  }
28
57
  let shuttingDown = false;
29
58
  async function shutdown(signal) {
@@ -33,7 +62,9 @@ async function shutdown(signal) {
33
62
  shuttingDown = true;
34
63
  try {
35
64
  log_1.default.appStop({ reason: signal || 'shutdown' });
65
+ _keepAlive?.stop();
36
66
  await _httpInstance?.stop();
67
+ await _tokenStore?.close();
37
68
  }
38
69
  catch (err) {
39
70
  log_1.default.error('shutdown.error', { error: String(err) });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,qDAA0D;AAC1D,qCAAyC;AACzC,uCAAwE;AACxE,gDAAwB;AACxB,qCAA8C;AAC9C,mCAAkC;AAElC,IAAI,aAAqC,CAAC;AAE1C,KAAK,UAAU,IAAI;IAClB,aAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,EAAb,sBAAa,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAA,uCAAsB,GAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,+BAAqB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,8BAAoB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,EAAE;QAClC,YAAY;QACZ,gBAAgB,EAAE,IAAA,eAAO,EAAC,mBAAmB,EAAE,KAAK,CAAC;QACrD,mBAAmB,EAAE,IAAA,eAAO,EAAC,uBAAuB,EAAE,KAAK,CAAC;KAC5D,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,mBAAU,CAAC,MAAM,CAAC,CAAC;IACpC,aAAa,GAAG,IAAI,CAAC;IACrB,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAa,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,KAAK,UAAU,QAAQ,CAAC,MAAe;IACtC,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO;IACR,CAAC;IACD,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QACJ,aAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAC9C,MAAM,aAAa,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,aAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACpB,aAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/log.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export type LogLevel = 'info' | 'warn' | 'error';
2
2
  export type LogVerbosity = LogLevel | 'silent';
3
- export type CreatioAuthKind = 'legacy' | 'oauth2' | 'oauth2_code';
3
+ export type CreatioAuthKind = 'legacy' | 'oauth2';
4
4
  export interface LogConfig {
5
5
  level?: LogLevel;
6
6
  }
package/dist/log.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
package/dist/log.js CHANGED
@@ -23,10 +23,12 @@ exports.httpResponse = httpResponse;
23
23
  exports.httpError = httpError;
24
24
  exports.logOperation = logOperation;
25
25
  exports.audit = audit;
26
+ const env_1 = require("./utils/env");
27
+ const redact_1 = require("./utils/redact");
26
28
  let _correlationId;
27
29
  let _stderrOnly = false;
28
30
  function resolveLogVerbosity() {
29
- const raw = (process.env.MCP_CREATIO_LOG_LEVEL || 'silent').toLowerCase();
31
+ const raw = ((0, env_1.env)('CREATIO_MCP_LOG_LEVEL') || 'silent').toLowerCase();
30
32
  if (raw === 'info') {
31
33
  return 'info';
32
34
  }
@@ -74,7 +76,9 @@ function output(level, msg, meta) {
74
76
  if (meta && Object.keys(meta).length) {
75
77
  entry.meta = meta;
76
78
  }
77
- const line = JSON.stringify(entry);
79
+ // Final outward choke point: scrub any credential-looking substrings (tokens, secrets, auth
80
+ // headers) that may have slipped into msg/meta before they reach stdout/stderr or a log sink.
81
+ const line = (0, redact_1.redactSecrets)(JSON.stringify(entry));
78
82
  if (_stderrOnly) {
79
83
  process.stderr.write(line + '\n');
80
84
  return;
package/dist/log.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Guards the gateway-only `X-Creatio-Base-Url` override. The override decides where each request's
3
+ * Bearer token is sent, so an unvalidated value is an SSRF / token-redirection lever (CWE-918):
4
+ * a compromised or misconfigured gateway could redirect the authenticated token to an attacker host
5
+ * or pivot to internal metadata endpoints.
6
+ *
7
+ * The real production control is an allowlist (`CREATIO_MCP_ALLOWED_BASE_URLS`). When it is set, the
8
+ * override MUST fall under an allowed origin. When it is NOT set, we keep the trusted-gateway posture
9
+ * (any http/https host is accepted) but ALWAYS block the cloud-metadata link-local address, since it
10
+ * is never a legitimate Creatio target and is the classic SSRF prize. On-prem private ranges are NOT
11
+ * blocked by default — legitimate tenants live there — so use the allowlist to lock things down.
12
+ */
13
+ /** Parse the comma/space-separated `CREATIO_MCP_ALLOWED_BASE_URLS` into normalized origins. */
14
+ export declare function parseAllowedBaseUrls(raw: string | undefined): string[];
15
+ /**
16
+ * Whether `raw` is an acceptable base-URL override. `allowlist` is the parsed
17
+ * {@link parseAllowedBaseUrls} list ([] = none configured).
18
+ */
19
+ export declare function isAllowedBaseUrl(raw: string, allowlist: string[]): boolean;
20
+ //# sourceMappingURL=base-url-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-url-guard.d.ts","sourceRoot":"","sources":["../../../src/server/bearer/base-url-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAQtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAsB1E"}