Poco 使用手册
平台说明

应用数据架构设计

应用数据的整体结构、数据归属、访问权限、安全边界与运行流程。

应用数据为 Poco 生成的页面提供持续保存和管理记录的能力,使报名表、任务看板、个人记录等应用可以在多次访问中继续使用,也可以由对话或定时任务更新数据。

本文介绍这项能力的整体设计。常见使用场景和可直接复制的提示词,见 应用数据最佳实践。

1. 设计目标与范围

应用数据围绕页面使用、对话处理和自动化更新建立统一的数据基础:

  • 数据持续保存:页面关闭或重新生成后,仍可继续使用同一应用的数据。
  • 多入口共用:本人预览、文件分享、对话分享和发布页可以访问同一份数据。
  • 访问范围可控制:分别规定谁能查看内容、提交记录、修改记录,以及只查看数量。
  • 页面与任务协作:页面负责交互和展示,对话与定时任务可以读取和更新共享数据。
  • 作者可管理:提供规则查看、记录浏览、导出、删除和清空能力。

整体设计复用 Poco 现有的登录体系、数据库和附件存储。用户通过对话描述需求,平台负责建立应用、设置规则并执行数据访问校验。

这项能力服务于平台内的轻量应用。外部系统的数据接入、复杂的跨应用关联分析和数据实时推送不属于当前范围。

2. 总体架构

应用数据包含两条访问链路:一条用于页面交互,另一条用于对话和定时任务。两条链路最终都由应用数据服务执行归属、权限和容量校验。

组成部分主要职责
应用页面展示记录、收集输入、发起数据操作,并提示操作结果
Poco 预览、分享与发布入口承载应用页面,确认请求来源,携带当前访问入口和登录状态
任务执行服务根据对话或定时任务的要求,创建应用、设置规则、读取和更新共享数据
任务管理服务校验任务所属用户,将应用数据操作转交给数据服务
应用数据服务统一处理应用归属、访问权限、容量限制、记录操作与附件管理
记录存储保存应用名称、作者、访问规则及各类记录
附件存储保存页面上传的图片和文件,由数据服务管理归属与访问

应用数据服务属于平台后端,是数据访问规则的统一执行位置。页面中的按钮或提示用于引导交互,实际是否允许操作由服务端判断。

3. 数据组织与归属

应用是数据的管理单位

每个应用归属于一位作者,并拥有独立的名称、应用标识、访问规则和数据。页面通过应用标识关联到对应的数据。

记录按用途分组,例如任务、报名、日报;每组称为一个“集合”。同一个集合中的记录遵循相同的共享访问规则。

数据归属于应用,而不是某次对话或某个页面版本:

  • 预览、分享和发布使用同一应用时,共用同一份数据。
  • 作者继续修改页面、在新对话中制作新的展示页面,或通过定时任务更新内容时,可以继续关联原应用。
  • 来源对话用于追踪应用从哪里创建,帮助作者返回原对话修改页面;它不决定数据归属。
  • 他人复制页面并继续创作后,原应用仍属于原作者。副本需要建立自己的应用,才能保存独立的数据。

共享数据与个人私有数据

数据类型用途访问范围
共享数据报名、任务、报表等由应用统一管理的记录按集合规则开放,作者可以管理全部共享记录
个人私有数据每位使用者自己的收藏、记账或私人待办必须登录,仅该使用者本人可以访问

“共享”表示由应用统一管理,并不代表公开。一个共享集合也可以设置为仅作者可见。

个人私有数据按登录用户独立保存。应用作者的数据面板、对话和定时任务均不能读取其他使用者的私有记录;对话的数据工具只处理共享数据。

图片与附件

图片和附件归属于应用中的共享集合,并沿用该集合的访问规则:上传需要提交权限,查看需要读取权限。作者可以删除全部附件,登录访客只能删除自己上传的附件。

附件内容与记录分别保存,记录中保留附件信息。删除单条记录不会自动删除相关附件;清空集合或删除应用时,会清理对应范围的附件。个人私有数据目前不支持附件。

4. 权限设计

共享数据的访问规则

每个共享集合分别设置查看和提交范围:

范围查看记录提交、修改和删除
仅作者仅作者可查看仅作者可新增、修改和删除
登录用户登录 Poco 的访客可查看登录访客可新增,只能修改或删除自己创建的记录
所有访客包括未登录访客在内都可查看所有访客可新增;登录访客只能修改或删除自己创建的记录,未登录访客不能修改或删除已有记录

作者始终可以管理自己应用中的全部共享数据。没有明确设置规则的集合,默认仅作者可查看和修改。

查看与提交范围可以分别设置。例如报名表可以允许所有人提交,但只有作者查看报名名单。“登录用户”表示符合登录条件的访客,不自动限制为某个团队或指定成员。

平台还支持单独设置“查看数量”的范围,用于报名人数公开、报名名单保密等需求。只有数量查看权限的访客只能获取总数,不能通过筛选人数推断受保护的内容。

创建管理权限与页面使用权限

“应用数据”功能权限控制作者能否通过对话或定时任务创建和管理应用,以及能否进入数据管理面板。管理员可以按角色调整这项权限。

页面访问按应用本身的规则执行。关闭作者的功能权限,不会自动停止已有分享或发布页面的数据访问。需要停止访客访问时,应调整应用的数据规则。

