database 宿主接口(database.wit,API 1.4)。
清单
database.sources,也都需要一个受信任且已打开的项目。
创建数据源并连接
数据源记录
PluginDataSource(WIT database.data-source)只包含非机密的设置:
不要把凭据放进任何设置字段。包含密码或凭据查询参数的 URL,以及名为 password、token、secret 的选项都会被拒绝,
请改用
set_data_source_credential。没有任何读取凭据的函数,刚写入的也读不回来。
存储位置
- 插件自有的数据源写在项目的
.openidea/data-sources.toml中,带pluginOwner和pluginSourceId。 更新时会保留无关的条目、注释和格式。文件必须使用常规的[[data-source]]表格式,内联表数组会被拒绝。 这里不会写入任何密码。 - 数据源变化时数据库树会刷新,并用插件 id 标注插件自有的数据源。复制它会得到一份归用户所有的副本。
- 禁用插件时数据源保留。卸载时连同凭据一起删除,宿主记得的已关闭项目中的也会删除。
连接
connect_data_source 只能在该项目窗口的命令或事件中调用。它走常规的数据库连接流程、密码提示和结构读取。
等待窗口期间不计入插件的调用预算;窗口必须在 180 秒内响应,调用可以被取消。
限制与错误
- 每个插件每个项目最多 64 个数据源;每个值或可选字段最多 16 KiB;凭据最多 64 KiB。
- 未知 id 或属于他人的 id 都返回
not-found,不会透露其他所有者的数据源是否存在。 - 在远程项目中,数据源和凭据保存在数据库子系统运行的地方,也就是项目服务器上。没有该子系统的宿主返回
invalid("Database subsystem is unavailable on this host")。
data-tools 测试插件
在命令中调用了全部函数。