TAPD开发者后台,即从https://o.tapd.woa.com/admin/myapps (opens new window)进入的应用后台,在前端提供了部分扩展功能的配置功能,例如页面扩展、webhook事件订阅、api权限等。
前端配置只能使用已有链接,例如在事件订阅处,回调地址为任意第三方系统接口;在页面扩展处,嵌入的页面地址为已经能够通过浏览器访问的一个页面地址。前端配置的底层逻辑是,TAPD后代帮用户生成了后台代码,并提交到git仓库中。
前端只能使用TAPD插件的部分能力。如果您需要使用更复杂的能力,例如自动化助手扩展、自定义对象扩展、工作流扩展等,必须自己进行代码开发,代码发布后将在云函数环境中运行。
TAPD插件提供了云函数环境,假如您需要部署一个新服务,可以直接使用插件提供的云函数环境进行开发。在开发阶段,您可以使用tplugin-cli的serve命令,本地运行你的代码,并选择一个TAPD项目进行调试。本地开发完成后,可以进入对应的插件应用后台进行发布,发布后插件可以测试安装到多个项目。
可以阅读本文档了解关于TAPD插件代码开发的内容。
# 开发环境配置
根据下面的步骤来配置你的开发环境。同时你需要安装tapd提供的CLI工具来创建和开发TAPD插件。
# CLI环境准备
# 环境要求:
- NodeJs14.13.0+
# 安装 tplugin-cli
- 安装 Node
- 安装 tplugin-cli
# 安装 tplugin-cli
npm install -g @tapd/tplugin-cli
# 登录 tplugin-cli
安装之后,tplugin-cli将基于本身身份,提供一些插件创建、管理、调试等功能。 用户需要首先通过点击登录链接,进行Oauth授权,完成身份认证
tplugin-cli login
登录完成后,会保存一段时间的登录态,在这期间,可以调用 tplugin-cli 的其他指令完成操作。
# 了解 tplugin-cli
首先我们可以通过 --help 指令来查看,tplugin-cli 拥有哪些功能支持。
tplugin-cli --help
# 开始创建我的应用
# 设置环境变量
插件支持通过键值对的方式,向运行环境中,注入配置类型的数据。
# 配置变量
plugin.yaml中,提供 envs 标签,用于防止当前插件的环境变量。
除基本的键值对配置外,还提供 secret 选项,用来放置加密类型的变量。
示例如下:
app:
code: demo #name
name: Demo
envs:
- key: API_ID #变量键
value: xxxxxxxx #变量值
- key: API_SECRET
value: xxxxxxxx #secret: true时,放置加密后的字符串
secret: true
2
3
4
5
6
7
8
9
10
# 敏感数据处理
敏感数据,建议通过 加密指令 tplugin-cli encrypt处理后,配置到 plugin.yaml 的envs 中。
- 数据加密
tplugin-cli encrypt xxxxxx
Usage: tplugin-cli encrypt [options] <value>
加密敏感变量
Options:
-h, --help display help for command
2
3
4
5
6
执行加密后返回
✔ 加密完成
密文: Ag88ER4h9r5wisQ8sZH4EuYM8hlQTayV//lDbm89DELX0U0aDw6bV7kaWBhIJviItRkpeXkogDU+/fc/u1+rTtjeEF7X9NB3nrxCxpwD7RNvHeR92XmMDhp0ej8JG8XEuQc5KM9kXgCY9VjljT9CKT0InL8OJ9TGS9G6xtLL/U0=
2
3
4
- 保存变量键值对 到 plugin.yaml 并标识加密。
app:
code: demo #name
name: Demo
envs:
- key: API_SECRET
value: KxVhLUjJvO4mzaqfw+u9vvkKO0mHRFSWWVm+dAdxJ+c0/7XKBoTmniWsEX2VLqCC2dxzOXlxSVsXFwCncUFK9X2pEgvWpgBrnJpe9HP1DGTRxBYK26B4zp4kRwSCScM52UaTrOrj4AnH/lfFw56A6yOAsFOR2HXiSJE4QmYFQdU= #secret: true时,放置加密后的字符串
secret: true
2
3
4
5
6
7
8
- 在插件中正常根据键
key获取环境变量即可。加密后的内容,在实际运行环境中,会自动解密,不需要再单独处理。
# 环境变量使用
python版本
os.environ.get('API_SECRET')
node版本
process.env.API_SECRET
# 依赖包安装
开发者在插件中,总会使用到来自第三方的依赖包,需要安装到实际的插件运行环境中,开发者只需要将需要安装的包声明到对应语言的包管理文件中即可。
# Python
基于pip做依赖包的管理,因此,开发者只需要将包声明到文件 requirements.txt即可。
注意:默认情况下,插件需要依赖tplugin-core包。因此,为保障插件功能的使用,请谨慎修改默认添加的依赖。
tplugin-core==0.6.1
yaml
2
# NodeJs
使用npm做包管理,因此,开发者只需要将包声明到文件:package.json标签dependencies下即可。
注意:默认情况下,插件需要依赖tplugin-core等多个插件基础包。因此,为保障插件功能的使用,为保障插件功能的使用,请谨慎修改默认添加的依赖。
# 数据持久化
开发者在开发插件应用时可以使用TAPD开放平台提供的公共存储来存放数据。
公共存储提供的是nosql形式的存储方式,与MySQL的概念对比:
| MySQL | TPluginStorage |
|---|---|
| database | database |
| table | document |
| column | field |
# 数据定义
表(文档)和字段是弹性扩展的,根据保存数据时传入的document自动创建表,根据保存和更新时传入的数据结构自动维护字段。
# 安全性
存储空间按应用严格划分和隔离,自动弹性伸缩,开发者无需考虑存储空间的安全、隐私和性能问题。
# 通信方式
通过调用TAPD SDK来保存、更新、查询、删除数据,请参考SDK文档: