Install
openclaw skills install @thcjp/web-notepadopenclaw skills install @thcjp/web-notepad核心功能: 本技能提供万级数据)等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 在线表单笔记(专业版)企业级表单管理 | 不支持 | 支持 |
| 深度漏洞扫描与CVE关联 | 不支持 | 支持 |
| 安全基线合规审计 | 不支持 | 支持 |
| 批量资产风险评分 | 不支持 | 支持 |
| 威胁情报实时订阅与告警 | 不支持 | 支持 |
| 能力 | 免费版 | 专业版 |
|---|---|---|
| 表单CRUD | 单次≤10字段 | 无限制 |
| 提交数据 | 单条操作 | 单条 + 批量(万级) |
| Webhook订阅 | 不支持 | 全事件订阅 |
| RBAC权限 | 不支持 | 五维完整体系 |
| 自定义模板 | 不支持 | 模板库 + 版本管理 |
| 数据加密 | 传输加密 | 字段级加密存储 |
| 审计日志 | 不支持 | 全操作可追溯 |
| 缓存策略 | 无 | 多级缓存 + 命中率监控 |
| 并发限制 | 200/小时 | 10000/小时 |
| 技术支持 | 社区 | 优先工单(4小时响应) |
中型企业HR部门希望将纸质审批流程数字化,涉及请假、报销、调岗等多种审批单.
# 1. 创建审批模板(可复用)
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/templates" \
-d '{
"name": "标准审批单模板",
"fields": [
{"path": "applicant", "label": "申请人", "type": "text", "required": true},
{"path": "type", "label": "审批类型", "type": "select", "options": [
{"value": "leave", "label": "请假"},
{"value": "expense", "label": "报销"},
{"value": "transfer", "label": "调岗"}
]},
{"path": "amount", "label": "金额", "type": "number"},
{"path": "reason", "label": "事由", "type": "textarea"}
]
}'
# ...
# 2. 基于模板批量创建审批表单
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/forms/batch" \
-d '{
"templateId": "tpl_详情见说明",
"items": [
{"name": "请假审批", "projectId": "proj_hr"},
{"name": "报销审批", "projectId": "proj_hr"},
{"name": "调岗审批", "projectId": "proj_hr"}
]
}'
# ...
# 3. 配置Webhook推送审批事件
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/forms/{formId}/webhooks" \
-d '{
"url": "https://your-app.example/webhooks/approval",
"events": ["submission.created", "submission.updated"],
"secret": "your_webhook_secret"
}'
集团企业需要建立统一的数据收集网关,各业务部门通过统一入口提交数据,后端按部门隔离.
# 1. 创建部门角色
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/roles" \
-d '{
"name": "销售部提交员",
"base": "viewer",
"description": "仅可向销售部表单提交数据",
"scopes": ["form:submit:sales_*"]
}'
# ...
# 2. 分配用户到角色
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/assignments" \
-d '{
"principalType": "user",
"principalId": "user_详情见说明",
"roleId": "role_详情见说明",
"orgId": "org_详情见说明"
}'
# ...
# 3. 批量查询各部门提交情况
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/submissions/batch-query" \
-d '{
"queries": [
{"formId": "frm_sales", "dateRange": {"start": "2026-01-01", "end": "2026-01-31"}},
{"formId": "frm_marketing", "dateRange": {"start": "2026-01-01", "end": "2026-01-31"}}
]
}'
市场调研公司需要在2周内收集10万份问卷,并按维度导出分析数据.
# 1. 批量导入历史样本数据
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/forms/{formId}/submissions/batch" \
-d '{"submissions": [<数据从data.jsonl流式读取>]}'
# ...
# 2. 启用并行查询与缓存
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/forms/{formId}/submissions/export" \
-d '{
"format": "csv",
"filters": {"dateRange": {"start": "2026-01-01", "end": "2026-01-15"}},
"parallel": true,
"cacheKey": "export_2026_01",
"ttl": 3600
}'
# ...
# 3. 查询审计日志
curl -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
"https://api.web-notepad.example/v1/audit-logs?resourceType=form&resourceId={formId}&action=export&limit=100"
预计上手时间:<120秒(适合中等复杂度工具).
在控制台"账户-订阅"中升级至专业版,API Key无需更换,权限自动扩展.
# 列出组织
curl -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
"https://api.web-notepad.example/v1/orgs"
# ...
# 创建角色
curl -X POST -H "Authorization: Bearer $WEB_NOTEPAD_API_KEY" \
-H "Content-Type: application/json" \
"https://api.web-notepad.example/v1/roles" \
-d '{"name": "数据分析师", "base": "viewer", "description": "可查询所有表单提交"}'
参考"场景一"第3步,将提交事件推送到你的业务系统.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | web-notepad处理的内容输入 |
| strict_level | string | 否 | 审查严格度, 可选: strict/normal/loose, 默认: normal |
{
"success": true,
"data": {
"overall_grade": "A",
"total_score": 92,
"max_score": 100,
"summary": "处理完成",
"details": [
{
"item": "代码风格",
"status": "pass",
"score": 95,
"comment": "符合规范"
},
{
"item": "安全合规",
"status": "warn",
"score": 80,
"comment": "符合规范"
}
],
"improvements": [
{
"priority": "high",
"suggestion": "建议优化",
"expected_gain": "+5分"
},
{
"priority": "medium",
"suggestion": "建议优化",
"expected_gain": "+3分"
}
]
},
"error": null
}
| 症状 | 可能原因 | 解决方案 | 优先级 |
|---|---|---|---|
| 批量提交部分失败 | 个别数据格式错误 | 查看响应中的failedItems,修正后用Idempotency-Key | 高 |
| Webhook投递延迟 | 接收端响应慢或5xx | 检查接收端性能,启用异步处理队列 | 高 |
| RBAC权限不生效 | 角色继承层次过深或循环 | 用roles trace命令查看继承链,简化层次 | 中 |
| 加密字段查询慢 | 全表扫描加密字段 | 为加密字段建立hash索引,用hash值做等值过滤 | 中 |
| 缓存命中率下降 | 缓存Key设计不合理或TTL过短 | 调整Key粒度与TTL,监控命中率曲线 | 低 |
| 审计日志查询超时 | 单次查询范围过大 | 缩小时间范围,或使用导出功能异步处理 | 低 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| curl | 命令行工具 | 必需 | 操作系统自带或通过包管理器安装 |
| jq | JSON处理工具 | 推荐 | 通过apt install jq或brew install jq安装 |
| 表单服务API | 在线服务 | 必需 | 通过控制台获取专业版API Key |
| Redis | 缓存服务 | 可选 | 用于多级缓存,自建或使用云服务 |
关系型数据库 | 数据库 | 可选 | 用于数据仓库同步,版本12+ |
| 对象存储 | 存储服务 | 可选 | 用于大规模导出归档,兼容S3协议 |
WEB_NOTEPAD_API_KEY传入,权限自动包含高级功能WEB_NOTEPAD_WEBHOOK_SECRET传入,用于签名校验{
"event": "submission.created",
"timestamp": "2026-07-18T10:30:00Z",
"data": {
"formId": "frm_详情见说明",
"submissionId": "sub_详情见说明",
"data": {"name": "张三", "email": "zhangsan@example.com"}
},
"signature": "sha256=..."
}
| 维度 | 说明 | 示例 |
|---|---|---|
| 用户(Users) | 主体,可属于多个组 | user@example.com |
| 组(Groups) | 用户集合,便于批量授权 | 工程组、运营组 |
| 角色(Roles) | 权限集合,可继承 | 管理员、提交员、查看员 |
| 权限(Permissions) | 具体操作权限 | form:read, form:submit |
| 分配(Assignments) | 主体与角色的绑定关系 | 用户→角色 |
{
"path": "idCard",
"label": "身份证号",
"type": "text",
"required": true,
"encryption": {
"algorithm": "AES-256-GCM",
"keyId": "key_2026_01",
"masking": "partial"
}
}
A: 使用Idempotency-Key重发同一批请求,系统会跳过已成功部分,仅重试失败项。也可通过checkpoint断点续传.
A: 1)检查接收端是否返回200;2)检查签名校验是否通过;3)在控制台"Webhook投递日志"中查看失败原因;4)支持手动重投.
A: 最多5层继承。超过会触发循环检测并拒绝创建,避免权限环路.
A: 字段级加密会使该字段的等值查询性能下降约30%。建议仅对敏感字段启用,非敏感字段保持明文.
A: 可以。支持按时间范围、操作类型、资源ID筛选导出,格式支持JSON、CSV.
A: 99.9%可用性,故障4小时响应,数据可恢复性RPO<15分钟、RTO<4小时.
A: 通过POST /v1/cache/invalidate接口主动失效,或在表单更新时自动失效相关缓存.
A: 可以。通过transform字段指定预置转换器(wecom、dingtalk、slack),或通过template字段传入自定义Jinja2模板.
A: 支持CSV、JSON、JSONL、Parquet四种格式。大规模导出建议使用Parquet,压缩比与查询性能更优.
A: 控制台"用量分析"页面提供按小时维度的请求量、缓存命中率、批量任务数等指标,支持设置预算告警.
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 表单创建 | 1小时 | 10分钟 | 50分钟 | 10% |
| 批量数据导入 | 4小时 | 30分钟 | 3.5小时 | 20% |
| 数据加密处理 | 2小时 | 1小时 | 1小时 | 15% |
| 审计日志查询 | 30分钟 | 5分钟 | 25分钟 | 50% |
| Webhook事件处理 | 1小时 | 15分钟 | 45分钟 | 30% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 操作便捷性 | 高 | 低 | 中 | 高 |
| 批量处理能力 | 强 | 弱 | 中 | 强 |
| 安全性 | 高 | 低 | 中 | 高 |
| RBAC权限管理 | 完整 | 简单 | 中 | 完整 |
| 自定义模板 | 强 | 弱 | 中 | 强 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 数据处理效率低 | 大量数据手动处理耗时且易出错 | 整个流程 | 自动化处理 | 时间节约50% |
| 权限管理复杂 | 手动分配权限,难以维护 | 安全性 | RBAC权限管理 | 安全性提升10% |
| 数据安全风险 | 数据未加密存储,存在泄露风险 | 数据安全 | 加密存储 | 安全性提升15% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法登录 | 用户名或密码错误 | 检查用户名和密码 | 重新输入正确的用户名和密码 |
| 表单创建失败 | 缺少必要字段 | 检查表单配置 | 补充缺失字段并重新创建 |
| 数据加密失败 | 加密密钥错误 | 检查密钥 | 重新配置正确的密钥 |
| Webhook未收到事件 | Webhook配置错误 | 检查Webhook配置 | 重新配置Webhook |
| RBAC权限错误 | 权限分配错误 | 检查权限分配 | 重新分配权限 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
针对在线表单笔记(专业版)使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |