先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
表 articles:id(唯一且非空的主键)、title、status、created_at(非空);用户隔离由已配置权限实施;每页 20 行;已初始化兼容 CloudBase v3 的 db 客户端。
输出
编辑示例 · 未运行
const { data, error } = await db.from("articles")
.select("id,title,status,created_at")
.eq("status", "draft")
.order("created_at", { ascending: false })
.order("id", { ascending: false })
.range(0, 19);
if (error) throw error;
// range 两端都包含:这里最多 20 行。
// 另用匿名、本人、另一用户三种身份验证访问结果;此查询本身不构成隔离证明。
// 相同 created_at 用唯一 id 打破并列;并发新增/删除时偏移分页仍可能移动。方法说明
围绕表结构、权限与 SDK 查询实现 PostgreSQL 功能,处理 CloudBase 接入和 HTTP 调用差异。
具体任务
按云开发 PG 接口写查询:区分 app.rdb() 与 NoSQL API,依据真实表结构完成读取和分页。
检查身份与数据权限边界:将访问条件与用户身份联系起来,验证匿名和跨用户场景。
必需材料
CloudBase PG 环境与 SDK 版本
真实 schema、查询需求和权限规则
可选材料
现有数据访问代码
脱敏样例及迁移约束
使用门槛
已确认环境使用 PG 模式,能提供安全的开发环境配置。
这个 Skill 额外提供的方法
减少把 NoSQL 或其他 ORM 写法套到 PG 的错误,并把权限验证纳入交付。
编辑示例(未运行)
查询自己的草稿列表第一页
任务:使用已经初始化的 CloudBase v3 db 客户端。
输入:
表 articles:id(唯一且非空的主键)、title、status、created_at(非空);用户隔离由已配置权限实施;每页 20 行;已初始化兼容 CloudBase v3 的 db 客户端。
结果片段:
```typescript
const { data, error } = await db.from("articles")
.select("id,title,status,created_at")
.eq("status", "draft")
.order("created_at", { ascending: false })
.order("id", { ascending: false })
.range(0, 19);
if (error) throw error;
// range 两端都包含:这里最多 20 行。
// 另用匿名、本人、另一用户三种身份验证访问结果;此查询本身不构成隔离证明。
// 相同 created_at 用唯一 id 打破并列;并发新增/删除时偏移分页仍可能移动。
```
代码沿用固定上游的 PG 查询链;补充核对官方修饰符文档确认 order 可多次调用。以唯一 id 打破创建时间并列,身份与权限仍需另行验证。 此为编辑示例,未安装或运行上游 Skill。
首次任务
在【CloudBase PG 环境/SDK 版本】依据【schema】实现【查询需求】,遵守【权限规则】;验收:用 PG API、处理错误、验证匿名及跨用户访问,不改生产权限。
必需材料:CloudBase PG 环境与 SDK 版本:【请填写或粘贴】;真实 schema、查询需求和权限规则:【请填写或粘贴】
验收方法
是否误用了 NoSQL 的 where/orderBy 等接口
分页边界和排序是否确定
授权与未授权身份是否分别验证
依赖与准备
CloudBase PG 环境、兼容的 JS SDK v3、认证与权限配置;远程数据库工具需环境访问权限。
使用边界
迁移和权限变化可能影响已有数据,需明确目标环境、备份与兼容要求。
客户端筛选不能替代服务端权限,查询成功不证明隔离正确。
排错
出现 PGRST205 或找不到表:核对实际表名与 schema,避免重复 public.public 前缀。
本人能查询就认为权限完成:补匿名与另一用户的拒绝场景,检查服务端规则而非只看前端条件。
固定来源
https://github.com/TencentCloudBase/CloudBase-AI-Toolkit/blob/abd9b8acc4a831ef70852215d7f9b9f3c1f6903e/config/source/skills/postgresql-development-cloudbase/SKILL.md