@confluentinc/mcp-confluent 1.2.2 → 1.4.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 (508) hide show
  1. package/README.md +299 -240
  2. package/assets/oauth-templates/callback-failure.html +22 -0
  3. package/assets/oauth-templates/callback-success.html +99 -0
  4. package/assets/oauth-templates/logo.html +91 -0
  5. package/assets/oauth-templates/styles.html +110 -0
  6. package/config.example.yaml +149 -0
  7. package/config.oauth.example.yaml +45 -0
  8. package/dist/cli.d.ts +59 -12
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +131 -61
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config/env-config.d.ts +33 -0
  13. package/dist/config/env-config.d.ts.map +1 -0
  14. package/dist/config/env-config.js +478 -0
  15. package/dist/config/env-config.js.map +1 -0
  16. package/dist/config/index.d.ts +31 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +76 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/config/interpolation.d.ts +9 -0
  21. package/dist/config/interpolation.d.ts.map +1 -0
  22. package/dist/config/interpolation.js +51 -0
  23. package/dist/config/interpolation.js.map +1 -0
  24. package/dist/config/models.d.ts +399 -0
  25. package/dist/config/models.d.ts.map +1 -0
  26. package/dist/config/models.js +406 -0
  27. package/dist/config/models.js.map +1 -0
  28. package/dist/config/validation.d.ts +9 -0
  29. package/dist/config/validation.d.ts.map +1 -0
  30. package/dist/config/validation.js +46 -0
  31. package/dist/config/validation.js.map +1 -0
  32. package/dist/confluent/base-client-manager.d.ts +133 -0
  33. package/dist/confluent/base-client-manager.d.ts.map +1 -0
  34. package/dist/confluent/base-client-manager.js +188 -0
  35. package/dist/confluent/base-client-manager.js.map +1 -0
  36. package/dist/confluent/client-manager.d.ts +42 -77
  37. package/dist/confluent/client-manager.d.ts.map +1 -1
  38. package/dist/confluent/client-manager.js +5 -213
  39. package/dist/confluent/client-manager.js.map +1 -1
  40. package/dist/confluent/config-telemetry.d.ts +41 -0
  41. package/dist/confluent/config-telemetry.d.ts.map +1 -0
  42. package/dist/confluent/config-telemetry.js +17 -0
  43. package/dist/confluent/config-telemetry.js.map +1 -0
  44. package/dist/confluent/direct-client-manager.d.ts +43 -0
  45. package/dist/confluent/direct-client-manager.d.ts.map +1 -0
  46. package/dist/confluent/direct-client-manager.js +154 -0
  47. package/dist/confluent/direct-client-manager.js.map +1 -0
  48. package/dist/confluent/middleware.d.ts +32 -4
  49. package/dist/confluent/middleware.d.ts.map +1 -1
  50. package/dist/confluent/middleware.js +46 -2
  51. package/dist/confluent/middleware.js.map +1 -1
  52. package/dist/confluent/node-deps.d.ts +33 -39
  53. package/dist/confluent/node-deps.d.ts.map +1 -1
  54. package/dist/confluent/node-deps.js +48 -7
  55. package/dist/confluent/node-deps.js.map +1 -1
  56. package/dist/confluent/oauth/auth-context.d.ts +94 -0
  57. package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
  58. package/dist/confluent/oauth/auth-context.js +323 -0
  59. package/dist/confluent/oauth/auth-context.js.map +1 -0
  60. package/dist/confluent/oauth/auth0-config.d.ts +12 -0
  61. package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
  62. package/dist/confluent/oauth/auth0-config.js +43 -0
  63. package/dist/confluent/oauth/auth0-config.js.map +1 -0
  64. package/dist/confluent/oauth/callback-pages.d.ts +13 -0
  65. package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
  66. package/dist/confluent/oauth/callback-pages.js +47 -0
  67. package/dist/confluent/oauth/callback-pages.js.map +1 -0
  68. package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
  69. package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
  70. package/dist/confluent/oauth/crypto-utils.js +23 -0
  71. package/dist/confluent/oauth/crypto-utils.js.map +1 -0
  72. package/dist/confluent/oauth/errors.d.ts +27 -0
  73. package/dist/confluent/oauth/errors.d.ts.map +1 -0
  74. package/dist/confluent/oauth/errors.js +6 -0
  75. package/dist/confluent/oauth/errors.js.map +1 -0
  76. package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
  77. package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
  78. package/dist/confluent/oauth/oauth-holder.js +155 -0
  79. package/dist/confluent/oauth/oauth-holder.js.map +1 -0
  80. package/dist/confluent/oauth/pkce-login.d.ts +45 -0
  81. package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
  82. package/dist/confluent/oauth/pkce-login.js +270 -0
  83. package/dist/confluent/oauth/pkce-login.js.map +1 -0
  84. package/dist/confluent/oauth/token-chain.d.ts +53 -0
  85. package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
  86. package/dist/confluent/oauth/token-chain.js +141 -0
  87. package/dist/confluent/oauth/token-chain.js.map +1 -0
  88. package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
  89. package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
  90. package/dist/confluent/oauth/token-lifetimes.js +13 -0
  91. package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
  92. package/dist/confluent/oauth/types.d.ts +68 -0
  93. package/dist/confluent/oauth/types.d.ts.map +1 -0
  94. package/dist/confluent/oauth/types.js +2 -0
  95. package/dist/confluent/oauth/types.js.map +1 -0
  96. package/dist/confluent/oauth-client-manager.d.ts +78 -0
  97. package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
  98. package/dist/confluent/oauth-client-manager.js +265 -0
  99. package/dist/confluent/oauth-client-manager.js.map +1 -0
  100. package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
  101. package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
  102. package/dist/confluent/oauth-resource-resolvers.js +65 -0
  103. package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
  104. package/dist/confluent/schema-registry-helper.d.ts +5 -9
  105. package/dist/confluent/schema-registry-helper.d.ts.map +1 -1
  106. package/dist/confluent/schema-registry-helper.js +1 -9
  107. package/dist/confluent/schema-registry-helper.js.map +1 -1
  108. package/dist/confluent/telemetry.d.ts +38 -1
  109. package/dist/confluent/telemetry.d.ts.map +1 -1
  110. package/dist/confluent/telemetry.js +37 -8
  111. package/dist/confluent/telemetry.js.map +1 -1
  112. package/dist/confluent/tools/base-tools.d.ts +140 -23
  113. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  114. package/dist/confluent/tools/base-tools.js +98 -4
  115. package/dist/confluent/tools/base-tools.js.map +1 -1
  116. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
  117. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
  118. package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
  119. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
  120. package/dist/confluent/tools/connection-predicates.d.ts +176 -0
  121. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
  122. package/dist/confluent/tools/connection-predicates.js +284 -0
  123. package/dist/confluent/tools/connection-predicates.js.map +1 -0
  124. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +5 -6
  125. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
  126. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +40 -11
  127. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  128. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +6 -6
  129. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  130. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +6 -9
  131. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  132. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +6 -6
  133. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  134. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +6 -9
  135. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  136. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +6 -6
  137. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  138. package/dist/confluent/tools/handlers/catalog/delete-tag.js +6 -9
  139. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  140. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +6 -6
  141. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  142. package/dist/confluent/tools/handlers/catalog/list-tags.js +6 -9
  143. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  144. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +6 -6
  145. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  146. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +6 -9
  147. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  148. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +5 -6
  149. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  150. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -13
  151. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  152. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +34 -0
  153. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
  154. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +47 -0
  155. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
  156. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
  157. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  158. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
  159. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  160. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
  161. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
  163. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts +9 -0
  165. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts.map +1 -0
  166. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js +35 -0
  167. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js.map +1 -0
  168. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts +9 -0
  169. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts.map +1 -0
  170. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js +66 -0
  171. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js.map +1 -0
  172. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts +9 -0
  173. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts.map +1 -0
  174. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js +131 -0
  175. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js.map +1 -0
  176. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts +9 -0
  177. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts.map +1 -0
  178. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js +244 -0
  179. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js.map +1 -0
  180. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts +9 -0
  181. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts.map +1 -0
  182. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js +35 -0
  183. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js.map +1 -0
  184. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts +9 -0
  185. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts.map +1 -0
  186. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js +44 -0
  187. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js.map +1 -0
  188. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts +9 -0
  189. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts.map +1 -0
  190. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js +35 -0
  191. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js.map +1 -0
  192. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
  193. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  194. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
  195. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  196. package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts +9 -0
  197. package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts.map +1 -0
  198. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js +35 -0
  199. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js.map +1 -0
  200. package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts +9 -0
  201. package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts.map +1 -0
  202. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js +35 -0
  203. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js.map +1 -0
  204. package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts +9 -0
  205. package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts.map +1 -0
  206. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js +35 -0
  207. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js.map +1 -0
  208. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts +9 -0
  209. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts.map +1 -0
  210. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js +44 -0
  211. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js.map +1 -0
  212. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +58 -0
  213. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
  214. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +135 -0
  215. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
  216. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +18 -0
  217. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
  218. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +235 -0
  219. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
  220. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +14 -0
  221. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
  222. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +286 -0
  223. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
  224. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +11 -12
  225. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  226. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +11 -14
  227. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  228. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +5 -6
  229. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  230. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +6 -9
  231. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  232. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +32 -11
  233. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
  234. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +22 -16
  235. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
  236. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
  237. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  238. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +34 -30
  239. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  240. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
  241. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
  242. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
  243. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
  244. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
  245. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  246. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +34 -30
  247. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  248. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
  249. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  250. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +21 -24
  251. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  252. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
  253. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  254. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +21 -24
  255. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  256. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
  257. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  258. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +22 -33
  259. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  260. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
  261. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  262. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
  263. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  264. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
  265. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  266. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
  267. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  268. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
  269. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  270. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
  271. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  272. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
  273. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  274. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
  275. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  276. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
  277. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
  278. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
  279. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
  280. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  281. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
  282. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  283. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +15 -2
  284. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  285. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  286. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +22 -0
  287. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
  288. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +32 -0
  289. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
  290. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
  291. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
  293. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  294. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
  295. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  296. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -17
  297. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  298. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
  299. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  300. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
  301. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  302. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +5 -6
  303. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  304. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +22 -20
  305. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  306. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +216 -30
  307. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  308. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +797 -70
  309. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  310. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts +48 -0
  311. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts.map +1 -0
  312. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js +84 -0
  313. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js.map +1 -0
  314. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts +54 -0
  315. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts.map +1 -0
  316. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js +89 -0
  317. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js.map +1 -0
  318. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +5 -5
  319. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  320. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +52 -15
  321. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  322. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +5 -5
  323. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  324. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +26 -8
  325. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  326. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts +64 -0
  327. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts.map +1 -0
  328. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js +140 -0
  329. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js.map +1 -0
  330. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts +73 -0
  331. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts.map +1 -0
  332. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js +337 -0
  333. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js.map +1 -0
  334. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts +43 -0
  335. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts.map +1 -0
  336. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js +123 -0
  337. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js.map +1 -0
  338. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +5 -6
  339. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  340. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +22 -20
  341. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  342. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts +45 -0
  343. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts.map +1 -0
  344. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js +86 -0
  345. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js.map +1 -0
  346. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +5 -5
  347. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  348. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +25 -10
  349. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  350. package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts +54 -0
  351. package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts.map +1 -0
  352. package/dist/confluent/tools/handlers/kafka/partition-watermarks.js +56 -0
  353. package/dist/confluent/tools/handlers/kafka/partition-watermarks.js.map +1 -0
  354. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -8
  355. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  356. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +57 -46
  357. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  358. package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts +18 -0
  359. package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts.map +1 -0
  360. package/dist/confluent/tools/handlers/kafka/topic-metadata.js +18 -0
  361. package/dist/confluent/tools/handlers/kafka/topic-metadata.js.map +1 -0
  362. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +6 -6
  363. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  364. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +6 -9
  365. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  366. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +24 -6
  367. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  368. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +88 -53
  369. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  370. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +50 -0
  371. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
  372. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +116 -0
  373. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
  374. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +5 -5
  375. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
  376. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +13 -8
  377. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  378. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +5 -5
  379. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  380. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +13 -7
  381. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  382. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +6 -6
  383. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  384. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +6 -9
  385. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  386. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +6 -6
  387. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  388. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +6 -9
  389. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  390. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
  391. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  392. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
  393. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  394. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
  395. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  396. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
  397. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  398. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
  399. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  400. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
  401. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  402. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
  403. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  404. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
  405. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  406. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
  407. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  408. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
  409. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  410. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
  411. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  412. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +18 -21
  413. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  414. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +26 -0
  415. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
  416. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +28 -0
  417. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
  418. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
  419. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  420. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
  421. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  422. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
  423. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  424. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
  425. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  426. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
  427. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  428. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
  429. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  430. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
  431. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  432. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
  433. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  434. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
  435. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  436. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
  437. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  438. package/dist/confluent/tools/tool-availability.d.ts +91 -0
  439. package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
  440. package/dist/confluent/tools/tool-availability.js +130 -0
  441. package/dist/confluent/tools/tool-availability.js.map +1 -0
  442. package/dist/confluent/tools/tool-name.d.ts +20 -2
  443. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  444. package/dist/confluent/tools/tool-name.js +19 -1
  445. package/dist/confluent/tools/tool-name.js.map +1 -1
  446. package/dist/confluent/tools/tool-registry.d.ts +17 -0
  447. package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
  448. package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +66 -22
  449. package/dist/confluent/tools/tool-registry.js.map +1 -0
  450. package/dist/env-schema.d.ts +6 -7
  451. package/dist/env-schema.d.ts.map +1 -1
  452. package/dist/env-schema.js +30 -44
  453. package/dist/env-schema.js.map +1 -1
  454. package/dist/env.d.ts +17 -7
  455. package/dist/env.d.ts.map +1 -1
  456. package/dist/env.js +16 -6
  457. package/dist/env.js.map +1 -1
  458. package/dist/index.d.ts +74 -1
  459. package/dist/index.d.ts.map +1 -1
  460. package/dist/index.js +302 -166
  461. package/dist/index.js.map +1 -1
  462. package/dist/logger.d.ts.map +1 -1
  463. package/dist/logger.js +21 -20
  464. package/dist/logger.js.map +1 -1
  465. package/dist/mcp/server.d.ts +29 -0
  466. package/dist/mcp/server.d.ts.map +1 -0
  467. package/dist/mcp/server.js +53 -0
  468. package/dist/mcp/server.js.map +1 -0
  469. package/dist/mcp/transports/auth.d.ts +20 -4
  470. package/dist/mcp/transports/auth.d.ts.map +1 -1
  471. package/dist/mcp/transports/auth.js +27 -7
  472. package/dist/mcp/transports/auth.js.map +1 -1
  473. package/dist/mcp/transports/http.d.ts +8 -2
  474. package/dist/mcp/transports/http.d.ts.map +1 -1
  475. package/dist/mcp/transports/http.js +57 -42
  476. package/dist/mcp/transports/http.js.map +1 -1
  477. package/dist/mcp/transports/manager.d.ts +23 -9
  478. package/dist/mcp/transports/manager.d.ts.map +1 -1
  479. package/dist/mcp/transports/manager.js +27 -24
  480. package/dist/mcp/transports/manager.js.map +1 -1
  481. package/dist/mcp/transports/server.d.ts +1 -1
  482. package/dist/mcp/transports/server.d.ts.map +1 -1
  483. package/dist/mcp/transports/server.js +17 -5
  484. package/dist/mcp/transports/server.js.map +1 -1
  485. package/dist/mcp/transports/session-registry.d.ts +33 -0
  486. package/dist/mcp/transports/session-registry.d.ts.map +1 -0
  487. package/dist/mcp/transports/session-registry.js +65 -0
  488. package/dist/mcp/transports/session-registry.js.map +1 -0
  489. package/dist/mcp/transports/sse.d.ts +13 -2
  490. package/dist/mcp/transports/sse.d.ts.map +1 -1
  491. package/dist/mcp/transports/sse.js +58 -46
  492. package/dist/mcp/transports/sse.js.map +1 -1
  493. package/dist/server-runtime.d.ts +28 -0
  494. package/dist/server-runtime.d.ts.map +1 -0
  495. package/dist/server-runtime.js +73 -0
  496. package/dist/server-runtime.js.map +1 -0
  497. package/package.json +26 -9
  498. package/dist/confluent/helpers.d.ts +0 -11
  499. package/dist/confluent/helpers.d.ts.map +0 -1
  500. package/dist/confluent/helpers.js +0 -17
  501. package/dist/confluent/helpers.js.map +0 -1
  502. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +0 -11
  503. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +0 -1
  504. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +0 -59
  505. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +0 -1
  506. package/dist/confluent/tools/tool-factory.d.ts +0 -9
  507. package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
  508. package/dist/confluent/tools/tool-factory.js.map +0 -1
