@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.
- package/README.md +299 -240
- package/assets/oauth-templates/callback-failure.html +22 -0
- package/assets/oauth-templates/callback-success.html +99 -0
- package/assets/oauth-templates/logo.html +91 -0
- package/assets/oauth-templates/styles.html +110 -0
- package/config.example.yaml +149 -0
- package/config.oauth.example.yaml +45 -0
- package/dist/cli.d.ts +59 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +131 -61
- package/dist/cli.js.map +1 -1
- package/dist/config/env-config.d.ts +33 -0
- package/dist/config/env-config.d.ts.map +1 -0
- package/dist/config/env-config.js +478 -0
- package/dist/config/env-config.js.map +1 -0
- package/dist/config/index.d.ts +31 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +76 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/interpolation.d.ts +9 -0
- package/dist/config/interpolation.d.ts.map +1 -0
- package/dist/config/interpolation.js +51 -0
- package/dist/config/interpolation.js.map +1 -0
- package/dist/config/models.d.ts +399 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +406 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +46 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/confluent/base-client-manager.d.ts +133 -0
- package/dist/confluent/base-client-manager.d.ts.map +1 -0
- package/dist/confluent/base-client-manager.js +188 -0
- package/dist/confluent/base-client-manager.js.map +1 -0
- package/dist/confluent/client-manager.d.ts +42 -77
- package/dist/confluent/client-manager.d.ts.map +1 -1
- package/dist/confluent/client-manager.js +5 -213
- package/dist/confluent/client-manager.js.map +1 -1
- package/dist/confluent/config-telemetry.d.ts +41 -0
- package/dist/confluent/config-telemetry.d.ts.map +1 -0
- package/dist/confluent/config-telemetry.js +17 -0
- package/dist/confluent/config-telemetry.js.map +1 -0
- package/dist/confluent/direct-client-manager.d.ts +43 -0
- package/dist/confluent/direct-client-manager.d.ts.map +1 -0
- package/dist/confluent/direct-client-manager.js +154 -0
- package/dist/confluent/direct-client-manager.js.map +1 -0
- package/dist/confluent/middleware.d.ts +32 -4
- package/dist/confluent/middleware.d.ts.map +1 -1
- package/dist/confluent/middleware.js +46 -2
- package/dist/confluent/middleware.js.map +1 -1
- package/dist/confluent/node-deps.d.ts +33 -39
- package/dist/confluent/node-deps.d.ts.map +1 -1
- package/dist/confluent/node-deps.js +48 -7
- package/dist/confluent/node-deps.js.map +1 -1
- package/dist/confluent/oauth/auth-context.d.ts +94 -0
- package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
- package/dist/confluent/oauth/auth-context.js +323 -0
- package/dist/confluent/oauth/auth-context.js.map +1 -0
- package/dist/confluent/oauth/auth0-config.d.ts +12 -0
- package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
- package/dist/confluent/oauth/auth0-config.js +43 -0
- package/dist/confluent/oauth/auth0-config.js.map +1 -0
- package/dist/confluent/oauth/callback-pages.d.ts +13 -0
- package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
- package/dist/confluent/oauth/callback-pages.js +47 -0
- package/dist/confluent/oauth/callback-pages.js.map +1 -0
- package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
- package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
- package/dist/confluent/oauth/crypto-utils.js +23 -0
- package/dist/confluent/oauth/crypto-utils.js.map +1 -0
- package/dist/confluent/oauth/errors.d.ts +27 -0
- package/dist/confluent/oauth/errors.d.ts.map +1 -0
- package/dist/confluent/oauth/errors.js +6 -0
- package/dist/confluent/oauth/errors.js.map +1 -0
- package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
- package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
- package/dist/confluent/oauth/oauth-holder.js +155 -0
- package/dist/confluent/oauth/oauth-holder.js.map +1 -0
- package/dist/confluent/oauth/pkce-login.d.ts +45 -0
- package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
- package/dist/confluent/oauth/pkce-login.js +270 -0
- package/dist/confluent/oauth/pkce-login.js.map +1 -0
- package/dist/confluent/oauth/token-chain.d.ts +53 -0
- package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
- package/dist/confluent/oauth/token-chain.js +141 -0
- package/dist/confluent/oauth/token-chain.js.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.js +13 -0
- package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
- package/dist/confluent/oauth/types.d.ts +68 -0
- package/dist/confluent/oauth/types.d.ts.map +1 -0
- package/dist/confluent/oauth/types.js +2 -0
- package/dist/confluent/oauth/types.js.map +1 -0
- package/dist/confluent/oauth-client-manager.d.ts +78 -0
- package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
- package/dist/confluent/oauth-client-manager.js +265 -0
- package/dist/confluent/oauth-client-manager.js.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.js +65 -0
- package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
- package/dist/confluent/schema-registry-helper.d.ts +5 -9
- package/dist/confluent/schema-registry-helper.d.ts.map +1 -1
- package/dist/confluent/schema-registry-helper.js +1 -9
- package/dist/confluent/schema-registry-helper.js.map +1 -1
- package/dist/confluent/telemetry.d.ts +38 -1
- package/dist/confluent/telemetry.d.ts.map +1 -1
- package/dist/confluent/telemetry.js +37 -8
- package/dist/confluent/telemetry.js.map +1 -1
- package/dist/confluent/tools/base-tools.d.ts +140 -23
- package/dist/confluent/tools/base-tools.d.ts.map +1 -1
- package/dist/confluent/tools/base-tools.js +98 -4
- package/dist/confluent/tools/base-tools.js.map +1 -1
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
- package/dist/confluent/tools/connection-predicates.d.ts +176 -0
- package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
- package/dist/confluent/tools/connection-predicates.js +284 -0
- package/dist/confluent/tools/connection-predicates.js.map +1 -0
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +5 -6
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +40 -11
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +6 -6
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +6 -9
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +6 -6
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +6 -9
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +6 -6
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.js +6 -9
- package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +6 -6
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.js +6 -9
- package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +6 -6
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +6 -9
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +5 -6
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -13
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +34 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +47 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js +66 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js +131 -0
- package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js +244 -0
- package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js +44 -0
- package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/pause-connector-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/pause-connector-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/restart-connector-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/restart-connector-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/resume-connector-handler.js +35 -0
- package/dist/confluent/tools/handlers/connect/resume-connector-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts +9 -0
- package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js +44 -0
- package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +58 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +135 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +18 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +235 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +14 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +286 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +11 -12
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js +11 -14
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +5 -6
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js +6 -9
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +32 -11
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +22 -16
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +34 -30
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +34 -30
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +21 -24
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +21 -24
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +22 -33
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +15 -2
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +22 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +32 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -17
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +5 -6
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +22 -20
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +216 -30
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +797 -70
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts +48 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js +84 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts +54 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js +89 -0
- package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +5 -5
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +52 -15
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +5 -5
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +26 -8
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts +64 -0
- package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js +140 -0
- package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts +73 -0
- package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js +337 -0
- package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts +43 -0
- package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js +123 -0
- package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +5 -6
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js +22 -20
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts +45 -0
- package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js +86 -0
- package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +5 -5
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +25 -10
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts +54 -0
- package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/partition-watermarks.js +56 -0
- package/dist/confluent/tools/handlers/kafka/partition-watermarks.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -8
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +57 -46
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts +18 -0
- package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/topic-metadata.js +18 -0
- package/dist/confluent/tools/handlers/kafka/topic-metadata.js.map +1 -0
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +6 -6
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +6 -9
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +24 -6
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +88 -53
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +50 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +116 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +5 -5
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +13 -8
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +5 -5
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +13 -7
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +6 -6
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +6 -9
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +6 -6
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +6 -9
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +18 -21
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +26 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +28 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/tool-availability.d.ts +91 -0
- package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
- package/dist/confluent/tools/tool-availability.js +130 -0
- package/dist/confluent/tools/tool-availability.js.map +1 -0
- package/dist/confluent/tools/tool-name.d.ts +20 -2
- package/dist/confluent/tools/tool-name.d.ts.map +1 -1
- package/dist/confluent/tools/tool-name.js +19 -1
- package/dist/confluent/tools/tool-name.js.map +1 -1
- package/dist/confluent/tools/tool-registry.d.ts +17 -0
- package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
- package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +66 -22
- package/dist/confluent/tools/tool-registry.js.map +1 -0
- package/dist/env-schema.d.ts +6 -7
- package/dist/env-schema.d.ts.map +1 -1
- package/dist/env-schema.js +30 -44
- package/dist/env-schema.js.map +1 -1
- package/dist/env.d.ts +17 -7
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +16 -6
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +74 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +302 -166
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +21 -20
- package/dist/logger.js.map +1 -1
- package/dist/mcp/server.d.ts +29 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +53 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/transports/auth.d.ts +20 -4
- package/dist/mcp/transports/auth.d.ts.map +1 -1
- package/dist/mcp/transports/auth.js +27 -7
- package/dist/mcp/transports/auth.js.map +1 -1
- package/dist/mcp/transports/http.d.ts +8 -2
- package/dist/mcp/transports/http.d.ts.map +1 -1
- package/dist/mcp/transports/http.js +57 -42
- package/dist/mcp/transports/http.js.map +1 -1
- package/dist/mcp/transports/manager.d.ts +23 -9
- package/dist/mcp/transports/manager.d.ts.map +1 -1
- package/dist/mcp/transports/manager.js +27 -24
- package/dist/mcp/transports/manager.js.map +1 -1
- package/dist/mcp/transports/server.d.ts +1 -1
- package/dist/mcp/transports/server.d.ts.map +1 -1
- package/dist/mcp/transports/server.js +17 -5
- package/dist/mcp/transports/server.js.map +1 -1
- package/dist/mcp/transports/session-registry.d.ts +33 -0
- package/dist/mcp/transports/session-registry.d.ts.map +1 -0
- package/dist/mcp/transports/session-registry.js +65 -0
- package/dist/mcp/transports/session-registry.js.map +1 -0
- package/dist/mcp/transports/sse.d.ts +13 -2
- package/dist/mcp/transports/sse.d.ts.map +1 -1
- package/dist/mcp/transports/sse.js +58 -46
- package/dist/mcp/transports/sse.js.map +1 -1
- package/dist/server-runtime.d.ts +28 -0
- package/dist/server-runtime.d.ts.map +1 -0
- package/dist/server-runtime.js +73 -0
- package/dist/server-runtime.js.map +1 -0
- package/package.json +26 -9
- package/dist/confluent/helpers.d.ts +0 -11
- package/dist/confluent/helpers.d.ts.map +0 -1
- package/dist/confluent/helpers.js +0 -17
- package/dist/confluent/helpers.js.map +0 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +0 -11
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +0 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +0 -59
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +0 -1
- package/dist/confluent/tools/tool-factory.d.ts +0 -9
- package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
- package/dist/confluent/tools/tool-factory.js.map +0 -1
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
import { formatZodIssues, KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS, mcpConfigSchema, MCPServerConfiguration, } from "../config/models.js";
|
|
2
|
+
import { logger } from "../logger.js";
|
|
3
|
+
/**
|
|
4
|
+
* Connection name synthesized by the env-var path. Chosen as `"_default"` so
|
|
5
|
+
* the YAML loader can reuse the same name as the zero-config fallback.
|
|
6
|
+
*
|
|
7
|
+
* Fallback contract: with no CLI args and no env vars, this module produces
|
|
8
|
+
* `connections: { _default: { type: "direct" } }` alongside the
|
|
9
|
+
* always-present `server` block. This yields a config with no service
|
|
10
|
+
* blocks, so only connection-agnostic tools are enabled. When the env-var
|
|
11
|
+
* path is retired, the YAML loader must preserve this connection shape.
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_CONNECTION_NAME = "_default";
|
|
14
|
+
/** The manufactured document path prefix for the single connection configured from env vars. */
|
|
15
|
+
const CONN = `connections.${DEFAULT_CONNECTION_NAME}`;
|
|
16
|
+
/**
|
|
17
|
+
* Maps each environment variable in type Environment (and handled by buildConfigFromEnvAndCli)
|
|
18
|
+
* to its corresponding Zod document path in the manufactured MCPServerConfiguration.
|
|
19
|
+
*/
|
|
20
|
+
const ENV_VAR_TO_ZPATH = {
|
|
21
|
+
// Kafka connection parameters
|
|
22
|
+
BOOTSTRAP_SERVERS: `${CONN}.kafka.bootstrap_servers`,
|
|
23
|
+
KAFKA_API_KEY: `${CONN}.kafka.auth.key`,
|
|
24
|
+
KAFKA_API_SECRET: `${CONN}.kafka.auth.secret`,
|
|
25
|
+
KAFKA_REST_ENDPOINT: `${CONN}.kafka.rest_endpoint`,
|
|
26
|
+
KAFKA_CLUSTER_ID: `${CONN}.kafka.cluster_id`,
|
|
27
|
+
KAFKA_ENV_ID: `${CONN}.kafka.env_id`,
|
|
28
|
+
// Schema Registry connection parameters
|
|
29
|
+
SCHEMA_REGISTRY_ENDPOINT: `${CONN}.schema_registry.endpoint`,
|
|
30
|
+
SCHEMA_REGISTRY_API_KEY: `${CONN}.schema_registry.auth.key`,
|
|
31
|
+
SCHEMA_REGISTRY_API_SECRET: `${CONN}.schema_registry.auth.secret`,
|
|
32
|
+
// Confluent Cloud control plane parameters
|
|
33
|
+
CONFLUENT_CLOUD_REST_ENDPOINT: `${CONN}.confluent_cloud.endpoint`,
|
|
34
|
+
CONFLUENT_CLOUD_API_KEY: `${CONN}.confluent_cloud.auth.key`,
|
|
35
|
+
CONFLUENT_CLOUD_API_SECRET: `${CONN}.confluent_cloud.auth.secret`,
|
|
36
|
+
CONFLUENT_CLOUD_ORG_ID: `${CONN}.confluent_cloud.organization_id`,
|
|
37
|
+
// Tableflow parameters
|
|
38
|
+
TABLEFLOW_API_KEY: `${CONN}.tableflow.auth.key`,
|
|
39
|
+
TABLEFLOW_API_SECRET: `${CONN}.tableflow.auth.secret`,
|
|
40
|
+
// Flink parameters
|
|
41
|
+
FLINK_REST_ENDPOINT: `${CONN}.flink.endpoint`,
|
|
42
|
+
FLINK_API_KEY: `${CONN}.flink.auth.key`,
|
|
43
|
+
FLINK_API_SECRET: `${CONN}.flink.auth.secret`,
|
|
44
|
+
FLINK_ENV_ID: `${CONN}.flink.environment_id`,
|
|
45
|
+
FLINK_ORG_ID: `${CONN}.flink.organization_id`,
|
|
46
|
+
FLINK_COMPUTE_POOL_ID: `${CONN}.flink.compute_pool_id`,
|
|
47
|
+
// FLINK_CATALOG_NAME comes before FLINK_ENV_NAME so error-message humanization
|
|
48
|
+
// (which iterates this map in insertion order) surfaces the preferred name.
|
|
49
|
+
FLINK_CATALOG_NAME: `${CONN}.flink.catalog_name`,
|
|
50
|
+
FLINK_ENV_NAME: `${CONN}.flink.catalog_name`,
|
|
51
|
+
FLINK_DATABASE_NAME: `${CONN}.flink.database_name`,
|
|
52
|
+
// Telemetry parameters
|
|
53
|
+
TELEMETRY_ENDPOINT: `${CONN}.telemetry.endpoint`,
|
|
54
|
+
TELEMETRY_API_KEY: `${CONN}.telemetry.auth.key`,
|
|
55
|
+
TELEMETRY_API_SECRET: `${CONN}.telemetry.auth.secret`,
|
|
56
|
+
// Analytics (internal-dev-only: Segment write key override)
|
|
57
|
+
TELEMETRY_WRITE_KEY: "server.analytics.write_key",
|
|
58
|
+
// OAuth diagnostic knob — only meaningful when --oauth is also set, in which
|
|
59
|
+
// case buildConfigFromEnv synthesizes the OAuth connection arm that carries it.
|
|
60
|
+
OAUTH_KAFKA_DEBUG: `${CONN}.kafka_debug`,
|
|
61
|
+
// Server configuration
|
|
62
|
+
LOG_LEVEL: "server.log_level",
|
|
63
|
+
HTTP_PORT: "server.http.port",
|
|
64
|
+
HTTP_HOST: "server.http.host",
|
|
65
|
+
HTTP_MCP_ENDPOINT_PATH: "server.http.mcp_endpoint",
|
|
66
|
+
SSE_MCP_ENDPOINT_PATH: "server.http.sse_endpoint",
|
|
67
|
+
SSE_MCP_MESSAGE_ENDPOINT_PATH: "server.http.sse_message_endpoint",
|
|
68
|
+
MCP_API_KEY: "server.auth.api_key",
|
|
69
|
+
MCP_AUTH_DISABLED: "server.auth.disabled",
|
|
70
|
+
MCP_ALLOWED_HOSTS: "server.auth.allowed_hosts",
|
|
71
|
+
DO_NOT_TRACK: "server.do_not_track",
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Constructs a single-direct-connection MCPServerConfiguration from environment variables.
|
|
75
|
+
*
|
|
76
|
+
* This is peer to the functionality provided by loadConfigFromYaml(), but for users
|
|
77
|
+
* who want to configure the server solely via (legacy) environment variables. Called when
|
|
78
|
+
* no YAML config file is provided via CLI args.
|
|
79
|
+
*
|
|
80
|
+
* @returns MCPServerConfiguration with a single connection constructed from an Environment object
|
|
81
|
+
* @throws Error if required environment variables are missing or if validation fails
|
|
82
|
+
*/
|
|
83
|
+
function buildConfigFromEnv(env, authOverrides = {}, kafkaConfig, oauth) {
|
|
84
|
+
// OAuth path: synthesize a single OAuth-typed connection. No surface blocks,
|
|
85
|
+
// no auth fields. ccloud_env defaults to "prod" via the schema.
|
|
86
|
+
if (oauth) {
|
|
87
|
+
const rawDocument = {
|
|
88
|
+
connections: {
|
|
89
|
+
[DEFAULT_CONNECTION_NAME]: {
|
|
90
|
+
type: "oauth",
|
|
91
|
+
...(oauth.ccloudEnv && {
|
|
92
|
+
ccloud_env: oauth.ccloudEnv,
|
|
93
|
+
}),
|
|
94
|
+
...(env.OAUTH_KAFKA_DEBUG !== undefined && {
|
|
95
|
+
kafka_debug: env.OAUTH_KAFKA_DEBUG,
|
|
96
|
+
}),
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
...buildServerBlock(env, authOverrides),
|
|
100
|
+
};
|
|
101
|
+
const result = mcpConfigSchema.safeParse(rawDocument);
|
|
102
|
+
if (!result.success) {
|
|
103
|
+
// Server-config validation can still fail on the OAuth path
|
|
104
|
+
// (e.g., MCP_API_KEY length / disabled+api_key conflict). Run the
|
|
105
|
+
// env-var humanizer so users see env-var names, not schema paths.
|
|
106
|
+
const formattedIssues = humanizeEnvConfigPaths(formatZodIssues(result.error.issues));
|
|
107
|
+
throw new Error(`Failed to construct OAuth MCPServerConfiguration from environment variables:\n${formattedIssues}`);
|
|
108
|
+
}
|
|
109
|
+
return new MCPServerConfiguration(result.data);
|
|
110
|
+
}
|
|
111
|
+
const connection = { type: "direct" };
|
|
112
|
+
// Each connection builder returns { <blockKey>: { ...fields } } or null — the key is owned
|
|
113
|
+
// by the builder, not the caller. See builder docstrings for the env vars each handles.
|
|
114
|
+
const connectionBuilders = [
|
|
115
|
+
buildKafkaBlock,
|
|
116
|
+
buildSchemaRegistryBlock,
|
|
117
|
+
buildConfluentCloudBlock,
|
|
118
|
+
buildTableflowBlock,
|
|
119
|
+
buildTelemetryBlock,
|
|
120
|
+
buildFlinkBlock,
|
|
121
|
+
];
|
|
122
|
+
for (const build of connectionBuilders) {
|
|
123
|
+
const result = build(env);
|
|
124
|
+
if (result)
|
|
125
|
+
Object.assign(connection, result);
|
|
126
|
+
}
|
|
127
|
+
if (kafkaConfig) {
|
|
128
|
+
connection.kafka = mergeKafkaConfigIntoRawBlock(connection.kafka, kafkaConfig);
|
|
129
|
+
}
|
|
130
|
+
// Build root document with both the connection and the server block.
|
|
131
|
+
// authOverrides are folded in here so Zod validates the final combined state,
|
|
132
|
+
// including the disabled+api_key mutual exclusion refine.
|
|
133
|
+
const rawDocument = {
|
|
134
|
+
connections: { [DEFAULT_CONNECTION_NAME]: connection },
|
|
135
|
+
...buildServerBlock(env, authOverrides),
|
|
136
|
+
};
|
|
137
|
+
// Validate the manufactured config object against the schema, as if it were loaded from a YAML file.
|
|
138
|
+
//
|
|
139
|
+
// (We do this inline here so that we can reverse project any validation errors back into the
|
|
140
|
+
// env var space in the catch block, which we would not be able to do if we deferred validation
|
|
141
|
+
// to a single codepath shared with YAML-loaded configs.)
|
|
142
|
+
const result = mcpConfigSchema.safeParse(rawDocument);
|
|
143
|
+
if (!result.success) {
|
|
144
|
+
const formattedIssues = humanizeEnvConfigPaths(formatZodIssues(result.error.issues));
|
|
145
|
+
throw new Error(`Failed to construct MCPServerConfiguration from environment variables:\n${formattedIssues}`);
|
|
146
|
+
}
|
|
147
|
+
return new MCPServerConfiguration(result.data);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Constructs a fully-resolved MCPServerConfiguration from environment variables and optional
|
|
151
|
+
* CLI flag overrides. Extends {@link buildConfigFromEnv} by folding in the three CLI flags that
|
|
152
|
+
* are only valid on the env-var path (`--disable-auth`, `--allowed-hosts`, `--kafka-config-file`),
|
|
153
|
+
* so that the returned config needs no further patching by the caller.
|
|
154
|
+
*
|
|
155
|
+
* @param env - Environment variables (same contract as {@link buildConfigFromEnv})
|
|
156
|
+
* @param overrides - CLI flag values to merge on top of the env-var-derived config
|
|
157
|
+
*/
|
|
158
|
+
export function buildConfigFromEnvAndCli(env, overrides = {}) {
|
|
159
|
+
return buildConfigFromEnv(env, {
|
|
160
|
+
disableAuth: overrides.disableAuth,
|
|
161
|
+
allowedHosts: overrides.allowedHosts,
|
|
162
|
+
}, overrides.kafkaConfig, overrides.oauth ? { ccloudEnv: overrides.ccloudEnv } : undefined);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Builds the `kafka` connection block from env vars. Triggered when any Kafka-related
|
|
166
|
+
* env var is set. All fields are optional; at least one connectivity field
|
|
167
|
+
* (bootstrap_servers, rest_endpoint, cluster_id, or env_id) is required by the schema.
|
|
168
|
+
*
|
|
169
|
+
* Equivalent YAML:
|
|
170
|
+
*
|
|
171
|
+
* kafka:
|
|
172
|
+
* bootstrap_servers: "${BOOTSTRAP_SERVERS}"
|
|
173
|
+
* rest_endpoint: "${KAFKA_REST_ENDPOINT}"
|
|
174
|
+
* cluster_id: "${KAFKA_CLUSTER_ID}"
|
|
175
|
+
* env_id: "${KAFKA_ENV_ID}"
|
|
176
|
+
* auth:
|
|
177
|
+
* type: api_key
|
|
178
|
+
* key: "${KAFKA_API_KEY}"
|
|
179
|
+
* secret: "${KAFKA_API_SECRET}"
|
|
180
|
+
*/
|
|
181
|
+
function buildKafkaBlock(env) {
|
|
182
|
+
if (!env.BOOTSTRAP_SERVERS &&
|
|
183
|
+
!env.KAFKA_API_KEY &&
|
|
184
|
+
!env.KAFKA_API_SECRET &&
|
|
185
|
+
!env.KAFKA_REST_ENDPOINT &&
|
|
186
|
+
!env.KAFKA_CLUSTER_ID &&
|
|
187
|
+
!env.KAFKA_ENV_ID)
|
|
188
|
+
return null;
|
|
189
|
+
return {
|
|
190
|
+
kafka: {
|
|
191
|
+
...(env.BOOTSTRAP_SERVERS && {
|
|
192
|
+
bootstrap_servers: env.BOOTSTRAP_SERVERS,
|
|
193
|
+
}),
|
|
194
|
+
...apiKeyAuth(env.KAFKA_API_KEY, env.KAFKA_API_SECRET),
|
|
195
|
+
...(env.KAFKA_REST_ENDPOINT && {
|
|
196
|
+
rest_endpoint: env.KAFKA_REST_ENDPOINT,
|
|
197
|
+
}),
|
|
198
|
+
...(env.KAFKA_CLUSTER_ID && { cluster_id: env.KAFKA_CLUSTER_ID }),
|
|
199
|
+
...(env.KAFKA_ENV_ID && { env_id: env.KAFKA_ENV_ID }),
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Builds the `schema_registry` connection block from env vars. Triggered when any
|
|
205
|
+
* Schema Registry env var is set.
|
|
206
|
+
*
|
|
207
|
+
* Equivalent YAML:
|
|
208
|
+
*
|
|
209
|
+
* schema_registry:
|
|
210
|
+
* endpoint: "${SCHEMA_REGISTRY_ENDPOINT}"
|
|
211
|
+
* auth:
|
|
212
|
+
* type: api_key
|
|
213
|
+
* key: "${SCHEMA_REGISTRY_API_KEY}"
|
|
214
|
+
* secret: "${SCHEMA_REGISTRY_API_SECRET}"
|
|
215
|
+
*
|
|
216
|
+
* Returns a looser object than SchemaRegistryDirectConfig so that Zod will be able
|
|
217
|
+
* to make the complaint that endpoint is required if only the auth var(s) are set.
|
|
218
|
+
*/
|
|
219
|
+
function buildSchemaRegistryBlock(env) {
|
|
220
|
+
if (!env.SCHEMA_REGISTRY_ENDPOINT &&
|
|
221
|
+
!env.SCHEMA_REGISTRY_API_KEY &&
|
|
222
|
+
!env.SCHEMA_REGISTRY_API_SECRET)
|
|
223
|
+
return null;
|
|
224
|
+
return {
|
|
225
|
+
schema_registry: {
|
|
226
|
+
...(env.SCHEMA_REGISTRY_ENDPOINT && {
|
|
227
|
+
endpoint: env.SCHEMA_REGISTRY_ENDPOINT,
|
|
228
|
+
}),
|
|
229
|
+
...apiKeyAuth(env.SCHEMA_REGISTRY_API_KEY, env.SCHEMA_REGISTRY_API_SECRET),
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Builds the `confluent_cloud` connection block from env vars. Triggered when at least
|
|
235
|
+
* one of CONFLUENT_CLOUD_API_KEY or CONFLUENT_CLOUD_API_SECRET is set. CONFLUENT_CLOUD_REST_ENDPOINT
|
|
236
|
+
* alone is not sufficient — an endpoint without credentials is ignored.
|
|
237
|
+
*
|
|
238
|
+
* Equivalent YAML:
|
|
239
|
+
*
|
|
240
|
+
* confluent_cloud:
|
|
241
|
+
* endpoint: "${CONFLUENT_CLOUD_REST_ENDPOINT}"
|
|
242
|
+
* organization_id: "${CONFLUENT_CLOUD_ORG_ID}"
|
|
243
|
+
* auth:
|
|
244
|
+
* type: api_key
|
|
245
|
+
* key: "${CONFLUENT_CLOUD_API_KEY}"
|
|
246
|
+
* secret: "${CONFLUENT_CLOUD_API_SECRET}"
|
|
247
|
+
*/
|
|
248
|
+
function buildConfluentCloudBlock(env) {
|
|
249
|
+
if (!env.CONFLUENT_CLOUD_API_KEY && !env.CONFLUENT_CLOUD_API_SECRET)
|
|
250
|
+
return null;
|
|
251
|
+
return {
|
|
252
|
+
confluent_cloud: {
|
|
253
|
+
...(env.CONFLUENT_CLOUD_REST_ENDPOINT && {
|
|
254
|
+
endpoint: env.CONFLUENT_CLOUD_REST_ENDPOINT,
|
|
255
|
+
}),
|
|
256
|
+
...(env.CONFLUENT_CLOUD_ORG_ID && {
|
|
257
|
+
organization_id: env.CONFLUENT_CLOUD_ORG_ID,
|
|
258
|
+
}),
|
|
259
|
+
...apiKeyAuth(env.CONFLUENT_CLOUD_API_KEY, env.CONFLUENT_CLOUD_API_SECRET),
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Builds the `tableflow` connection block from env vars. Triggered when either
|
|
265
|
+
* Tableflow credential env var is set.
|
|
266
|
+
*
|
|
267
|
+
* Equivalent YAML:
|
|
268
|
+
*
|
|
269
|
+
* tableflow:
|
|
270
|
+
* auth:
|
|
271
|
+
* type: api_key
|
|
272
|
+
* key: "${TABLEFLOW_API_KEY}"
|
|
273
|
+
* secret: "${TABLEFLOW_API_SECRET}"
|
|
274
|
+
*/
|
|
275
|
+
function buildTableflowBlock(env) {
|
|
276
|
+
if (!env.TABLEFLOW_API_KEY && !env.TABLEFLOW_API_SECRET)
|
|
277
|
+
return null;
|
|
278
|
+
return {
|
|
279
|
+
tableflow: apiKeyAuth(env.TABLEFLOW_API_KEY, env.TABLEFLOW_API_SECRET),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Builds the `telemetry` connection block from env vars. Triggered when any telemetry
|
|
284
|
+
* env var is set.
|
|
285
|
+
*
|
|
286
|
+
* Equivalent YAML:
|
|
287
|
+
*
|
|
288
|
+
* telemetry:
|
|
289
|
+
* endpoint: "${TELEMETRY_ENDPOINT}"
|
|
290
|
+
* auth:
|
|
291
|
+
* type: api_key
|
|
292
|
+
* key: "${TELEMETRY_API_KEY}"
|
|
293
|
+
* secret: "${TELEMETRY_API_SECRET}"
|
|
294
|
+
*/
|
|
295
|
+
function buildTelemetryBlock(env) {
|
|
296
|
+
if (!env.TELEMETRY_ENDPOINT &&
|
|
297
|
+
!env.TELEMETRY_API_KEY &&
|
|
298
|
+
!env.TELEMETRY_API_SECRET)
|
|
299
|
+
return null;
|
|
300
|
+
return {
|
|
301
|
+
telemetry: {
|
|
302
|
+
...(env.TELEMETRY_ENDPOINT && { endpoint: env.TELEMETRY_ENDPOINT }),
|
|
303
|
+
...apiKeyAuth(env.TELEMETRY_API_KEY, env.TELEMETRY_API_SECRET),
|
|
304
|
+
},
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Builds the `flink` connection block from env vars. Triggered when any Flink env var
|
|
309
|
+
* is set. Returns a looser object than FlinkDirectConfig so that Zod will be able
|
|
310
|
+
* to make the complaint that endpoint, auth, environment_id, organization_id, and
|
|
311
|
+
* compute_pool_id are required if only some fields are set.
|
|
312
|
+
*
|
|
313
|
+
* Equivalent YAML:
|
|
314
|
+
*
|
|
315
|
+
* flink:
|
|
316
|
+
* endpoint: "${FLINK_REST_ENDPOINT}"
|
|
317
|
+
* environment_id: "${FLINK_ENV_ID}"
|
|
318
|
+
* organization_id: "${FLINK_ORG_ID}"
|
|
319
|
+
* compute_pool_id: "${FLINK_COMPUTE_POOL_ID}"
|
|
320
|
+
* catalog_name: "${FLINK_CATALOG_NAME}"
|
|
321
|
+
* database_name: "${FLINK_DATABASE_NAME}"
|
|
322
|
+
* auth:
|
|
323
|
+
* type: api_key
|
|
324
|
+
* key: "${FLINK_API_KEY}"
|
|
325
|
+
* secret: "${FLINK_API_SECRET}"
|
|
326
|
+
*/
|
|
327
|
+
function buildFlinkBlock(env) {
|
|
328
|
+
if (!env.FLINK_REST_ENDPOINT &&
|
|
329
|
+
!env.FLINK_API_KEY &&
|
|
330
|
+
!env.FLINK_API_SECRET &&
|
|
331
|
+
!env.FLINK_ENV_ID &&
|
|
332
|
+
!env.FLINK_ORG_ID &&
|
|
333
|
+
!env.FLINK_COMPUTE_POOL_ID &&
|
|
334
|
+
!env.FLINK_CATALOG_NAME &&
|
|
335
|
+
!env.FLINK_ENV_NAME &&
|
|
336
|
+
!env.FLINK_DATABASE_NAME)
|
|
337
|
+
return null;
|
|
338
|
+
const catalogName = resolveFlinkCatalogName(env);
|
|
339
|
+
return {
|
|
340
|
+
flink: {
|
|
341
|
+
...(env.FLINK_REST_ENDPOINT && { endpoint: env.FLINK_REST_ENDPOINT }),
|
|
342
|
+
...apiKeyAuth(env.FLINK_API_KEY, env.FLINK_API_SECRET),
|
|
343
|
+
...(env.FLINK_ENV_ID && { environment_id: env.FLINK_ENV_ID }),
|
|
344
|
+
...(env.FLINK_ORG_ID && { organization_id: env.FLINK_ORG_ID }),
|
|
345
|
+
...(env.FLINK_COMPUTE_POOL_ID && {
|
|
346
|
+
compute_pool_id: env.FLINK_COMPUTE_POOL_ID,
|
|
347
|
+
}),
|
|
348
|
+
...(catalogName && { catalog_name: catalogName }),
|
|
349
|
+
...(env.FLINK_DATABASE_NAME && {
|
|
350
|
+
database_name: env.FLINK_DATABASE_NAME,
|
|
351
|
+
}),
|
|
352
|
+
},
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Resolves the Flink catalog name from env vars, accepting either the preferred
|
|
357
|
+
* `FLINK_CATALOG_NAME` or the deprecated `FLINK_ENV_NAME`. Throws when both are
|
|
358
|
+
* set (unambiguous conflict — user must remove the legacy one). Emits a single
|
|
359
|
+
* `logger.warn` when only the legacy var is set so the deprecation lands in
|
|
360
|
+
* server logs at startup.
|
|
361
|
+
*
|
|
362
|
+
* TODO: Remove FLINK_ENV_NAME support in v1.4.0. See issue #209.
|
|
363
|
+
*/
|
|
364
|
+
function resolveFlinkCatalogName(env) {
|
|
365
|
+
if (env.FLINK_CATALOG_NAME && env.FLINK_ENV_NAME) {
|
|
366
|
+
throw new Error("Both FLINK_CATALOG_NAME and the deprecated FLINK_ENV_NAME are set; remove FLINK_ENV_NAME.");
|
|
367
|
+
}
|
|
368
|
+
if (env.FLINK_CATALOG_NAME)
|
|
369
|
+
return env.FLINK_CATALOG_NAME;
|
|
370
|
+
if (env.FLINK_ENV_NAME) {
|
|
371
|
+
logger.warn("FLINK_ENV_NAME is deprecated and will be removed in v1.4.0; rename to FLINK_CATALOG_NAME.");
|
|
372
|
+
return env.FLINK_ENV_NAME;
|
|
373
|
+
}
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Builds the root-level `server` block from env vars. Always returns a block —
|
|
378
|
+
* all fields have defaults in envSchema so they are always present after initEnv().
|
|
379
|
+
*
|
|
380
|
+
* Equivalent YAML:
|
|
381
|
+
*
|
|
382
|
+
* server:
|
|
383
|
+
* log_level: "${LOG_LEVEL}"
|
|
384
|
+
* http:
|
|
385
|
+
* port: ${HTTP_PORT}
|
|
386
|
+
* host: "${HTTP_HOST}"
|
|
387
|
+
* mcp_endpoint: "${HTTP_MCP_ENDPOINT_PATH}"
|
|
388
|
+
* sse_endpoint: "${SSE_MCP_ENDPOINT_PATH}"
|
|
389
|
+
* sse_message_endpoint: "${SSE_MCP_MESSAGE_ENDPOINT_PATH}"
|
|
390
|
+
* do_not_track: ${DO_NOT_TRACK}
|
|
391
|
+
* auth:
|
|
392
|
+
* api_key: "${MCP_API_KEY}" # omitted when not set
|
|
393
|
+
* disabled: ${MCP_AUTH_DISABLED}
|
|
394
|
+
* allowed_hosts: ${MCP_ALLOWED_HOSTS}
|
|
395
|
+
*/
|
|
396
|
+
function buildServerBlock(env, authOverrides = {}) {
|
|
397
|
+
return {
|
|
398
|
+
server: {
|
|
399
|
+
log_level: env.LOG_LEVEL,
|
|
400
|
+
do_not_track: env.DO_NOT_TRACK,
|
|
401
|
+
http: {
|
|
402
|
+
port: env.HTTP_PORT,
|
|
403
|
+
host: env.HTTP_HOST,
|
|
404
|
+
mcp_endpoint: env.HTTP_MCP_ENDPOINT_PATH,
|
|
405
|
+
sse_endpoint: env.SSE_MCP_ENDPOINT_PATH,
|
|
406
|
+
sse_message_endpoint: env.SSE_MCP_MESSAGE_ENDPOINT_PATH,
|
|
407
|
+
},
|
|
408
|
+
auth: {
|
|
409
|
+
...(env.MCP_API_KEY !== undefined && { api_key: env.MCP_API_KEY }),
|
|
410
|
+
disabled: authOverrides.disableAuth ?? env.MCP_AUTH_DISABLED,
|
|
411
|
+
allowed_hosts: authOverrides.allowedHosts ?? env.MCP_ALLOWED_HOSTS,
|
|
412
|
+
},
|
|
413
|
+
...(env.TELEMETRY_WRITE_KEY !== undefined && {
|
|
414
|
+
analytics: { write_key: env.TELEMETRY_WRITE_KEY },
|
|
415
|
+
}),
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
/** Returns an `{ auth: ... }` spread object when either credential is present, empty object otherwise. */
|
|
420
|
+
function apiKeyAuth(key, secret) {
|
|
421
|
+
if (!key && !secret)
|
|
422
|
+
return {};
|
|
423
|
+
// Non-null assertions: Zod validates that both are actually present and non-empty.
|
|
424
|
+
return { auth: { type: "api_key", key: key, secret: secret } };
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Replaces Zod document path segments in a formatted error string with their
|
|
428
|
+
* corresponding environment variable names, translating schema-space errors
|
|
429
|
+
* back into the env-var space the user configured.
|
|
430
|
+
*/
|
|
431
|
+
function humanizeEnvConfigPaths(message) {
|
|
432
|
+
return Object.entries(ENV_VAR_TO_ZPATH).reduce((msg, [envVar, zodPath]) => msg.replaceAll(zodPath, envVar), message);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Merges `-k` / `--kafka-config-file` properties into the raw (pre-Zod) kafka block so
|
|
436
|
+
* that all config is consolidated before MCPServerConfiguration is constructed.
|
|
437
|
+
*
|
|
438
|
+
* Protected keys (`bootstrap.servers`, `sasl.username`, `sasl.password`) are promoted
|
|
439
|
+
* into their corresponding named fields, overriding any env-var-derived values already
|
|
440
|
+
* present. All other keys go into `extra_properties`. Creates a kafka block if none
|
|
441
|
+
* exists, provided `bootstrap.servers` is supplied.
|
|
442
|
+
*/
|
|
443
|
+
function mergeKafkaConfigIntoRawBlock(kafka, props) {
|
|
444
|
+
for (const key of KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS) {
|
|
445
|
+
if (Object.hasOwn(props, key) && props[key] === "") {
|
|
446
|
+
throw new Error(`--kafka-config-file: ${key} is present but empty — provide a non-empty value or omit the key`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
if (!kafka) {
|
|
450
|
+
if (!Object.hasOwn(props, "bootstrap.servers")) {
|
|
451
|
+
throw new Error("--kafka-config-file: no kafka block is configured and props do not include bootstrap.servers — cannot establish a Kafka connection");
|
|
452
|
+
}
|
|
453
|
+
kafka = {};
|
|
454
|
+
}
|
|
455
|
+
const hasSaslUser = Object.hasOwn(props, "sasl.username");
|
|
456
|
+
const hasSaslPass = Object.hasOwn(props, "sasl.password");
|
|
457
|
+
if (hasSaslUser !== hasSaslPass) {
|
|
458
|
+
throw new Error("--kafka-config-file: sasl.username and sasl.password must both be present or both be absent");
|
|
459
|
+
}
|
|
460
|
+
const protectedSet = new Set(KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS);
|
|
461
|
+
const result = { ...kafka };
|
|
462
|
+
if (Object.hasOwn(props, "bootstrap.servers")) {
|
|
463
|
+
result.bootstrap_servers = props["bootstrap.servers"];
|
|
464
|
+
}
|
|
465
|
+
if (hasSaslUser && hasSaslPass) {
|
|
466
|
+
result.auth = {
|
|
467
|
+
type: "api_key",
|
|
468
|
+
key: props["sasl.username"],
|
|
469
|
+
secret: props["sasl.password"],
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
const remaining = Object.fromEntries(Object.entries(props).filter(([k]) => !protectedSet.has(k)));
|
|
473
|
+
if (Object.keys(remaining).length > 0) {
|
|
474
|
+
result.extra_properties = remaining;
|
|
475
|
+
}
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
//# sourceMappingURL=env-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { MCPServerConfiguration } from "../config/models.js";
|
|
2
|
+
export { buildConfigFromEnvAndCli } from "../config/env-config.js";
|
|
3
|
+
export { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, MCPServerConfiguration, type DirectConnectionConfig, type OAuthConnectionConfig, } from "../config/models.js";
|
|
4
|
+
/**
|
|
5
|
+
* Loads and validates an MCP server configuration from a YAML file.
|
|
6
|
+
*
|
|
7
|
+
* @param filePath - Path to the YAML configuration file
|
|
8
|
+
* @param environ - Environment variables used for ${VAR} interpolation
|
|
9
|
+
* @returns Validated MCPServerConfiguration object
|
|
10
|
+
* @throws Error if file doesn't exist, YAML is invalid, interpolation fails, or validation fails
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadConfigFromYaml(filePath: string, environ: Record<string, string | undefined>): MCPServerConfiguration;
|
|
13
|
+
/**
|
|
14
|
+
* Reads configuration file contents from disk.
|
|
15
|
+
*
|
|
16
|
+
* @param filePath - Path to the YAML configuration file
|
|
17
|
+
* @returns File contents as string
|
|
18
|
+
* @throws Error if file doesn't exist or cannot be read
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadConfigFileContents(filePath: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Parses and validates YAML configuration content.
|
|
23
|
+
* Always performs ${VAR} and ${VAR:-default} interpolation before Zod validation.
|
|
24
|
+
*
|
|
25
|
+
* @param yamlContent - YAML string content
|
|
26
|
+
* @param env - Environment variables used for ${VAR} interpolation
|
|
27
|
+
* @returns Validated MCPServerConfiguration object
|
|
28
|
+
* @throws Error if YAML is invalid, interpolation fails, or validation fails
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseYamlConfiguration(yamlContent: string, environ: Record<string, string | undefined>): MCPServerConfiguration;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,sBAAsB,CAGxB;AAKD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,sBAAsB,CA+BxB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { interpolateValues } from "../config/interpolation.js";
|
|
2
|
+
import { formatZodIssues, mcpConfigSchema, MCPServerConfiguration, } from "../config/models.js";
|
|
3
|
+
import * as nodeDeps from "../confluent/node-deps.js";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { parse as parseYaml } from "yaml";
|
|
6
|
+
export { buildConfigFromEnvAndCli } from "../config/env-config.js";
|
|
7
|
+
export { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, MCPServerConfiguration, } from "../config/models.js";
|
|
8
|
+
/**
|
|
9
|
+
* Loads and validates an MCP server configuration from a YAML file.
|
|
10
|
+
*
|
|
11
|
+
* @param filePath - Path to the YAML configuration file
|
|
12
|
+
* @param environ - Environment variables used for ${VAR} interpolation
|
|
13
|
+
* @returns Validated MCPServerConfiguration object
|
|
14
|
+
* @throws Error if file doesn't exist, YAML is invalid, interpolation fails, or validation fails
|
|
15
|
+
*/
|
|
16
|
+
export function loadConfigFromYaml(filePath, environ) {
|
|
17
|
+
const yamlContent = loadConfigFileContents(filePath);
|
|
18
|
+
return parseYamlConfiguration(yamlContent, environ);
|
|
19
|
+
}
|
|
20
|
+
/* All the rest of the functions in this file are internal helpers for loading and validating the configuration, only exported for
|
|
21
|
+
test suite purposes. */
|
|
22
|
+
/**
|
|
23
|
+
* Reads configuration file contents from disk.
|
|
24
|
+
*
|
|
25
|
+
* @param filePath - Path to the YAML configuration file
|
|
26
|
+
* @returns File contents as string
|
|
27
|
+
* @throws Error if file doesn't exist or cannot be read
|
|
28
|
+
*/
|
|
29
|
+
export function loadConfigFileContents(filePath) {
|
|
30
|
+
const absolutePath = path.resolve(filePath);
|
|
31
|
+
// Check if file exists
|
|
32
|
+
if (!nodeDeps.fs.existsSync(absolutePath)) {
|
|
33
|
+
throw new Error(`Configuration file not found: ${absolutePath}`);
|
|
34
|
+
}
|
|
35
|
+
// Read file contents
|
|
36
|
+
try {
|
|
37
|
+
return nodeDeps.fs.readFileSync(absolutePath, "utf-8");
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Failed to read configuration file: ${error instanceof Error ? error.message : String(error)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parses and validates YAML configuration content.
|
|
45
|
+
* Always performs ${VAR} and ${VAR:-default} interpolation before Zod validation.
|
|
46
|
+
*
|
|
47
|
+
* @param yamlContent - YAML string content
|
|
48
|
+
* @param env - Environment variables used for ${VAR} interpolation
|
|
49
|
+
* @returns Validated MCPServerConfiguration object
|
|
50
|
+
* @throws Error if YAML is invalid, interpolation fails, or validation fails
|
|
51
|
+
*/
|
|
52
|
+
export function parseYamlConfiguration(yamlContent, environ) {
|
|
53
|
+
// Parse YAML
|
|
54
|
+
let parsedYaml;
|
|
55
|
+
try {
|
|
56
|
+
parsedYaml = parseYaml(yamlContent);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
throw new Error(`Failed to parse YAML: ${error instanceof Error ? error.message : String(error)}`);
|
|
60
|
+
}
|
|
61
|
+
// Interpolate environment variables (before Zod sees the values)
|
|
62
|
+
try {
|
|
63
|
+
parsedYaml = interpolateValues(parsedYaml, environ);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Error(`Failed to interpolate configuration values: ${error instanceof Error ? error.message : String(error)}`);
|
|
67
|
+
}
|
|
68
|
+
// Validate with Zod
|
|
69
|
+
const validationResult = mcpConfigSchema.safeParse(parsedYaml);
|
|
70
|
+
if (!validationResult.success) {
|
|
71
|
+
throw new Error(`Configuration validation failed:\n${formatZodIssues(validationResult.error.issues)}`);
|
|
72
|
+
}
|
|
73
|
+
// Promote from raw parsed object to MCPServerConfiguration instance.
|
|
74
|
+
return new MCPServerConfiguration(validationResult.data);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,gCAAgC,EAChC,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,OAA2C;IAE3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;yBACyB;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,uBAAuB;IACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,OAA2C;IAE3C,aAAa;IACb,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC;QACH,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxG,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE/D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively interpolates `${VAR}` and `${VAR:-default}` patterns in all
|
|
3
|
+
* string values of the given object/array/primitive. Non-string leaves
|
|
4
|
+
* (numbers, booleans, null, undefined) are returned unchanged.
|
|
5
|
+
*
|
|
6
|
+
* Escaping: `$${LITERAL}` is replaced with the literal text `${LITERAL}`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function interpolateValues(obj: unknown, environ: Record<string, string | undefined>): unknown;
|
|
9
|
+
//# sourceMappingURL=interpolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../src/config/interpolation.ts"],"names":[],"mappings":"AA0CA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,OAAO,CAoBT"}
|