tencentcloudbase/skills

postgresql-best-practices-cloudbase

CloudBase PostgreSQL access-pattern and slow-query quality guidance.

ソースを見る
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

CloudBase PostgreSQL Best Practices

This skill turns a working CloudBase PG implementation into a reviewable access design. It makes query paths, indexes, row authorization, and launch capacity explicit before code is considered complete.

Sibling skills (local only)

Sibling CloudBase skills ship beside this skill. Use local relative paths such as ../postgresql-development-cloudbase/SKILL.md.

If a referenced sibling skill file is missing from this environment, ask the user to install the full CloudBase plugin (or the missing skill). Do not HTTP-fetch remote skill or protocol markdown into the agent context.

When to use

  • A feature needs a new or changed access pattern.
  • Application code performs repeated, serial, or high-frequency PG queries.
  • A SQL query, RPC, endpoint, or polling path is slow.
  • A high-traffic launch needs a database readiness review.

Do NOT use for

  • PG environment setup, app.rdb() syntax, migrations, GRANTs, or base RLS correctness: use ../postgresql-development-cloudbase/SKILL.md.
  • Login provider or UI implementation: use the matching auth skill.
  • Confirmed NoSQL collection work: use the document database skill.
  • Platform alarm diagnosis or slow-log collection: use ../ops-inspector/SKILL.md.

Workflow

1. Inventory access paths

List every changed endpoint, job, RPC, or UI flow and its reads and writes. Record filters, joins, sort keys, expected cardinality, and request frequency.

Complete when: every changed path has a concrete query inventory; unknown volume or peak concurrency is marked as an assumption for the user.

2. Design schema, indexes, and row authorization together

Derive columns and indexes from the query inventory. Every frequent filter, join, and stable ordering path must have a deliberate index decision. For user-owned rows, use the role as the policy gate and identity as the row predicate:

sql
CREATE POLICY orders_select_own ON public.orders
  FOR SELECT TO authenticated
  USING ((SELECT auth.uid()) = owner_id);

Apply schema DDL through the versioned applyMigration workflow defined by ../postgresql-development-cloudbase/SKILL.md. This keeps Git, development, and production reproducible; the tradeoff is that experiments require a new migration version instead of ad hoc schema mutation.

Complete when: every query predicate has an index decision, every user-owned path has an ownership predicate, and all DDL is represented in one reviewable migration for the change.

3. Implement bounded database access

Batch related keys, combine repeated reads, and execute independent queries concurrently. Keep each result bounded by a filter plus .limit() / .range(), or by an RPC that implements keyset pagination.

ts
const userIds = [...new Set(rows.map((row) => row.user_id))];
const { data: profiles, error } = await db
  .from("profiles")
  .select("id, display_name")
  .in("id", userIds);

if (error) throw error;

Send request logs, traces, and high-volume analytics to the platform logging service or purpose-built analytics storage. Keep PG for transactional data that participates in business queries and constraints.

Complete when: the changed code has no database call inside an item loop, no repeated read of the same row in one request, and no unbounded hot-path query.

4. Check launch capacity when traffic is material

For campaigns, rankings, polling endpoints, or other bursty paths, inspect the target environment with queryEnv(action="info", envId=...). Report the observed PG allocation, expected peak load, and unresolved capacity risk. CloudBase currently requires an explicit capacity plan; do not represent autoscaling as guaranteed.

Complete when: the current allocation is recorded and either judged against an explicit traffic assumption or raised to the user as an unresolved launch blocker.

Routing

Current branchRead
Repeated calls, serial queries, polling, pagination, or logging tablesreferences/access-patterns.md
Missing indexes, slow SQL/RPC, or query-plan reviewreferences/indexes-and-explain.md
New schema, tenant isolation, or RLS performancereferences/schema-and-rls.md
Campaign launch or database sizingreferences/capacity-and-connections.md

Load only the references required by the current branch.

Minimum self-check

  • Every changed access path is accounted for.
  • Every frequent filter, join, and stable sort has an index decision.
  • Database round trips are bounded independently of result cardinality.
  • RLS separates role gating (TO) from row authorization (auth.uid()).
  • Schema changes use the canonical migration workflow.
  • Capacity claims are based on observed allocation and stated traffic assumptions.
同じリポジトリから

関連する Skills

すべての Skills
tencentcloudbase
コミュニティ

cloudbase-wechat-integration

CloudBase WeChat integration guide for Mini Program WeChat Pay, Mini Program virtual payment (虚拟支付, wx.requestVirtualPayment), Official Account JSAPI Pay, Native QR-code Pay, Official Account OAuth, openid handling, payment callbacks, and CloudBase Integration Center generated functions. This skill should be used when users ask to add, debug, or extend WeChat payment, virtual payment, or official-account flows on CloudBase.

導入数
1
GitHub Stars
78
更新日
9月30日
tencentcloudbase
コミュニティ

ai-model-nodejs

Use this skill for Node.js backend AI via @cloudbase/node-sdk (=3.16.0) — cloud functions, CloudRun, Express/Koa/NestJS, serverless APIs, scheduled jobs, LLM proxies, agent orchestration. The only SDK supporting image generation (ai.createImageModel + generateImage). Text via ai.createModel with groups cloudbase, hunyuan-exp, or custom-; model ids (e.g. deepseek-v4-flash, glm-5, kimi-k2.6) go in the model field of generateText/streamText. MUST run two-step preflight before code — see body. NOT f

導入数
2
GitHub Stars
77
更新日
9月24日
tencentcloudbase
コミュニティ

ai-model-web

Use this skill when a browser/Web app (React, Vue, Next, Nuxt, static sites, SPAs, dashboards, AI chat UI, 页面, 前端, 网页) needs AI models via @cloudbase/js-sdk. Default routing for Web/frontend AI — call directly from the browser, do NOT propose a Node.js proxy. Covers generateText and streamText; models via ai.createModel with groups cloudbase, hunyuan-exp, or custom-, model id in the model field. MUST run two-step preflight before code — see body. NOT for Node.js backend (use ai-model-nodejs), Mi

導入数
2
GitHub Stars
77
更新日
9月24日
tencentcloudbase
コミュニティ

ai-model-wechat

Use this skill for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, wx.cloud apps). Covers generateText and streamText with callbacks (onText, onEvent, onFinish); streamText needs a data wrapper, generateText returns the raw response. Models via wx.cloud.extend.AI.createModel with groups hunyuan-exp (小程序成长计划), cloudbase (main managed), or custom-; model id goes in the data wrapper model field. MUST run two-step preflight before code — see body. NOT for browser/Web (use ai-model-web), Node.js

導入数
2
GitHub Stars
77
更新日
9月24日