@@ -0,0 +1,141 @@
1
+ import { nodeFetch } from "../../confluent/node-deps.js";
2
+ import { CONTROL_PLANE_TOKEN_LIFETIME_MS, DATA_PLANE_TOKEN_LIFETIME_MS, REFRESH_TOKEN_ABSOLUTE_LIFETIME_MS, REFRESH_TOKEN_IDLE_LIFETIME_MS, } from "../../confluent/oauth/token-lifetimes.js";
3
+ import { logger } from "../../logger.js";
4
+ /** Per-request timeout bounding each Auth0/Confluent HTTP call. */
5
+ const REQUEST_TIMEOUT_MS = 30_000;
6
+ /**
7
+ * POSTs to the OAuth/Confluent endpoint and returns the decoded JSON body,
8
+ * throwing a labeled error when the response is not OK. Each request is bounded
9
+ * by {@link REQUEST_TIMEOUT_MS} so a hung Auth0/Confluent call can't stall the
10
+ * refresh loop.
11
+ */
12
+ async function postJson(url, init, operation) {
13
+ let response;
14
+ try {
15
+ response = await nodeFetch.fetch(url, {
16
+ ...init,
17
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
18
+ });
19
+ }
20
+ catch (err) {
21
+ if (err instanceof Error && err.name === "TimeoutError") {
22
+ logger.error(`${operation} timed out`);
23
+ throw new Error(`${operation} timed out after ${REQUEST_TIMEOUT_MS}ms`);
24
+ }
25
+ throw err;
26
+ }
27
+ if (!response.ok) {
28
+ const errorText = await response.text();
29
+ logger.error({ status: response.status }, `${operation} failed`);
30
+ throw new Error(`${operation} failed (${response.status}): ${errorText}`);
31
+ }
32
+ return (await response.json());
33
+ }
34
+ /**
35
+ * Exchanges an authorization code for Auth0 tokens (ID token + refresh token).
36
+ * This is the first step in the Confluent token chain.
37
+ */
38
+ export async function exchangeAuthCodeForTokens(auth0Config, authCode, codeVerifier) {
39
+ const body = new URLSearchParams({
40
+ grant_type: "authorization_code",
41
+ client_id: auth0Config.clientId,
42
+ code: authCode,
43
+ code_verifier: codeVerifier,
44
+ redirect_uri: auth0Config.callbackUrl,
45
+ });
46
+ const response = await postJson(`https://${auth0Config.domain}/oauth/token`, {
47
+ method: "POST",
48
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
49
+ body: body.toString(),
50
+ }, "Auth0 token exchange");
51
+ if (!response.id_token) {
52
+ throw new Error("Auth0 token exchange: missing id_token");
53
+ }
54
+ if (!response.refresh_token) {
55
+ throw new Error("Auth0 token exchange: missing refresh_token");
56
+ }
57
+ return response;
58
+ }
59
+ /**
60
+ * Exchanges an Auth0 ID token for a Confluent Cloud control plane token.
61
+ * POST {apiUrl}/api/sessions with the ID token in the body.
62
+ */
63
+ export async function exchangeIdTokenForControlPlaneToken(apiUrl, idToken) {
64
+ const response = await postJson(`${apiUrl}/api/sessions`, {
65
+ method: "POST",
66
+ headers: { "Content-Type": "application/json" },
67
+ body: JSON.stringify({ id_token: idToken }),
68
+ }, "Control plane token exchange");
69
+ if (!response.token) {
70
+ throw new Error("Control plane token exchange: missing token");
71
+ }
72
+ return response;
73
+ }
74
+ /**
75
+ * Exchanges a control plane token for a Confluent Cloud data plane token.
76
+ * POST {apiUrl}/api/access_tokens with the CP token as Bearer auth.
77
+ */
78
+ export async function exchangeControlPlaneForDataPlaneToken(apiUrl, controlPlaneToken) {
79
+ const response = await postJson(`${apiUrl}/api/access_tokens`, {
80
+ method: "POST",
81
+ headers: {
82
+ "Content-Type": "application/json",
83
+ Authorization: `Bearer ${controlPlaneToken}`,
84
+ },
85
+ body: JSON.stringify({}),
86
+ }, "Data plane token exchange");
87
+ if (!response.token) {
88
+ throw new Error("Data plane token exchange: missing token");
89
+ }
90
+ return response;
91
+ }
92
+ /**
93
+ * Exchanges a refresh token for a new Auth0 token set (ID token + rotated
94
+ * refresh token). This is a single-use destructive operation: on success the
95
+ * old refresh token is invalidated by Auth0. Callers that then derive CP/DP
96
+ * tokens should persist the new refresh token BEFORE the CP/DP calls so a
97
+ * failure there doesn't lose the rotated token.
98
+ */
99
+ export async function exchangeRefreshTokenForAuth0Tokens(auth0Config, refreshToken) {
100
+ const body = new URLSearchParams({
101
+ grant_type: "refresh_token",
102
+ client_id: auth0Config.clientId,
103
+ refresh_token: refreshToken,
104
+ });
105
+ const response = await postJson(`https://${auth0Config.domain}/oauth/token`, {
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
108
+ body: body.toString(),
109
+ }, "Auth0 token refresh");
110
+ if (!response.id_token) {
111
+ throw new Error("Auth0 token refresh: missing id_token");
112
+ }
113
+ if (!response.refresh_token) {
114
+ throw new Error("Auth0 token refresh: missing refresh_token");
115
+ }
116
+ return response;
117
+ }
118
+ /**
119
+ * Runs the full token chain from an authorization code.
120
+ * auth code → ID token + refresh token → control plane → data plane
121
+ *
122
+ * Sets both absolute (8hr) and idle (4hr) refresh token expiry.
123
+ */
124
+ export async function executeFullTokenChain(auth0Config, authCode, codeVerifier) {
125
+ const auth0Response = await exchangeAuthCodeForTokens(auth0Config, authCode, codeVerifier);
126
+ const cpResponse = await exchangeIdTokenForControlPlaneToken(auth0Config.apiUrl, auth0Response.id_token);
127
+ const dpResponse = await exchangeControlPlaneForDataPlaneToken(auth0Config.apiUrl, cpResponse.token);
128
+ const now = Date.now();
129
+ return {
130
+ refreshToken: auth0Response.refresh_token,
131
+ refreshTokenAbsoluteExpiresAt: now + REFRESH_TOKEN_ABSOLUTE_LIFETIME_MS,
132
+ refreshTokenIdleExpiresAt: now + REFRESH_TOKEN_IDLE_LIFETIME_MS,
133
+ controlPlaneToken: cpResponse.token,
134
+ controlPlaneExpiresAt: now + CONTROL_PLANE_TOKEN_LIFETIME_MS,
135
+ dataPlaneToken: dpResponse.token,
136
+ dataPlaneExpiresAt: now + DATA_PLANE_TOKEN_LIFETIME_MS,
137
+ resourceId: cpResponse.user?.resource_id,
138
+ email: cpResponse.user?.email,
139
+ };
140
+ }
141
+ //# sourceMappingURL=token-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-chain.js","sourceRoot":"","sources":["../../../src/confluent/oauth/token-chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** 5 minutes in milliseconds — control plane token lifetime */
2
+ export declare const CONTROL_PLANE_TOKEN_LIFETIME_MS: number;
3
+ /** 10 minutes in milliseconds — data plane token lifetime */
4
+ export declare const DATA_PLANE_TOKEN_LIFETIME_MS: number;
5
+ /** 8 hours in milliseconds — refresh token absolute lifetime from original login */
6
+ export declare const REFRESH_TOKEN_ABSOLUTE_LIFETIME_MS: number;
7
+ /** 4 hours in milliseconds — refresh token idle timeout, resets on each rotation */
8
+ export declare const REFRESH_TOKEN_IDLE_LIFETIME_MS: number;
9
+ /** 30 seconds in milliseconds — refresh control plane token this much before expiry */
10
+ export declare const CONTROL_PLANE_REFRESH_WINDOW_MS: number;
11
+ /** Failure count at which the auth context is flagged as permanently failed. */
12
+ export declare const MAX_CONSECUTIVE_TRANSIENT_FAILURES = 50;
13
+ //# sourceMappingURL=token-lifetimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-lifetimes.d.ts","sourceRoot":"","sources":["../../../src/confluent/oauth/token-lifetimes.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,+BAA+B,QAAgB,CAAC;AAE7D,6DAA6D;AAC7D,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAE3D,oFAAoF;AACpF,eAAO,MAAM,kCAAkC,QAAqB,CAAC;AAErE,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,QAAqB,CAAC;AAEjE,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,QAAY,CAAC;AAEzD,gFAAgF;AAChF,eAAO,MAAM,kCAAkC,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** 5 minutes in milliseconds — control plane token lifetime */
2
+ export const CONTROL_PLANE_TOKEN_LIFETIME_MS = 5 * 60 * 1000;
3
+ /** 10 minutes in milliseconds — data plane token lifetime */
4
+ export const DATA_PLANE_TOKEN_LIFETIME_MS = 10 * 60 * 1000;
5
+ /** 8 hours in milliseconds — refresh token absolute lifetime from original login */
6
+ export const REFRESH_TOKEN_ABSOLUTE_LIFETIME_MS = 8 * 60 * 60 * 1000;
7
+ /** 4 hours in milliseconds — refresh token idle timeout, resets on each rotation */
8
+ export const REFRESH_TOKEN_IDLE_LIFETIME_MS = 4 * 60 * 60 * 1000;
9
+ /** 30 seconds in milliseconds — refresh control plane token this much before expiry */
10
+ export const CONTROL_PLANE_REFRESH_WINDOW_MS = 30 * 1000;
11
+ /** Failure count at which the auth context is flagged as permanently failed. */
12
+ export const MAX_CONSECUTIVE_TRANSIENT_FAILURES = 50;
13
+ //# sourceMappingURL=token-lifetimes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-lifetimes.js","sourceRoot":"","sources":["../../../src/confluent/oauth/token-lifetimes.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,oFAAoF;AACpF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErE,oFAAoF;AACpF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjE,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,gFAAgF;AAChF,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ export type Auth0Environment = "devel" | "stag" | "prod";
2
+ export interface Auth0Config {
3
+ clientId: string;
4
+ domain: string;
5
+ apiUrl: string;
6
+ /** Confluent Cloud REST API base URL for this environment (e.g. https://api.confluent.cloud for prod). */
7
+ cloudRestUrl: string;
8
+ callbackUrl: string;
9
+ scopes: string;
10
+ }
11
+ export interface ConfluentTokenSet {
12
+ /** Auth0 refresh token — single-use, rotated each refresh cycle */
13
+ refreshToken: string;
14
+ /** Absolute expiration of the refresh token family (epoch ms). 8hr from original login. */
15
+ refreshTokenAbsoluteExpiresAt: number;
16
+ /** Idle expiration of the current refresh token (epoch ms). 4hr from last rotation. */
17
+ refreshTokenIdleExpiresAt: number;
18
+ /** Confluent Cloud control plane token (Bearer token for api.confluent.cloud) */
19
+ controlPlaneToken: string;
20
+ /** Control plane token expiration (epoch ms). ~5 min TTL. */
21
+ controlPlaneExpiresAt: number;
22
+ /** Confluent Cloud data plane token (Bearer token for cluster-specific endpoints) */
23
+ dataPlaneToken: string;
24
+ /** Data plane token expiration (epoch ms). ~10 min TTL. */
25
+ dataPlaneExpiresAt: number;
26
+ /** Opaque access token returned to MCP clients. Stable across refreshes. */
27
+ accessToken: string;
28
+ }
29
+ export interface OAuthConfig {
30
+ auth: "oauth";
31
+ environment: Auth0Environment;
32
+ }
33
+ /**
34
+ * Response from POST login.confluent.io/oauth/token
35
+ */
36
+ export interface Auth0TokenResponse {
37
+ id_token: string;
38
+ refresh_token: string;
39
+ access_token: string;
40
+ token_type: string;
41
+ expires_in: number;
42
+ }
43
+ /**
44
+ * User identity returned in the body of POST confluent.cloud/api/sessions.
45
+ * Sourced from the JSON response, not from any JWT claim. Fields beyond what
46
+ * we consume are intentionally omitted.
47
+ */
48
+ export interface UserDetails {
49
+ id?: string;
50
+ email?: string;
51
+ resource_id?: string;
52
+ }
53
+ /**
54
+ * Response from POST confluent.cloud/api/sessions
55
+ */
56
+ export interface ControlPlaneTokenResponse {
57
+ token: string;
58
+ expires_at: string;
59
+ user?: UserDetails;
60
+ }
61
+ /**
62
+ * Response from POST confluent.cloud/api/access_tokens
63
+ */
64
+ export interface DataPlaneTokenResponse {
65
+ token: string;
66
+ expires_at: string;
67
+ }
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/confluent/oauth/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0GAA0G;IAC1G,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,6BAA6B,EAAE,MAAM,CAAC;IACtC,uFAAuF;IACvF,yBAAyB,EAAE,MAAM,CAAC;IAElC,iFAAiF;IACjF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAE9B,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAE3B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/confluent/oauth/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @fileoverview OAuth (bearer-auth) client manager. Wires Confluent Cloud
3
+ * REST surfaces, native Kafka admin/producer/consumer (via `@confluentinc/kafka-javascript` +
4
+ * SASL/OAUTHBEARER), and the Schema Registry SDK to bearer tokens supplied
5
+ * by an {@link OAuthHolder}. REST endpoint URLs and Kafka bootstrap servers
6
+ * are resolved at call time from the CCloud environment + cluster IDs the
7
+ * agent supplies as tool args.
8
+ *
9
+ * Native Kafka clients are built fresh per call; handlers wrap usage in
10
+ * `try { ... } finally { await disposeIfOAuth(...) }` for caller-owned
11
+ * disposal. SASL/OAUTHBEARER is configured via librdkafka's synchronous
12
+ * token-refresh callback (no kafkaJS-compat async-provider race), so no
13
+ * warmup workaround is needed.
14
+ *
15
+ * Schema Registry serialization is supported through `produce-message` and
16
+ * `consume-messages`: the manager's `getSchemaRegistrySdkClient` auto-resolves
17
+ * the SR cluster id from the environment id supplied by the agent (single SR
18
+ * per environment is the CCloud invariant) and builds a bearer-authenticated
19
+ * SDK client per call.
20
+ */
21
+ import type { KafkaJS } from "@confluentinc/kafka-javascript";
22
+ import { SchemaRegistryClient } from "@confluentinc/schemaregistry";
23
+ import { BaseClientManager, type ConsumerBuildOptions } from "../confluent/base-client-manager.js";
24
+ import type { ConfluentRestClient } from "../confluent/client-manager.js";
25
+ import { OAuthHolder } from "../confluent/oauth/oauth-holder.js";
26
+ import type { Auth0Environment } from "../confluent/oauth/types.js";
27
+ /**
28
+ * Bearer-auth client manager. Wires every REST surface to the OAuth holder's
29
+ * tokens — control plane (cloud / tableflow / telemetry) reads
30
+ * {@link OAuthHolder.getControlPlaneToken}; data plane (flink / schema-registry
31
+ * REST / kafka REST) reads {@link OAuthHolder.getDataPlaneToken}. Cloud REST URL
32
+ * is auto-derived from the CCloud env. Native Kafka clients (admin, producer,
33
+ * consumer) are built fresh per call against bootstrap endpoints resolved
34
+ * via the cmk REST API; SASL/OAUTHBEARER is configured via librdkafka's
35
+ * synchronous token-refresh callback to avoid the kafkaJS-compat
36
+ * async-provider race that previously required a warmup workaround.
37
+ */
38
+ export declare class OAuthClientManager extends BaseClientManager {
39
+ private readonly holder;
40
+ private readonly kafkaDebug;
41
+ /**
42
+ * @param kafkaDebug Optional librdkafka `debug` contexts string, threaded
43
+ * through to every native Kafka client built by this manager. Sourced
44
+ * from `connections.<name>.kafka_debug` on the OAuth YAML arm; used as a
45
+ * diagnostic knob when a SASL/OAUTHBEARER handshake misbehaves.
46
+ */
47
+ constructor(holder: OAuthHolder, env: Auth0Environment, kafkaDebug?: string);
48
+ /** @inheritdoc */
49
+ getSchemaRegistrySdkClient(envId?: string): Promise<SchemaRegistryClient>;
50
+ /** @inheritdoc */
51
+ getConfluentCloudKafkaRestClient(clusterId?: string, envId?: string): Promise<ConfluentRestClient>;
52
+ /** @inheritdoc */
53
+ getSchemaRegistryRestClient(envId?: string): Promise<ConfluentRestClient>;
54
+ /** @inheritdoc */
55
+ getKafkaAdminClient(clusterId?: string, envId?: string): Promise<KafkaJS.Admin>;
56
+ /** @inheritdoc */
57
+ getKafkaProducer(clusterId?: string, envId?: string): Promise<KafkaJS.Producer>;
58
+ /** @inheritdoc */
59
+ buildKafkaConsumer(opts?: ConsumerBuildOptions): Promise<KafkaJS.Consumer>;
60
+ /** @inheritdoc */
61
+ disconnect(): Promise<void>;
62
+ /**
63
+ * Returns the current data-plane token, throwing when none is available.
64
+ * Used by every OAuth-side client accessor to fail fast before
65
+ * constructing a client with an empty bearer.
66
+ *
67
+ * The MCP tool-call gate calls `holder.ensureLoggedIn()` before any
68
+ * handler that needs Confluent access, so by the time this method runs
69
+ * login has already completed. A missing DPAT here means the holder was
70
+ * cleared mid-call (shutdown raced with a tool call) or a non-transient
71
+ * refresh error has invalidated the token between the gate check and
72
+ * the client construction — both rare and surface a clear message.
73
+ */
74
+ private requireDataPlaneToken;
75
+ private requireClusterArgs;
76
+ private buildOAuthKafkaClient;
77
+ }
78
+ //# sourceMappingURL=oauth-client-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-manager.d.ts","sourceRoot":"","sources":["../../src/confluent/oauth-client-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAa5E,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAqBtE;;;;;;;;;;GAUG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;;;;OAKG;gBACS,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM;IA8B3E,kBAAkB;IACZ,0BAA0B,CAC9B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC;IA0BhC,kBAAkB;IACZ,gCAAgC,CACpC,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IAoB/B,kBAAkB;IACZ,2BAA2B,CAC/B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IA0B/B,kBAAkB;IACZ,mBAAmB,CACvB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAuBzB,kBAAkB;IACZ,gBAAgB,CACpB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAQ5B,kBAAkB;IACZ,kBAAkB,CACtB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAe5B,kBAAkB;IACZ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,kBAAkB;YAiBZ,qBAAqB;CAuDpC"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * @fileoverview OAuth (bearer-auth) client manager. Wires Confluent Cloud
3
+ * REST surfaces, native Kafka admin/producer/consumer (via `@confluentinc/kafka-javascript` +
4
+ * SASL/OAUTHBEARER), and the Schema Registry SDK to bearer tokens supplied
5
+ * by an {@link OAuthHolder}. REST endpoint URLs and Kafka bootstrap servers
6
+ * are resolved at call time from the CCloud environment + cluster IDs the
7
+ * agent supplies as tool args.
8
+ *
9
+ * Native Kafka clients are built fresh per call; handlers wrap usage in
10
+ * `try { ... } finally { await disposeIfOAuth(...) }` for caller-owned
11
+ * disposal. SASL/OAUTHBEARER is configured via librdkafka's synchronous
12
+ * token-refresh callback (no kafkaJS-compat async-provider race), so no
13
+ * warmup workaround is needed.
14
+ *
15
+ * Schema Registry serialization is supported through `produce-message` and
16
+ * `consume-messages`: the manager's `getSchemaRegistrySdkClient` auto-resolves
17
+ * the SR cluster id from the environment id supplied by the agent (single SR
18
+ * per environment is the CCloud invariant) and builds a bearer-authenticated
19
+ * SDK client per call.
20
+ */
21
+ import { SchemaRegistryClient } from "@confluentinc/schemaregistry";
22
+ import { BaseClientManager, } from "../confluent/base-client-manager.js";
23
+ import { createAuthMiddleware, } from "../confluent/middleware.js";
24
+ import { kafkaDeps } from "../confluent/node-deps.js";
25
+ import { resolveKafkaBootstrap, resolveKafkaRestEndpoint, resolveSchemaRegistryClusterId, resolveSchemaRegistryEndpoint, } from "../confluent/oauth-resource-resolvers.js";
26
+ import { getCloudRestUrlForEnv } from "../confluent/oauth/auth0-config.js";
27
+ import { kafkaLogger } from "../logger.js";
28
+ import createClient from "openapi-fetch";
29
+ import { DATA_PLANE_TOKEN_LIFETIME_MS } from "./oauth/token-lifetimes.js";
30
+ /**
31
+ * Bearer-auth client manager. Wires every REST surface to the OAuth holder's
32
+ * tokens — control plane (cloud / tableflow / telemetry) reads
33
+ * {@link OAuthHolder.getControlPlaneToken}; data plane (flink / schema-registry
34
+ * REST / kafka REST) reads {@link OAuthHolder.getDataPlaneToken}. Cloud REST URL
35
+ * is auto-derived from the CCloud env. Native Kafka clients (admin, producer,
36
+ * consumer) are built fresh per call against bootstrap endpoints resolved
37
+ * via the cmk REST API; SASL/OAUTHBEARER is configured via librdkafka's
38
+ * synchronous token-refresh callback to avoid the kafkaJS-compat
39
+ * async-provider race that previously required a warmup workaround.
40
+ */
41
+ export class OAuthClientManager extends BaseClientManager {
42
+ holder;
43
+ kafkaDebug;
44
+ /**
45
+ * @param kafkaDebug Optional librdkafka `debug` contexts string, threaded
46
+ * through to every native Kafka client built by this manager. Sourced
47
+ * from `connections.<name>.kafka_debug` on the OAuth YAML arm; used as a
48
+ * diagnostic knob when a SASL/OAUTHBEARER handshake misbehaves.
49
+ */
50
+ constructor(holder, env, kafkaDebug) {
51
+ const cpToken = () => holder.getControlPlaneToken();
52
+ const dpToken = () => holder.getDataPlaneToken();
53
+ super({
54
+ endpoints: {
55
+ // BaseClientManager re-uses `cloud` for the Tableflow base URL too.
56
+ cloud: getCloudRestUrlForEnv(env),
57
+ flink: undefined,
58
+ schemaRegistry: undefined,
59
+ kafka: undefined,
60
+ telemetry: undefined,
61
+ },
62
+ auth: {
63
+ cloud: { type: "oauth", getToken: cpToken },
64
+ tableflow: { type: "oauth", getToken: cpToken },
65
+ telemetry: { type: "oauth", getToken: cpToken },
66
+ flink: { type: "oauth", getToken: dpToken },
67
+ schemaRegistry: { type: "oauth", getToken: dpToken },
68
+ kafka: { type: "oauth", getToken: dpToken },
69
+ },
70
+ });
71
+ this.holder = holder;
72
+ this.kafkaDebug = kafkaDebug;
73
+ // Eager construction: surface the cloud REST client at startup so a bad
74
+ // endpoint or middleware wiring fails fast rather than at first tool call.
75
+ this.getConfluentCloudRestClient();
76
+ }
77
+ /** @inheritdoc */
78
+ async getSchemaRegistrySdkClient(envId) {
79
+ // The SR SDK captures `Authorization: Bearer <token>` in its axios
80
+ // `createAxiosDefaults` at construction time, so a build during initial
81
+ // login or a broken refresh would freeze an empty bearer into every
82
+ // subsequent request — fail fast here before that can happen.
83
+ const dpat = this.requireDataPlaneToken();
84
+ if (!envId) {
85
+ throw new Error("environment_id is required under OAuth for Schema Registry access. " +
86
+ "Call list-environments to discover available environments.");
87
+ }
88
+ const cloud = this.getConfluentCloudRestClient();
89
+ const lsrc = await resolveSchemaRegistryClusterId(cloud, envId);
90
+ const endpoint = await resolveSchemaRegistryEndpoint(cloud, lsrc, envId);
91
+ return new SchemaRegistryClient({
92
+ baseURLs: [endpoint],
93
+ createAxiosDefaults: {
94
+ headers: {
95
+ Authorization: `Bearer ${dpat}`,
96
+ "target-sr-cluster": lsrc,
97
+ },
98
+ },
99
+ });
100
+ }
101
+ /** @inheritdoc */
102
+ async getConfluentCloudKafkaRestClient(clusterId, envId) {
103
+ this.requireClusterArgs(clusterId, envId);
104
+ // The bearer middleware reads `auth.getToken()` per-request, but failing
105
+ // fast here gives the agent a clear error rather than letting an empty
106
+ // bearer go out on the wire.
107
+ this.requireDataPlaneToken();
108
+ const baseUrl = await resolveKafkaRestEndpoint(this.getConfluentCloudRestClient(), clusterId, envId);
109
+ const auth = {
110
+ type: "oauth",
111
+ getToken: () => this.holder.getDataPlaneToken(),
112
+ };
113
+ const client = createClient({ baseUrl });
114
+ client.use(createAuthMiddleware(auth));
115
+ return client;
116
+ }
117
+ /** @inheritdoc */
118
+ async getSchemaRegistryRestClient(envId) {
119
+ this.requireDataPlaneToken();
120
+ if (!envId) {
121
+ throw new Error("environment_id is required under OAuth for Schema Registry REST access. " +
122
+ "Call list-environments to discover available environments.");
123
+ }
124
+ const cloud = this.getConfluentCloudRestClient();
125
+ const lsrc = await resolveSchemaRegistryClusterId(cloud, envId);
126
+ const baseUrl = await resolveSchemaRegistryEndpoint(cloud, lsrc, envId);
127
+ const auth = {
128
+ type: "oauth",
129
+ getToken: () => this.holder.getDataPlaneToken(),
130
+ };
131
+ const client = createClient({
132
+ baseUrl,
133
+ // The `target-sr-cluster` header pins all requests on this client to
134
+ // the right logical SR cluster — mirrors the SR SDK construction in
135
+ // `getSchemaRegistrySdkClient`.
136
+ headers: { "target-sr-cluster": lsrc },
137
+ });
138
+ client.use(createAuthMiddleware(auth));
139
+ return client;
140
+ }
141
+ /** @inheritdoc */
142
+ async getKafkaAdminClient(clusterId, envId) {
143
+ this.requireClusterArgs(clusterId, envId);
144
+ const kafka = await this.buildOAuthKafkaClient(clusterId, envId);
145
+ const admin = kafka.admin();
146
+ try {
147
+ await admin.connect();
148
+ // Metadata warmup: `admin.connect()` returns before librdkafka has
149
+ // discovered the controller broker. The first non-list operation
150
+ // (createTopics, deleteTopics) needs the controller and times out
151
+ // locally if metadata isn't yet cached. listTopics is a cheap
152
+ // metadata-only roundtrip that primes the broker map; subsequent
153
+ // ops on this admin instance reuse it. Costs ~50-200ms per OAuth
154
+ // admin call; acceptable given clients are per-call by design.
155
+ await admin.listTopics();
156
+ return admin;
157
+ }
158
+ catch (err) {
159
+ // Disconnect the half-built admin so we don't leak the broker
160
+ // connection on a failed warmup.
161
+ await admin.disconnect().catch(() => undefined);
162
+ throw err;
163
+ }
164
+ }
165
+ /** @inheritdoc */
166
+ async getKafkaProducer(clusterId, envId) {
167
+ this.requireClusterArgs(clusterId, envId);
168
+ const kafka = await this.buildOAuthKafkaClient(clusterId, envId);
169
+ const producer = kafka.producer();
170
+ await producer.connect();
171
+ return producer;
172
+ }
173
+ /** @inheritdoc */
174
+ async buildKafkaConsumer(opts) {
175
+ this.requireClusterArgs(opts?.clusterId, opts?.envId);
176
+ const kafka = await this.buildOAuthKafkaClient(opts.clusterId, opts.envId);
177
+ return kafka.consumer({
178
+ kafkaJS: {
179
+ groupId: opts?.groupId ?? "mcp-confluent",
180
+ autoCommit: false,
181
+ },
182
+ "auto.offset.reset": opts?.offsetReset ?? "earliest",
183
+ });
184
+ }
185
+ /** @inheritdoc */
186
+ async disconnect() {
187
+ // No state to drain — every Kafka client is caller-owned and disposed
188
+ // by the handler's `finally` block via `disposeIfOAuth`.
189
+ }
190
+ /**
191
+ * Returns the current data-plane token, throwing when none is available.
192
+ * Used by every OAuth-side client accessor to fail fast before
193
+ * constructing a client with an empty bearer.
194
+ *
195
+ * The MCP tool-call gate calls `holder.ensureLoggedIn()` before any
196
+ * handler that needs Confluent access, so by the time this method runs
197
+ * login has already completed. A missing DPAT here means the holder was
198
+ * cleared mid-call (shutdown raced with a tool call) or a non-transient
199
+ * refresh error has invalidated the token between the gate check and
200
+ * the client construction — both rare and surface a clear message.
201
+ */
202
+ requireDataPlaneToken() {
203
+ const dpat = this.holder.getDataPlaneToken();
204
+ if (!dpat) {
205
+ throw new Error("No data-plane token available. The OAuth holder may have been " +
206
+ "shut down or an authentication error has invalidated the token.");
207
+ }
208
+ return dpat;
209
+ }
210
+ requireClusterArgs(clusterId, envId) {
211
+ if (clusterId === undefined || envId === undefined) {
212
+ // Defensive check — handlers should validate arg-name shape and throw
213
+ // their own user-facing error via resolveKafkaClusterArgs (native, snake_case)
214
+ // or resolveKafkaRestArgs (REST, camelCase) before reaching the manager.
215
+ // This message fires only when a caller bypasses those resolvers, so
216
+ // it's worded generically rather than tied to either arg-name convention.
217
+ throw new Error("OAuth client construction requires a cluster id and environment id. " +
218
+ "Discover via list-environments and list-clusters; pass the cluster's `id` and `spec.environment.id`.");
219
+ }
220
+ }
221
+ async buildOAuthKafkaClient(clusterId, envId) {
222
+ // Ensure the DPAT is populated before librdkafka starts the SASL
223
+ // handshake — the synchronous `oauthbearer_token_refresh_cb` (configured
224
+ // below) reads it on demand, so an empty token here would surface as a
225
+ // broker-side auth failure with no useful diagnostic.
226
+ this.requireDataPlaneToken();
227
+ // librdkafka debug logs — gated by `kafka_debug` on the OAuth YAML arm so
228
+ // they don't pollute normal server stderr. Set
229
+ // `connections.<name>.kafka_debug: "security,broker,protocol"` (or "all")
230
+ // to see the full SASL/OAUTHBEARER handshake and broker traffic.
231
+ const debug = this.kafkaDebug;
232
+ const bootstrap = await resolveKafkaBootstrap(this.getConfluentCloudRestClient(), clusterId, envId);
233
+ const config = {
234
+ "bootstrap.servers": bootstrap,
235
+ "security.protocol": "sasl_ssl",
236
+ "sasl.mechanisms": "OAUTHBEARER",
237
+ // Synchronous librdkafka-native refresh callback. Reads the holder's
238
+ // current DPAT and pushes it into librdkafka via postProcessTokenRefresh
239
+ // inline — no async, no microtask race with the SASL state machine.
240
+ oauthbearer_token_refresh_cb: (_oauthbearerConfig, postProcessTokenRefresh) => {
241
+ const dpat = this.holder.getDataPlaneToken();
242
+ if (!dpat) {
243
+ postProcessTokenRefresh(new Error("Data-plane token unavailable for SASL refresh"));
244
+ return;
245
+ }
246
+ postProcessTokenRefresh(null, {
247
+ tokenValue: dpat,
248
+ lifetime: Date.now() + DATA_PLANE_TOKEN_LIFETIME_MS,
249
+ principal: clusterId,
250
+ extensions: { logicalCluster: clusterId },
251
+ });
252
+ },
253
+ ...(debug ? { debug } : {}),
254
+ };
255
+ // Critical for stdio MCP: route KafkaJS / librdkafka logs through pino
256
+ // (which writes to stderr). Without this, the default logger prints to
257
+ // stdout in pretty format, corrupting the stdio JSON-RPC stream.
258
+ return new kafkaDeps.Kafka({
259
+ ...config,
260
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
261
+ kafkaJS: { logger: kafkaLogger },
262
+ });
263
+ }
264
+ }
265
+ //# sourceMappingURL=oauth-client-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-manager.js","sourceRoot":"","sources":["../../src/confluent/oauth-client-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,iBAAiB,GAElB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAiB1E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACtC,MAAM,CAAc;IACpB,UAAU,CAAqB;IAEhD;;;;;OAKG;IACH,YAAY,MAAmB,EAAE,GAAqB,EAAE,UAAmB;QACzE,MAAM,OAAO,GAAG,GAAuB,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,GAAuB,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACrE,KAAK,CAAC;YACJ,SAAS,EAAE;gBACT,oEAAoE;gBACpE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC;gBACjC,KAAK,EAAE,SAAS;gBAChB,cAAc,EAAE,SAAS;gBACzB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS;aACrB;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC/C,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC3C,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACpD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,wEAAwE;QACxE,2EAA2E;QAC3E,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,0BAA0B,CAC9B,KAAc;QAEd,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,qEAAqE;gBACnE,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACzE,OAAO,IAAI,oBAAoB,CAAC;YAC9B,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACpB,mBAAmB,EAAE;gBACnB,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,EAAE;oBAC/B,mBAAmB,EAAE,IAAI;iBAC1B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,gCAAgC,CACpC,SAAkB,EAClB,KAAc;QAEd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,yEAAyE;QACzE,uEAAuE;QACvE,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAC5C,IAAI,CAAC,2BAA2B,EAAE,EAClC,SAAU,EACV,KAAM,CACP,CAAC;QACF,MAAM,IAAI,GAAkB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,2BAA2B,CAC/B,KAAc;QAEd,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,0EAA0E;gBACxE,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACxE,MAAM,IAAI,GAAkB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAQ;YACjC,OAAO;YACP,qEAAqE;YACrE,oEAAoE;YACpE,gCAAgC;YAChC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,mBAAmB,CACvB,SAAkB,EAClB,KAAc;QAEd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAU,EAAE,KAAM,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,mEAAmE;YACnE,iEAAiE;YACjE,kEAAkE;YAClE,8DAA8D;YAC9D,iEAAiE;YACjE,iEAAiE;YACjE,+DAA+D;YAC/D,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8DAA8D;YAC9D,iCAAiC;YACjC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,gBAAgB,CACpB,SAAkB,EAClB,KAAc;QAEd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAU,EAAE,KAAM,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,kBAAkB,CACtB,IAA2B;QAE3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC5C,IAAK,CAAC,SAAU,EAChB,IAAK,CAAC,KAAM,CACb,CAAC;QACF,OAAO,KAAK,CAAC,QAAQ,CAAC;YACpB,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,eAAe;gBACzC,UAAU,EAAE,KAAK;aAClB;YACD,mBAAmB,EAAE,IAAI,EAAE,WAAW,IAAI,UAAU;SACrD,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,UAAU;QACd,sEAAsE;QACtE,yDAAyD;IAC3D,CAAC;IAED;;;;;;;;;;;OAWG;IACK,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,gEAAgE;gBAC9D,iEAAiE,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CACxB,SAA6B,EAC7B,KAAyB;QAEzB,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACnD,sEAAsE;YACtE,+EAA+E;YAC/E,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,MAAM,IAAI,KAAK,CACb,sEAAsE;gBACpE,sGAAsG,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,SAAiB,EACjB,KAAa;QAEb,iEAAiE;QACjE,yEAAyE;QACzE,uEAAuE;QACvE,sDAAsD;QACtD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,+CAA+C;QAC/C,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAC3C,IAAI,CAAC,2BAA2B,EAAE,EAClC,SAAS,EACT,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAiB;YAC3B,mBAAmB,EAAE,SAAS;YAC9B,mBAAmB,EAAE,UAAU;YAC/B,iBAAiB,EAAE,aAAa;YAChC,qEAAqE;YACrE,yEAAyE;YACzE,oEAAoE;YACpE,4BAA4B,EAAE,CAC5B,kBAA0B,EAC1B,uBAAgD,EAC1C,EAAE;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,uBAAuB,CACrB,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAC3D,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,uBAAuB,CAAC,IAAI,EAAE;oBAC5B,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B;oBACnD,SAAS,EAAE,SAAS;oBACpB,UAAU,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC;QACF,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC;YACzB,GAAG,MAAM;YACT,8DAA8D;YAC9D,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAS;SACxC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { ConfluentRestClient } from "../confluent/client-manager.js";
2
+ export declare function resolveKafkaBootstrap(cloudClient: ConfluentRestClient, clusterId: string, envId: string): Promise<string>;
3
+ export declare function resolveKafkaRestEndpoint(cloudClient: ConfluentRestClient, clusterId: string, envId: string): Promise<string>;
4
+ export declare function resolveSchemaRegistryEndpoint(cloudClient: ConfluentRestClient, clusterId: string, envId: string): Promise<string>;
5
+ export declare function resolveSchemaRegistryClusterId(cloudClient: ConfluentRestClient, envId: string): Promise<string>;
6
+ //# sourceMappingURL=oauth-resource-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-resource-resolvers.d.ts","sourceRoot":"","sources":["../../src/confluent/oauth-resource-resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAgCjB"}