ref, err := c.App.Approvals.Submit(ctx, &raise.AppApprovalSubmitRequest{
Kind: "refund",
Subject: "k3://shop-sync/refund/rf_1",
})
if err != nil {
return err
}
fmt.Println(ref.Id, ref.Status)
_, err := c.App.Audit.Append(ctx, &raise.AppAuditRequest{
Action: "shop-sync.order.cancel",
Resource: "k3://shop-sync/order/1001",
Diff: map[string]any{"status": "cancelled"},
})
data := []byte("hello")
if _, err := c.App.Blobs.Put(ctx, "apps/shop-sync/notes/a.txt", bytes.NewReader(data), int64(len(data)), "text/plain"); err != nil {
return err
}
obj, err := c.App.Blobs.Get(ctx, "apps/shop-sync/notes/a.txt")
if err != nil {
return err
}
defer obj.Body.Close()
if _, err := io.Copy(os.Stdout, obj.Body); err != nil {
return err
}
c 是 raise.New 建好的客户端每个资源的请求示例 →
- 审批
应用在清单里声明审批种类,审批单与业务数据同一事务提交;流程由组织管理员在审批应用里调整。
- 消息中心
平台通知、站内信、系统提醒进同一个收件箱;应用经接口发通知。邮件与浏览器推送接入中。
- 文件
应用文件夹里的文件与预签名地址;组织可以把新文件改存到自带的存储桶。
- 检索
平台级检索汇总各应用的段落,按调用者自己的权限过滤;有嵌入模型时关键词与语义混合。
- 收款
微信支付与支付宝扫码收款,款项直接进组织自己的商户账户,平台不代收。
- 表单
表单绑定应用的操作,字段结构来自操作的输入声明,助手可以代填,成员保存前审阅。
- 对象引擎
类型、字段、关联、策略;敏感字段逐条加密;导入导出;10 万条记录 P95 < 100 ms(压测)。
- 审计
应用把自己的动作记进组织的审计链;审计链只能追加。
- 资源访问
分享、继承、限时授权与访问申请由平台的访问内核保管,详见权限模型。
Connectors
连接器:协作平台和微信由平台接好。
管理员在「我的组织 → 应用」里接入,应用直接得到扫码登录、通讯录和消息推送。
Developer tools
开发工具:SDK、命令行、模板和契约等级。
- k3 命令行与测试企业。建测试企业、拿测试凭证,让本机进程以测试企业里的应用身份运行;查日志、发布版本。
- 应用模板。k3 app init 生成 Go 服务端、React 页面和清单 manifest.json。
k3 app init my-app --module example.com/my-app
cd my-app
go build ./...
k3 test-enterprise create "分销联调" --email sbx-admin@example.com --sample general
k3 test-enterprise list
k3 dev --test-enterprise ${SANDBOX_ID} --app my-app -- go run ./api
k3 dev 结束时吊销这次的测试凭证快速开始 →
- Go SDK
raise-go:令牌、重试、幂等键和分页由客户端代劳。
- TypeScript SDK
@21stware/raise-sdk:服务端用,零运行时依赖,Node 18+、Deno、Bun 可用。
- React 应用 SDK
@21stware/raise-app-kit:页面里的草稿、表单绑定、分享按钮。
- 契约等级 L0–L3
嵌入、可链接、感知、可起草 / 可操作;等级由审核人员用 k3 contract 实测,不由开发者自报。
Interfaces
接口:开放接口、应用接口、Webhook 和 MCP。
- 开放接口 /open/v1。组织的客户、成员与组织、多维表数据;凭证换令牌调用。
- 应用接口 /app/v1。已安装的应用向平台要能力;缺少范围返回 403。
- Webhook。统一的事件信封、签名校验与重试。
- MCP。外部 Agent 经平台的 MCP 桥接入;应用可以声明自己的 MCP 服务,以成员身份只读取与起草。
{
"id": "evt_01JBCDEF0123456789ABCDEF01",
"type": "app.installed",
"createdAt": "2026-10-28T12:00:00Z",
"apiVersion": "2026-10-28",
"tenant": "acme_corp",
"environment": "live",
"app": "shop-sync",
"data": {
"version": "1.0.0",
"scopes": ["tables.base:read", "platform:ping"]
}
}
curl -sS -X POST "https://api.${DOMAIN}/app/v1/events/emit" \
-H "Authorization: Bearer ${TENANT_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"type": "shop-sync.order.created", "key": "order-1001", "data": {"orderId": "1001"}}'
签名在请求头 X-Kwork-SignatureWebhooks 与事件订阅 →