专业与办公模式提供相同的数据能力;专业模式另外提供集中管理应用的列表入口。外部嵌入对话不提供应用数据管理能力,避免外部访客借助对话操作应用所有者的数据。

5. 核心运行流程

创建带数据的页面

  1. 用户在对话中说明应用用途、需要保存的内容和访问范围。
  2. 任务执行服务在用户权限允许时创建应用,并配置访问规则。
  3. 生成的页面关联到该应用,通过平台提供的数据能力查询和保存记录。
  4. 作者在页面预览和“应用数据”面板中确认交互、访问范围及保存结果。

访客查看或提交数据

  1. 访客通过有效的分享或发布入口打开应用页面。
  2. Poco 承载页面的数据请求,携带该入口和当前登录状态。
  3. 数据服务根据入口确认作者,并校验应用归属。
  4. 数据服务按数据类型和集合规则检查本次操作;修改或删除已有记录时,还会检查记录创建者。
  5. 操作结果返回页面,由页面展示记录、成功提示或失败原因。

本人预览也使用同一条页面访问链路,但要求访问者是该对话的所有者。

对话与定时任务更新数据

  1. 任务执行服务根据用户要求找到或创建应用,准备共享数据操作。
  2. 任务管理服务校验任务所属用户,转交数据操作。
  3. 数据服务确认应用属于该用户,完成记录读取或更新。
  4. 页面在下一次查询时读取更新后的数据。

汇总计算由任务或页面完成。定时任务可以按日期更新报表,但重复执行是否覆盖同一天的结果,需要在任务要求中明确。

6. 安全边界

安全校验贯穿页面入口、应用归属和记录操作三个层面:

  • 入口有效性:本人预览要求对话归属正确;分享入口要求链接有效;发布入口要求当前发布有效。入口另有登录要求时也必须满足。
  • 应用归属:应用必须属于当前入口的作者,防止页面借用其他作者的应用标识操作数据。
  • 请求来源:平台只接受当前承载页面发出的数据请求。页面跳转到外部网站后,不能继续借用原页面的数据访问能力。
  • 凭据管理:登录和服务访问凭据由平台持有,应用页面通过平台完成数据操作。
  • 任务身份:对话和定时任务只能操作所属用户的应用,且只能处理共享数据。
  • 修改校验:服务端检查访问规则和记录创建者,同一记录的并发合并更新按顺序处理。

访问入口用于确认作者,并不限定只能访问当前页面关联的那一个应用。因此,撤回某个页面后,同一作者的其他有效分享或发布入口仍可能访问按规则开放的数据。停止开放应调整应用规则,不能只依赖页面撤回。

7. 数据管理与生命周期

作者可以从本人对话预览打开“应用数据”面板。专业模式还提供 工作 → 应用数据 列表,集中管理作者创建的应用,并返回来源对话继续修改页面。

管理能力覆盖共享数据:

  • 查看各集合的访问规则、记录及数量。
  • 导出某个集合的全部共享记录为可用 Excel 打开的 CSV 表格。
  • 删除单条记录,或清空整个集合的记录与附件。
  • 删除应用及其全部记录和附件。

CSV 导出包含所选集合的全部共享记录,不限制记录数量或集合数据总大小,最多支持 200 个业务字段。服务端分批读取记录并暂存到临时文件,再流式输出 CSV;导出完成后自动清理临时文件。

面板目前用于查看、导出和清理。访问规则通过对话调整,记录内容通过应用页面或对话修改。

管理员可以在管理后台 内容与运营 → 应用数据 查看所有用户的应用,按应用名称、应用 ID 或所有者搜索,并对任一应用使用上述查看、导出和清理能力,包括删除应用。管理员不修改访问规则,也看不到访客的私有数据。列表和操作遵循内容隐私设置:所有者开启内容隐私后,只有超级管理员可以查看和管理其应用数据。

预览与正式使用共用同一份数据,不区分试用数据和正式数据。页面改版时,只要继续关联原应用,就可以保留已有记录;删除应用后,关联页面将无法继续访问这些数据。

8. 当前能力边界

项目当前限制
单条记录JSON 内容按 UTF-8 编码计算,默认不超过 1MB;通过 USER_APP_MAX_DOCUMENT_SIZE_MB 配置
共享记录不设置记录数量上限,实际容量取决于数据库与服务器资源
个人私有记录不设置记录数量上限,每位使用者的数据独立保存
图片与附件单个文件不超过 10MB;每个应用最多 10,000 个文件,总容量默认 10GB,由管理员配置
附件类型支持常见图片、PDF、办公文档、文本、CSV 和 ZIP 文件
查询能力支持按记录字段筛选、比较、排序、分页和计数,单次最多查询 200 条;分组、求和等汇总由页面或任务计算
更新方式页面主动查询数据,暂不提供数据变化的实时推送
跨应用使用可以分别读取自己的应用进行分析,暂不支持跨应用关联查询

数据能力依赖 Poco 的页面承载入口。下载到本地的页面和产物的“在新窗口打开”无法使用这项能力。

应用数据适合轻量记录和协作,不建议保存密码、密钥、身份证号等敏感信息。外部系统需要通过已有的数据访问能力取得资料,再由任务写入应用。

On this page