ToolJet 集成 HarperDB 数据源:连接配置与 SQL/NoSQL 双模式查询实战指南

发布时间:2026/9/11 1:35:03

ToolJet 集成 HarperDB 数据源:连接配置与 SQL/NoSQL 双模式查询实战指南 ToolJet 集成 HarperDB 数据源连接配置与 SQL/NoSQL 双模式查询实战指南【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJetHarperDB 是一款同时支持 NoSQL 与 SQL 工作负载的高性能单模型数据存储平台其灵活的 HTTP/S 接口和用户自定义 API 非常适合从概念验证到生产环境的快速扩展。本文基于 ToolJet 官方文档与仓库内 HarperDB 插件源码系统讲解如何在 ToolJet 中安装插件、配置连接参数并完整演示 SQL 模式Select / Insert / Update / Delete与 NoSQL 模式Insert / Update / Delete / Search by hash / Search by value / Search by conditions共十种查询操作的配置方法与底层实现原理读完即可在应用构建器中直接对接 HarperDB 完成数据的读写与检索。HarperDB 数据源概览ToolJet 通过 Marketplace 插件机制将 HarperDB 作为全局数据源Global Datasource集成到应用构建器中为读取和写入数据提供了一套简洁的界面。插件本身以tooljet-marketplace/harperdb包的形式存在于仓库的 marketplace/plugins/harperdb 目录下其内部基于axios构建 HTTP 客户端并支持两种查询模式SQL 模式通过 SQL 语句对数据库执行各类操作NoSQL 模式对 JSON 文档进行无模式schema-less的存储与检索。插件默认暴露isLoading、data、rawData三个变量查询结果会以结构化数据返回供应用内的表格、文本等组件直接绑定使用见 manifest.json。前置准备启用 Marketplace 并安装插件在开始使用前需要先完成 Marketplace 的启用与插件安装。详细步骤可参考 Marketplace 插件使用指南核心流程如下启用 Marketplace 功能在 ToolJet 的.env文件中添加环境变量ENABLE_MARKETPLACE_FEATUREtrue本地运行时需先构建 marketplace 以确保所有插件可用同时请注意只有Administrator角色才能访问 Marketplace 页面。安装 HarperDB 插件点击仪表盘左下角的设置图标从菜单中选择Marketplace在 Marketplace 标签页中找到 HarperDB 卡片并点击Install状态变为Installed即完成安装。使用插件安装完成后进入仪表盘的Data sources标签页滚动到Plugins区域即可看到已安装的 HarperDB 插件配置后即可作为数据源在查询面板Query Panel中使用。建立连接连接参数详解要建立与 HarperDB 实例的连接需要提供以下凭据对应 manifest.json 中定义的host、port、ssl_enabled、username、password五个必填字段参数说明默认值HostHarperDB 实例的主机名或 IP 地址例如162.156.250.74或myinstance.harperdbcloud.comlocalhostPort服务器配置的端口号9925若使用 HarperDB Studio云版可留空或设为443SSL连接是否需要 SSL 加密开关falseUsernameHarperDB 实例的身份认证用户名无Password认证密码出于安全考虑以密文形式存储manifest.json中标记为encrypted: true无其中密码字段在插件清单中被标记为加密存储ssl_enabled为开关toggle类型其余字段均为文本输入。连接底层实现从源码看连接逻辑位于 lib/index.ts 的HarperDBClient类中其关键行为包括协议选择const protocol config.ssl false ? http : https;——只有明确关闭 SSL 时才使用http其余情况一律走https端口拼接端口为空时 URL 中不会出现端口部分认证方式使用 axios 的 Basic Authauth: { username, password }进行 HTTP 基本认证超时设置请求超时时间为 30000 毫秒请求方式所有操作均以 JSON 格式 POST 到实例根路径请求体通过operation字段标识具体操作如sql、insert、search_by_hash、describe_all等。此外插件的testConnection方法同样位于 lib/index.ts通过调用describe_all操作来验证连接是否有效成功时返回status: ok及实例描述信息失败时返回包含错误信息的status: failed结果。查询 HarperDB查询管理器入口连接配置完成后即可创建查询在应用构建器App Builder底部面板的查询管理器Query Manager中点击Add按钮在查询编辑器的Global Datasource区域选择HarperDB在查询编辑器中根据需求选择SQL mode或NoSQL mode该模式选择默认值为 SQL见 operations.json并填写对应参数。SQL 模式SQL 模式允许通过 SQL 语句对数据库执行各类操作对应源码中mode sql分支对queryOptions.sql_query的透传执行。以下语法示例均基于文档示例中的sampleorg.people表。SelectSELECT 语句用于查询数据库中的数据SELECT * FROM sampleorg.people WHERE id 1该语句会返回sampleorgschema 下people表中id 1的记录。InsertINSERT 语句用于向数据库表中添加一行或多行数据INSERT INTO sampleorg.people (id, name, age, country, hobby) VALUE (5, Shubh, 26, India, Football)注意 HarperDB 的 INSERT 语法使用VALUE单数关键字与常见 SQL 方言中的VALUES略有差异写入时需保持一致。UpdateUPDATE 语句用于修改数据库表中一行或多行记录的指定属性值UPDATE sampleorg.people SET hobby chess WHERE id 5DeleteDELETE 语句用于从数据库表中移除一行或多行数据DELETE FROM sampleorg.people WHERE id 5NoSQL 模式NoSQL 模式提供无模式schema-less的 JSON 文档存储与检索能力。在查询编辑器的mode下拉框中切换到 NoSQL mode 后还需要通过Operation下拉框选择具体操作可选值包括 Insert、Update、Delete、Search By Hash、Search By Value、Search By Conditions见 operations.json。InsertNoSQL向数据库表中添加一行或多行数据需要填写以下参数参数说明Schema必填待插入记录所在表的 schemaTable必填待插入记录的表名Records必填一个或多个待插入记录的数组示例 Records[{id: 22, name: James Scott, age: 26, country:Italy, hobby: football},...]UpdateNoSQL根据标识行的 hash 属性即主键修改一行或多行记录中指定属性的值参数说明Schema必填待更新记录所在表的 schemaTable必填待更新记录的表名Records必填一个或多个待更新记录的数组示例 Records[{id:12, name:Jeff Hannistor},...] // 主键值为 12 的记录将被更新DeleteNoSQL从指定表中移除一行或多行数据参数说明Schema必填待删除记录所在表的 schemaTable必填待删除记录的表名Hash Values必填一个或多个 hash 属性主键值用于标识要删除的记录示例 Hash Values[6, 15] // 主键值为 6 和 15 的记录将被删除Search by hash根据一个或多个 hash 值返回表中的数据参数说明Schema必填待搜索记录所在表的 schemaTable必填要搜索的表Hash Values必填要检索的 hash 数组Table Attributes必填指定需要返回的属性示例 Hash Values[124, 66] // 主键值为 124 和 66 的记录将被检索示例 Table Attributes[id, name, age, hobby, country] // 仅返回表中提供的这些列Search by value根据匹配的某个值返回表中的数据支持通配符参数说明Schema必填待搜索记录所在表的 schemaTable必填要搜索的表Hash Values必填要检索的 hash 数组Search Attribute必填要搜索的属性可以是任意属性Search Value必填要搜索的值允许使用通配符Table Attributes必填指定需要返回的属性示例 Search Attributename示例 Search ValueJohn Doe # 或使用通配符 Joh*示例 Table Attributes[id, name, age, hobby, country] // 仅返回表中提供的这些列Search by conditions根据一个或多个匹配条件返回表中的数据是 NoSQL 模式下最灵活的检索方式参数说明Schema必填待搜索记录所在表的 schemaTable必填要搜索的表Operator in-between each condition可选每个条件之间使用的运算符取值为And或Or默认AndOffset可选查询结果跳过的记录数默认0Limit可选查询结果包含的记录数默认null不限制Table Attributes必填指定需要返回的属性Conditions to filter必填过滤条件对象数组必须包含一个或多个对象。每个对象包含三个字段search_attribute必填要搜索的属性可为任意属性、search_type必填搜索类型支持equals、contains、starts_with、ends_with、greater_than、greater_than_equal、less_than、less_than_equal、between、search_value必填区分大小写的搜索值若 search_type 为between则使用包含两个值的数组表示搜索区间示例 Table Attributes[id, name, age, hobby, country] // 仅返回表中提供的这些列示例 Conditions to filter[{search_attribute: age, search_type: between, search_value: [20, 28]}, {search_attribute: name, search_type: contains, search_value: Ray}]该示例表示同时满足「年龄介于 20 到 28 之间」且「姓名包含 Ray」的记录将被检索出来条件间默认使用And组合。底层实现原理从查询参数到 HTTP 请求为了让读者更深入地理解上述操作如何被执行这里结合 lib/index.ts 中的run方法梳理完整调用链模式分发插件根据queryOptions.mode判断走 SQL 分支还是 NoSQL 分支SQL 分支直接将sql_query文本封装为{ operation: sql, sql }请求体并发送NoSQL 分支依据queryOptions.operation分发到不同操作insert/update将records字段通过JSON5.parse解析为数组后与schema、table一起发送delete将hash_values解析为数组后发送search_by_hash发送hash_values与get_attributessearch_by_value发送search_attribute、search_value与get_attributessearch_by_conditions发送operator仅当提供时、offset仅当不为undefined时、limit仅当不为undefined时、get_attributes与conditions参数解析records、hash_values、attributes、conditions等 JSON 类字段均使用JSON5.parse解析依赖json5包因此支持不带引号的键名等宽松 JSON 写法如[{id: 1, name: Jose, age: 24}]返回结构插件将响应中的result?.data ?? result ?? {}作为查询结果返回保证结果既可直接使用data字段也能兼容其他返回形态。从 operations.json 还可以看到所有输入框均为codehinter类型这意味着每个参数都支持使用 ToolJet 的表达式语法绑定变量、组件状态或查询结果例如把表格组件的选中行数据动态传入records或hash_values从而构建出可交互的增删改查应用。各字段的占位符示例如[{id: 1, name: Jose, age: 24}]、[123, 65]、[name, age]也已在清单中给出可直接参考填写。查询结果的使用查询执行完毕后返回的数据会写入查询的data变量中可供应用内的各类组件引用。例如将 HarperDB 查询作为表格组件的数据源或将查询结果绑定到文本、下拉框等组件的属性上即可快速搭建出基于 HarperDB 的数据管理界面。借助查询面板的触发器如事件处理器还可以将增删改操作与按钮点击等交互事件关联形成完整的数据闭环。插件的类型定义位于 lib/types.ts其中SourceOptions对应连接参数host、port、ssl_enabled、username、passwordQueryOptions对应全部查询参数需要二次开发或扩展插件能力的读者可以从这两个类型入手阅读源码进一步了解参数如何被run方法消费。【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/11 1:30:03

微网优化调度与粒子群算法:需求响应下的源储荷协调策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 1:30:03

从收藏到掌握:信息过载时代的有效学习框架

1. 为什么收藏从未等于掌握?去年整理硬盘时,我发现自己有个命名为"学习资料"的文件夹,里面整整齐齐分类着137G的教程视频、462个PDF文档和上千条书签链接。这个发现让我突然意识到:这些年来我就像个知识松鼠&#xff0c…

2026/9/11 2:35:09

声振温监测方案拆解:从传感器选型到可视化看板落地

设备管理人员最怕的,从来不是“设备坏了”这件事本身,而是“不知道它快坏了”。传统模式下,转动设备就像一台关在铁皮柜子里的黑箱——巡检员拿听音棒贴上去听一听,用手背试一下壳体温度,再凭经验判断“还行”或者“有…

2026/9/11 2:35:09

2026年RFID技术演进:智能感知与边缘计算融合

1. RFID技术演进与产业升级背景2026年的RFID读写器将不再是简单的数据采集工具,而是演变为具备环境感知能力的智能终端。这种转变源于三个关键驱动力:首先,制造业对实时数据的需求从"有没有"升级为"准不准";其…

2026/9/11 2:35:09

CMSIS-5源码深度解析:架构、DSP/NN库与工程落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码