@kyuda/n8n-nodes-databricks 1.0.2
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.
Potentially problematic release.
This version of @kyuda/n8n-nodes-databricks might be problematic. Click here for more details.
- package/LICENSE.md +19 -0
- package/README.md +478 -0
- package/dist/credentials/Databricks.credentials.d.ts +10 -0
- package/dist/credentials/Databricks.credentials.js +51 -0
- package/dist/credentials/Databricks.credentials.js.map +1 -0
- package/dist/credentials/databricks.svg +19 -0
- package/dist/nodes/Databricks/Databricks.node.d.ts +16 -0
- package/dist/nodes/Databricks/Databricks.node.js +1719 -0
- package/dist/nodes/Databricks/Databricks.node.js.map +1 -0
- package/dist/nodes/Databricks/databricks.dark.svg +19 -0
- package/dist/nodes/Databricks/databricks.svg +19 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.js +24 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.js +94 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/databricksSql.d.ts +3 -0
- package/dist/nodes/Databricks/resources/databricksSql.js +130 -0
- package/dist/nodes/Databricks/resources/databricksSql.js.map +1 -0
- package/dist/nodes/Databricks/resources/files/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/files/operations.js +71 -0
- package/dist/nodes/Databricks/resources/files/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/files/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/files/parameters.js +124 -0
- package/dist/nodes/Databricks/resources/files/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/files.d.ts +3 -0
- package/dist/nodes/Databricks/resources/files.js +183 -0
- package/dist/nodes/Databricks/resources/files.js.map +1 -0
- package/dist/nodes/Databricks/resources/genie/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/genie/operations.js +96 -0
- package/dist/nodes/Databricks/resources/genie/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/genie/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/genie/parameters.js +96 -0
- package/dist/nodes/Databricks/resources/genie/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/index.d.ts +12 -0
- package/dist/nodes/Databricks/resources/index.js +29 -0
- package/dist/nodes/Databricks/resources/index.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.js +24 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.js +76 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing.d.ts +3 -0
- package/dist/nodes/Databricks/resources/modelServing.js +176 -0
- package/dist/nodes/Databricks/resources/modelServing.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.js +233 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.js +371 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog.d.ts +3 -0
- package/dist/nodes/Databricks/resources/unityCatalog.js +239 -0
- package/dist/nodes/Databricks/resources/unityCatalog.js.map +1 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.js +48 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.js +224 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.d.ts +66 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.js +531 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.d.ts +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.js +133 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgentDark.icon.svg +9 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgentLight.icon.svg +9 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.d.ts +4 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.js +28 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.js +418 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.d.ts +82 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.js +105 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.d.ts +6 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.js +3 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.d.ts +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.js +13 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.d.ts +10 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.js +88 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.d.ts +28 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.js +207 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.d.ts +17 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.js +135 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.d.ts +24 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.js +221 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.js +38 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.d.ts +12 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.js +106 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.d.ts +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.js +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.d.ts +16 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.js +132 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.d.ts +18 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.js +150 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.d.ts +7 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.js +150 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.js +52 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.js.map +1 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.d.ts +5 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.js +155 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.js.map +1 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/databricks.svg +19 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.d.ts +10 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.js +265 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.js.map +1 -0
- package/dist/nodes/llms/LmChatDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/llms/LmChatDatabricks/databricks.svg +19 -0
- package/dist/nodes/llms/N8nLlmTracing.d.ts +44 -0
- package/dist/nodes/llms/N8nLlmTracing.js +140 -0
- package/dist/nodes/llms/N8nLlmTracing.js.map +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.d.ts +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js +31 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js.map +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.d.ts +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.js +53 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.js.map +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.d.ts +3 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js +28 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js.map +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.d.ts +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.js +50 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.js.map +1 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.d.ts +15 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js +98 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js.map +1 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/databricks.svg +19 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.d.ts +7 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js +50 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.d.ts +32 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js +175 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.d.ts +16 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js +95 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.d.ts +4 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.js +38 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.js +158 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.js +204 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.js +138 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.js +57 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.d.ts +39 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.js +3 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.js +156 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.d.ts +4 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js +45 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.d.ts +15 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js +227 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.js +131 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.d.ts +7 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js +32 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.js +190 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.js +101 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.js +93 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.js +109 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.js +60 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.js +108 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js +22 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js +36 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js +34 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js +43 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js +17 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js +40 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.d.ts +0 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.js +2 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.d.ts +31 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js +3 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.d.ts +6 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js +22 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js.map +1 -0
- package/dist/nodes/vector_store/shared/descriptions.d.ts +4 -0
- package/dist/nodes/vector_store/shared/descriptions.js +70 -0
- package/dist/nodes/vector_store/shared/descriptions.js.map +1 -0
- package/dist/nodes/vector_store/shared/processDocuments.d.ts +25 -0
- package/dist/nodes/vector_store/shared/processDocuments.js +42 -0
- package/dist/nodes/vector_store/shared/processDocuments.js.map +1 -0
- package/dist/package.json +93 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/DatabricksVectorStoreLangChain.d.ts +26 -0
- package/dist/utils/DatabricksVectorStoreLangChain.js +114 -0
- package/dist/utils/DatabricksVectorStoreLangChain.js.map +1 -0
- package/dist/utils/N8nBinaryLoader.d.ts +18 -0
- package/dist/utils/N8nBinaryLoader.js +159 -0
- package/dist/utils/N8nBinaryLoader.js.map +1 -0
- package/dist/utils/N8nJsonLoader.d.ts +11 -0
- package/dist/utils/N8nJsonLoader.js +67 -0
- package/dist/utils/N8nJsonLoader.js.map +1 -0
- package/dist/utils/N8nTool.d.ts +10 -0
- package/dist/utils/N8nTool.js +88 -0
- package/dist/utils/N8nTool.js.map +1 -0
- package/dist/utils/descriptions.d.ts +13 -0
- package/dist/utils/descriptions.js +112 -0
- package/dist/utils/descriptions.js.map +1 -0
- package/dist/utils/helpers.d.ts +23 -0
- package/dist/utils/helpers.js +172 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/logWrapper.d.ts +27 -0
- package/dist/utils/logWrapper.js +297 -0
- package/dist/utils/logWrapper.js.map +1 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.d.ts +13 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.js +43 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.d.ts +18 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.js +68 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nOutputParser.d.ts +7 -0
- package/dist/utils/output_parsers/N8nOutputParser.js +19 -0
- package/dist/utils/output_parsers/N8nOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.d.ts +12 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.js +84 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/prompt.d.ts +3 -0
- package/dist/utils/output_parsers/prompt.js +22 -0
- package/dist/utils/output_parsers/prompt.js.map +1 -0
- package/dist/utils/schemaParsing.d.ts +6 -0
- package/dist/utils/schemaParsing.js +23 -0
- package/dist/utils/schemaParsing.js.map +1 -0
- package/dist/utils/sharedFields.d.ts +6 -0
- package/dist/utils/sharedFields.js +122 -0
- package/dist/utils/sharedFields.js.map +1 -0
- package/dist/utils/tracing.d.ts +7 -0
- package/dist/utils/tracing.js +20 -0
- package/dist/utils/tracing.js.map +1 -0
- package/package.json +93 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
# n8n-nodes-databricks
|
|
2
|
+
|
|
3
|
+
This is an n8n community node that provides comprehensive integration with Databricks APIs, including Genie AI, SQL, Unity Catalog, Model Serving, Files, and Vector Search capabilities.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🤖 **Genie AI Assistant**: Start conversations, send messages, and execute SQL queries through Databricks' AI assistant
|
|
10
|
+
- 🤖 **AI Agent with MLflow Tracking**: Full-featured AI agent with optional MLflow observability for comprehensive tracing
|
|
11
|
+
- 📂 **File Operations**: Upload, download, list, and manage files in Databricks volumes (up to 5 GiB)
|
|
12
|
+
- 🗄️ **Databricks SQL**: Execute SQL queries and manage statements
|
|
13
|
+
- 📚 **Unity Catalog**: Manage catalogs, schemas, tables, and volumes
|
|
14
|
+
- 🤖 **Model Serving**: Query AI models and manage endpoints
|
|
15
|
+
- 🔍 **Vector Search**: Perform vector similarity searches
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
You need the following installed on your development machine:
|
|
20
|
+
|
|
21
|
+
* [git](https://git-scm.com/downloads)
|
|
22
|
+
* Node.js and pnpm. Minimum version Node 18. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
|
|
23
|
+
* Install n8n with:
|
|
24
|
+
```
|
|
25
|
+
pnpm install n8n -g
|
|
26
|
+
```
|
|
27
|
+
* A Databricks workspace with a personal access token
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
### For Development
|
|
32
|
+
|
|
33
|
+
1. Clone this repository:
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/<your-org>/n8n-nodes-databricks.git
|
|
36
|
+
cd n8n-nodes-databricks
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
2. Install dependencies:
|
|
40
|
+
```bash
|
|
41
|
+
pnpm install
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
3. Build the node:
|
|
45
|
+
```bash
|
|
46
|
+
pnpm build
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
4. Link to your n8n installation:
|
|
50
|
+
```bash
|
|
51
|
+
npm link
|
|
52
|
+
cd ~/.n8n/custom
|
|
53
|
+
npm link n8n-nodes-databricks
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### From npm (Coming Soon)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install n8n-nodes-databricks
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Credentials
|
|
63
|
+
|
|
64
|
+

|
|
65
|
+
|
|
66
|
+
To use this node, you need to configure Databricks credentials:
|
|
67
|
+
|
|
68
|
+
1. **Host**: Your Databricks workspace URL (e.g., `https://adb-1234567890123456.7.azuredatabricks.net`)
|
|
69
|
+
2. **Token**: Your Databricks personal access token
|
|
70
|
+
|
|
71
|
+
To generate a token:
|
|
72
|
+
|
|
73
|
+

|
|
74
|
+
|
|
75
|
+
1. Log into your Databricks workspace
|
|
76
|
+
2. Go to User Settings → Access Tokens
|
|
77
|
+
3. Click "Generate New Token"
|
|
78
|
+
4. Copy and save the token securely
|
|
79
|
+
|
|
80
|
+
## Architecture
|
|
81
|
+
|
|
82
|
+
### 📊 Project Structure
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
n8n-nodes-databricks/
|
|
86
|
+
│
|
|
87
|
+
├── 🎯 Main Node Entry Point
|
|
88
|
+
│ └── nodes/Databricks/Databricks.node.ts
|
|
89
|
+
│ ├── Class: Databricks (implements INodeType)
|
|
90
|
+
│ ├── Properties:
|
|
91
|
+
│ │ ├── displayName: 'Databricks'
|
|
92
|
+
│ │ ├── version: 1
|
|
93
|
+
│ │ ├── usableAsTool: true (can be used as an AI agent tool)
|
|
94
|
+
│ │ └── requestDefaults: { baseURL, Authorization }
|
|
95
|
+
│ │
|
|
96
|
+
│ ├── Node Configuration:
|
|
97
|
+
│ │ ├── Resource selector (dropdown):
|
|
98
|
+
│ │ │ ├── Genie (AI Assistant)
|
|
99
|
+
│ │ │ ├── Databricks SQL
|
|
100
|
+
│ │ │ ├── Unity Catalog
|
|
101
|
+
│ │ │ ├── Model Serving
|
|
102
|
+
│ │ │ ├── Files
|
|
103
|
+
│ │ │ └── Vector Search
|
|
104
|
+
│ │ │
|
|
105
|
+
│ │ ├── Operations (per resource)
|
|
106
|
+
│ │ └── Parameters (per resource)
|
|
107
|
+
│ │
|
|
108
|
+
│ └── Execute Method:
|
|
109
|
+
│ ├── Process each input item
|
|
110
|
+
│ ├── Handle special cases (custom logic)
|
|
111
|
+
│ └── Error handling with continueOnFail support
|
|
112
|
+
│
|
|
113
|
+
├── 📁 Resource Definitions
|
|
114
|
+
│ └── nodes/Databricks/resources/
|
|
115
|
+
│ ├── index.ts (exports all operations & parameters)
|
|
116
|
+
│ │
|
|
117
|
+
│ ├── 🤖 genie/
|
|
118
|
+
│ │ ├── operations.ts
|
|
119
|
+
│ │ │ └── Operations: [6 operations]
|
|
120
|
+
│ │ │ ├── startConversation
|
|
121
|
+
│ │ │ ├── createMessage
|
|
122
|
+
│ │ │ ├── getMessage
|
|
123
|
+
│ │ │ ├── executeMessageQuery
|
|
124
|
+
│ │ │ ├── getQueryResults
|
|
125
|
+
│ │ │ └── getSpace
|
|
126
|
+
│ │ │
|
|
127
|
+
│ │ └── parameters.ts
|
|
128
|
+
│ │ └── Parameters: spaceId, conversationId, messageId, etc.
|
|
129
|
+
│ │
|
|
130
|
+
│ ├── 📂 files/
|
|
131
|
+
│ │ ├── operations.ts
|
|
132
|
+
│ │ │ └── Operations: [7 operations]
|
|
133
|
+
│ │ │ ├── uploadFile (PUT binary data)
|
|
134
|
+
│ │ │ ├── downloadFile (GET file content)
|
|
135
|
+
│ │ │ ├── deleteFile (DELETE)
|
|
136
|
+
│ │ │ ├── getFileInfo (HEAD metadata)
|
|
137
|
+
│ │ │ ├── listDirectory (GET directory contents)
|
|
138
|
+
│ │ │ ├── createDirectory (PUT)
|
|
139
|
+
│ │ │ └── deleteDirectory (DELETE)
|
|
140
|
+
│ │ │
|
|
141
|
+
│ │ └── parameters.ts
|
|
142
|
+
│ │
|
|
143
|
+
│ ├── 🗄️ databricksSql/
|
|
144
|
+
│ ├── 📚 unityCatalog/
|
|
145
|
+
│ ├── 🤖 modelServing/
|
|
146
|
+
│ └── 🔍 vectorSearch/
|
|
147
|
+
│
|
|
148
|
+
├── 🤖 AI Agent Node
|
|
149
|
+
│ └── nodes/agents/DatabricksAiAgent/
|
|
150
|
+
│ ├── DatabricksAiAgent.node.ts (node definition)
|
|
151
|
+
│ ├── execute.ts (agent execution with MLflow)
|
|
152
|
+
│ ├── CallbackHandler.ts (MLflow tracing)
|
|
153
|
+
│ ├── description.ts (node properties)
|
|
154
|
+
│ ├── utils.ts (input configuration)
|
|
155
|
+
│ └── src/
|
|
156
|
+
│ ├── constants.ts (MLflow constants)
|
|
157
|
+
│ ├── types/ (TypeScript types)
|
|
158
|
+
│ └── utils/ (helper functions)
|
|
159
|
+
│
|
|
160
|
+
├── 🔐 Credentials
|
|
161
|
+
│ └── credentials/Databricks.credentials.ts
|
|
162
|
+
│ └── DatabricksCredentials interface:
|
|
163
|
+
│ ├── host: string (Databricks workspace URL)
|
|
164
|
+
│ └── token: string (Personal access token)
|
|
165
|
+
│
|
|
166
|
+
└── 🎨 Assets
|
|
167
|
+
├── databricks.svg (light mode icon)
|
|
168
|
+
└── databricks.dark.svg (dark mode icon)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 🔄 Execution Flow
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
User Input (n8n workflow)
|
|
175
|
+
↓
|
|
176
|
+
1. User selects RESOURCE (e.g., "Genie")
|
|
177
|
+
↓
|
|
178
|
+
2. User selects OPERATION (e.g., "Start Conversation")
|
|
179
|
+
↓
|
|
180
|
+
3. UI displays relevant PARAMETERS (using displayOptions.show)
|
|
181
|
+
↓
|
|
182
|
+
4. User fills in parameters (spaceId, initialMessage, etc.)
|
|
183
|
+
↓
|
|
184
|
+
5. Execute method is called
|
|
185
|
+
↓
|
|
186
|
+
6. Two execution paths:
|
|
187
|
+
│
|
|
188
|
+
├─→ Path A: Declarative Routing (most operations)
|
|
189
|
+
│ ├── n8n uses 'routing' config from operations.ts
|
|
190
|
+
│ ├── Automatically builds HTTP request
|
|
191
|
+
│ ├── Substitutes parameters using {{$parameter.xxx}}
|
|
192
|
+
│ └── Sends request with credentials from requestDefaults
|
|
193
|
+
│
|
|
194
|
+
└─→ Path B: Custom Logic (special cases)
|
|
195
|
+
├── Files.uploadFile → Custom binary data handling
|
|
196
|
+
└── Genie operations → Custom switch statement
|
|
197
|
+
├── Build URL dynamically
|
|
198
|
+
├── Create request body
|
|
199
|
+
├── Call this.helpers.httpRequest()
|
|
200
|
+
└── Return response
|
|
201
|
+
↓
|
|
202
|
+
7. Return INodeExecutionData[][]
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### 🧩 Key Architectural Patterns
|
|
206
|
+
|
|
207
|
+
#### 1. Resource-Based Organization
|
|
208
|
+
Each Databricks API category is a separate "resource" with its own operations and parameters.
|
|
209
|
+
|
|
210
|
+
#### 2. Declarative Routing
|
|
211
|
+
Most operations use n8n's declarative `routing` configuration:
|
|
212
|
+
```typescript
|
|
213
|
+
routing: {
|
|
214
|
+
request: {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
url: '=/api/2.0/genie/spaces/{{$parameter.spaceId}}/conversations',
|
|
217
|
+
body: {
|
|
218
|
+
initial_message: '={{$parameter.initialMessage}}'
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### 3. Conditional Parameter Display
|
|
225
|
+
Parameters appear/hide based on selected resource and operation:
|
|
226
|
+
```typescript
|
|
227
|
+
displayOptions: {
|
|
228
|
+
show: {
|
|
229
|
+
resource: ['genie'],
|
|
230
|
+
operation: ['startConversation']
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
#### 4. Two Execution Modes
|
|
236
|
+
- **Declarative**: n8n handles HTTP requests automatically (most operations)
|
|
237
|
+
- **Imperative**: Custom logic in execute() method (files upload, genie operations)
|
|
238
|
+
|
|
239
|
+
#### 5. Error Handling
|
|
240
|
+
Comprehensive error handling with three types:
|
|
241
|
+
- **API Errors**: Status code + error details
|
|
242
|
+
- **Network Errors**: Connection failures
|
|
243
|
+
- **Other Errors**: General exceptions
|
|
244
|
+
|
|
245
|
+
All support `continueOnFail` mode for resilient workflows.
|
|
246
|
+
|
|
247
|
+
### 🤖 AI Agent Execution Flow
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
User Input → Databricks AI Agent Node
|
|
251
|
+
↓
|
|
252
|
+
1. Load Configuration
|
|
253
|
+
├─ Get Chat Model (required)
|
|
254
|
+
├─ Get Tools (optional)
|
|
255
|
+
├─ Get Memory (optional)
|
|
256
|
+
├─ Get Output Parser (optional)
|
|
257
|
+
└─ Check MLflow enabled
|
|
258
|
+
↓
|
|
259
|
+
2. MLflow Setup (if enabled)
|
|
260
|
+
├─ Validate Databricks credentials
|
|
261
|
+
├─ Get/Create experiment: /Shared/n8n-workflows-{workflow-id}
|
|
262
|
+
└─ Initialize MLflow CallbackHandler
|
|
263
|
+
↓
|
|
264
|
+
3. Agent Execution
|
|
265
|
+
├─ Create LangChain ToolCallingAgent
|
|
266
|
+
├─ Setup fallback model (if configured)
|
|
267
|
+
└─ Execute with streaming or standard mode
|
|
268
|
+
↓
|
|
269
|
+
4. Processing Loop (for each iteration)
|
|
270
|
+
├─ LLM Call → MLflow CHAT_MODEL span
|
|
271
|
+
├─ Tool Calls → MLflow TOOL spans
|
|
272
|
+
└─ Continue until final answer
|
|
273
|
+
↓
|
|
274
|
+
5. MLflow Tracing (if enabled)
|
|
275
|
+
├─ Log AGENT span with full execution
|
|
276
|
+
├─ Record token usage and latency
|
|
277
|
+
└─ Capture all intermediate steps
|
|
278
|
+
↓
|
|
279
|
+
6. Return Result
|
|
280
|
+
└─ Output text/structured data to n8n workflow
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Development
|
|
284
|
+
|
|
285
|
+
### Building the Node
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
pnpm build
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Linting
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
pnpm lint
|
|
295
|
+
# or auto-fix
|
|
296
|
+
pnpm lintfix
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Testing
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
pnpm test
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Databricks AI Agent
|
|
306
|
+
|
|
307
|
+

|
|
308
|
+
|
|
309
|
+
The **Databricks AI Agent** node provides a full-featured AI agent built on LangChain's ToolCallingAgent with optional **MLflow observability** for comprehensive tracing of your agent's reasoning, tool usage, and LLM interactions.
|
|
310
|
+
|
|
311
|
+
### Key Features
|
|
312
|
+
|
|
313
|
+
#### AI Agent Capabilities
|
|
314
|
+
- **Tool Calling** - Supports any LangChain tool or MCP toolkit
|
|
315
|
+
- **Memory** - Conversation history with BaseChatMemory
|
|
316
|
+
- **Structured Output** - Optional output parser for validated JSON responses
|
|
317
|
+
- **Streaming** - Real-time token streaming support
|
|
318
|
+
- **Fallback Models** - Automatic failover to secondary model
|
|
319
|
+
- **Binary Images** - Automatic passthrough of images to vision models
|
|
320
|
+
|
|
321
|
+
#### MLflow Observability (Optional)
|
|
322
|
+
- **Toggle On/Off** - Enable MLflow logging with a simple checkbox
|
|
323
|
+
- **Automatic Tracing** - Creates MLflow spans for every step when enabled
|
|
324
|
+
- **Span Types**:
|
|
325
|
+
- `AGENT` - Overall agent execution
|
|
326
|
+
- `CHAT_MODEL` - LLM calls with token usage
|
|
327
|
+
- `TOOL` - Tool invocations with arguments and results
|
|
328
|
+
- `RETRIEVER` - Vector store retrievals (if used)
|
|
329
|
+
- **Metrics** - Latency, token counts, model info
|
|
330
|
+
- **Tags & Metadata** - Full context for filtering and analysis
|
|
331
|
+
|
|
332
|
+
### Configuration
|
|
333
|
+
|
|
334
|
+
#### Enabling MLflow (Optional)
|
|
335
|
+
|
|
336
|
+
MLflow logging is **disabled by default**. To enable it:
|
|
337
|
+
|
|
338
|
+
1. Add the **Databricks AI Agent** node to your workflow
|
|
339
|
+
2. Toggle **"Enable MLflow Tracking"** to ON
|
|
340
|
+
3. Configure Databricks credentials (credential selector appears when enabled)
|
|
341
|
+
4. The node will **automatically** use your workflow ID as the experiment name
|
|
342
|
+
|
|
343
|
+
#### MLflow Experiment Management (Automatic)
|
|
344
|
+
|
|
345
|
+
When MLflow tracking is enabled, the node **automatically manages experiments**:
|
|
346
|
+
|
|
347
|
+
- **Experiment Name**: Automatically set to `/Shared/n8n-workflows-{workflow-id}`
|
|
348
|
+
- **Auto-Creation**: If the experiment doesn't exist, it's created automatically
|
|
349
|
+
- **Auto-Reuse**: If the experiment exists, it's reused automatically
|
|
350
|
+
- **One Workflow = One Experiment**: Each n8n workflow gets its own dedicated MLflow experiment
|
|
351
|
+
- **Shared Workspace**: Experiments are created in `/Shared/` for team accessibility
|
|
352
|
+
|
|
353
|
+
### Usage
|
|
354
|
+
|
|
355
|
+
#### Basic Agent Setup
|
|
356
|
+
|
|
357
|
+

|
|
358
|
+
|
|
359
|
+
1. **Add Agent Node** - Drag "Databricks AI Agent" to your workflow
|
|
360
|
+
2. **Connect Chat Model** - Add OpenAI, Databricks, or compatible model
|
|
361
|
+
3. **Connect Tools** (optional) - Add n8n tools or MCP clients
|
|
362
|
+
4. **Connect Memory** (optional) - Add chat memory for conversations
|
|
363
|
+
5. **Configure Input** - Map user message to the agent
|
|
364
|
+
|
|
365
|
+
#### Node Inputs
|
|
366
|
+
|
|
367
|
+
The node requires these **connections**:
|
|
368
|
+
|
|
369
|
+
- **Chat Model** (required) - The LLM to use
|
|
370
|
+
- **Tools** (optional) - Zero or more tools the agent can call
|
|
371
|
+
- **Memory** (optional) - For conversation history
|
|
372
|
+
- **Output Parser** (optional) - For structured JSON validation
|
|
373
|
+
|
|
374
|
+
### MLflow Traces
|
|
375
|
+
|
|
376
|
+

|
|
377
|
+
|
|
378
|
+
Every agent execution creates a trace in Databricks MLflow with:
|
|
379
|
+
|
|
380
|
+
- **Agent Span** - Overall execution with messages and system prompt
|
|
381
|
+
- **Chat Model Spans** - Each LLM call with:
|
|
382
|
+
- Input messages
|
|
383
|
+
- Model parameters (temperature, max_tokens, etc.)
|
|
384
|
+
- Response with token usage
|
|
385
|
+
- Latency metrics
|
|
386
|
+
- **Tool Spans** - Each tool invocation with:
|
|
387
|
+
- Tool name and description
|
|
388
|
+
- Input arguments
|
|
389
|
+
- Output results
|
|
390
|
+
- Execution time
|
|
391
|
+
|
|
392
|
+
**Metrics captured per trace:**
|
|
393
|
+
- Total latency
|
|
394
|
+
- Total cost
|
|
395
|
+
- Total tokens (input + output)
|
|
396
|
+
- LLM calls count
|
|
397
|
+
- Tool calls count
|
|
398
|
+
|
|
399
|
+
## Usage Examples
|
|
400
|
+
|
|
401
|
+
### Example 1: AI Agent with MLflow Tracking
|
|
402
|
+
|
|
403
|
+
1. Add the **Databricks AI Agent** node to your workflow
|
|
404
|
+
2. Connect a **Chat Model** node (e.g., OpenAI or Databricks Chat Model)
|
|
405
|
+
3. (Optional) Connect **Tools** - Add any n8n tools you want the agent to use
|
|
406
|
+
4. (Optional) Connect **Memory** - Add chat memory for conversation history
|
|
407
|
+
5. Toggle **"Enable MLflow Tracking"** to ON
|
|
408
|
+
6. Select your **Databricks credentials**
|
|
409
|
+
7. Configure the input prompt
|
|
410
|
+
8. Run the workflow - traces will appear in MLflow under `/Shared/n8n-workflows-{workflow-id}`
|
|
411
|
+
|
|
412
|
+
### Example 2: Start a Genie Conversation
|
|
413
|
+
|
|
414
|
+
1. Add the Databricks node to your workflow
|
|
415
|
+
2. Select Resource: **Genie**
|
|
416
|
+
3. Select Operation: **Start Conversation**
|
|
417
|
+
4. Enter your **Space ID**
|
|
418
|
+
5. Enter your **Initial Message**: "Show me sales data for last quarter"
|
|
419
|
+
|
|
420
|
+
### Example 3: Upload a File to Databricks Volume
|
|
421
|
+
|
|
422
|
+
1. Add the Databricks node after a node that provides binary data
|
|
423
|
+
2. Select Resource: **Files**
|
|
424
|
+
3. Select Operation: **Upload File**
|
|
425
|
+
4. Configure:
|
|
426
|
+
- Data Field Name: `data`
|
|
427
|
+
- Catalog: `main`
|
|
428
|
+
- Schema: `default`
|
|
429
|
+
- Volume: `my_volume`
|
|
430
|
+
- Path: `reports/report.pdf`
|
|
431
|
+
|
|
432
|
+
### Example 4: Query Vector Search
|
|
433
|
+
|
|
434
|
+
1. Add the Databricks node to your workflow
|
|
435
|
+
2. Select Resource: **Vector Search**
|
|
436
|
+
3. Select Operation: **Query Index**
|
|
437
|
+
4. Configure your query parameters
|
|
438
|
+
|
|
439
|
+
## Adding New Operations
|
|
440
|
+
|
|
441
|
+
To extend this node with new operations:
|
|
442
|
+
|
|
443
|
+
1. Navigate to the appropriate resource folder in `nodes/Databricks/resources/`
|
|
444
|
+
2. Add the new operation to `operations.ts`:
|
|
445
|
+
```typescript
|
|
446
|
+
{
|
|
447
|
+
name: 'My New Operation',
|
|
448
|
+
value: 'myNewOperation',
|
|
449
|
+
description: 'Description of what it does',
|
|
450
|
+
action: 'Perform my new operation',
|
|
451
|
+
routing: {
|
|
452
|
+
request: {
|
|
453
|
+
method: 'GET',
|
|
454
|
+
url: '=/api/2.0/path/{{$parameter.id}}'
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
3. Add required parameters to `parameters.ts`
|
|
460
|
+
4. Rebuild and test
|
|
461
|
+
|
|
462
|
+
## Contributing
|
|
463
|
+
|
|
464
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
465
|
+
|
|
466
|
+
## Support
|
|
467
|
+
|
|
468
|
+
For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/<your-org>/n8n-nodes-databricks).
|
|
469
|
+
|
|
470
|
+
## Resources
|
|
471
|
+
|
|
472
|
+
- [n8n Documentation](https://docs.n8n.io/)
|
|
473
|
+
- [Databricks API Documentation](https://docs.databricks.com/api/)
|
|
474
|
+
- [n8n Community](https://community.n8n.io/)
|
|
475
|
+
|
|
476
|
+
## License
|
|
477
|
+
|
|
478
|
+
[MIT](LICENSE.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class Databricks implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
icon: "file:databricks.svg";
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
authenticate: IAuthenticateGeneric;
|
|
9
|
+
test: ICredentialTestRequest;
|
|
10
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Databricks = void 0;
|
|
4
|
+
class Databricks {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'databricks';
|
|
7
|
+
this.displayName = 'Databricks';
|
|
8
|
+
this.documentationUrl = 'https://docs.databricks.com/dev-tools/api/latest/authentication.html';
|
|
9
|
+
this.icon = 'file:databricks.svg';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Host',
|
|
13
|
+
name: 'host',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: '',
|
|
16
|
+
placeholder: 'https://adb-xxxxx.xx.azure.databricks.com',
|
|
17
|
+
required: true,
|
|
18
|
+
description: 'Domain of your Databricks workspace',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
displayName: 'Personal Access Token',
|
|
22
|
+
name: 'token',
|
|
23
|
+
type: 'string',
|
|
24
|
+
typeOptions: {
|
|
25
|
+
password: true,
|
|
26
|
+
},
|
|
27
|
+
default: '',
|
|
28
|
+
placeholder: 'dapixxxxxxxxxxxxxxxxxxxxxx',
|
|
29
|
+
required: true,
|
|
30
|
+
description: 'Databricks personal access token',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
this.authenticate = {
|
|
34
|
+
type: 'generic',
|
|
35
|
+
properties: {
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: '=Bearer {{$credentials.token}}',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
this.test = {
|
|
42
|
+
request: {
|
|
43
|
+
baseURL: '={{$credentials.host}}',
|
|
44
|
+
url: '/api/2.0/serving-endpoints',
|
|
45
|
+
method: 'GET',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.Databricks = Databricks;
|
|
51
|
+
//# sourceMappingURL=Databricks.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Databricks.credentials.js","sourceRoot":"","sources":["../../credentials/Databricks.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACI,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,YAAY,CAAC;QAC3B,qBAAgB,GAAG,sEAAsE,CAAC;QAC1F,SAAI,GAAG,qBAA8B,CAAC;QACtC,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,qCAAqC;aACrD;YACD;gBACI,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,4BAA4B;gBACzC,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,kCAAkC;aAClD;SACJ,CAAC;QAEF,iBAAY,GAAyB;YACjC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,aAAa,EAAE,gCAAgC;iBAClD;aACJ;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,wBAAwB;gBACjC,GAAG,EAAE,4BAA4B;gBACjC,MAAM,EAAE,KAAK;aAChB;SACJ,CAAC;IACN,CAAC;CAAA;AA7CD,gCA6CC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 40.1 42" style="enable-background:new 0 0 40.1 42;" xml:space="preserve">
|
|
2
|
+
<style type="text/css">
|
|
3
|
+
.st0{fill:#FF3621;}
|
|
4
|
+
</style>
|
|
5
|
+
<metadata>
|
|
6
|
+
<sfw xmlns="ns_sfw;">
|
|
7
|
+
<slices>
|
|
8
|
+
</slices>
|
|
9
|
+
<sliceSourceBounds bottomLeftOrigin="true" height="42" width="40.1" x="-69.1" y="-10.5">
|
|
10
|
+
</sliceSourceBounds>
|
|
11
|
+
</sfw>
|
|
12
|
+
</metadata>
|
|
13
|
+
<g>
|
|
14
|
+
<path class="st0" d="M40.1,31.1v-7.4l-0.8-0.5L20.1,33.7l-18.2-10l0-4.3l18.2,9.9l20.1-10.9v-7.3l-0.8-0.5L20.1,21.2L2.6,11.6
|
|
15
|
+
L20.1,2l14.1,7.7l1.1-0.6V8.3L20.1,0L0,10.9V12L20.1,23l18.2-10v4.4l-18.2,10L0.8,16.8L0,17.3v7.4l20.1,10.9l18.2-9.9v4.3l-18.2,10
|
|
16
|
+
L0.8,29.5L0,30v1.1L20.1,42L40.1,31.1z">
|
|
17
|
+
</path>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription, ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
|
|
2
|
+
export declare class Databricks implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
listSearch: {
|
|
6
|
+
getWarehouses(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
7
|
+
getEndpoints(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
8
|
+
getCatalogs(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
9
|
+
getSchemas(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
10
|
+
getVolumes(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
11
|
+
getTables(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
12
|
+
getFunctions(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
16
|
+
}
|