Loading...
Loading...
面向应用与Agent的Neon平台概述,涵盖Postgres、Auth、Data API,以及新增服务:Object Storage(对象存储)、Compute Functions(计算函数)和AI Gateway。当提及“Neon”时,可使用本内容获取Neon的使用方法与入门指南。其他情况下,需根据具体功能触发对应内容:若涉及“object storage”或“S3-compatible storage”、“serverless functions”、“background jobs”或“在数据库附近运行代码”,以及“AI gateway”、“LLM proxy”、“model routing”或“调用LLM”,则指向AI Gateway;若涉及“database”、“Postgres”或“authentication”,则指向Postgres和Auth。
npx skill4agent add neondatabase/agent-skills neonus-east-2us-east-2neon-functions.mdtext/markdowncurl -H "Accept: text/markdown" https://neon.com/docs/introduction/branchinghttps://neon.com/docs/llms.txtneon-postgresneon-postgres-branchesneon-object-storageneon-functionsneon-ai-gatewayclaimable-postgresneon-postgres-egress-optimizerSKILL.mdskillsnpxbunxnpx skills add neondatabase/agent-skills -s <skill-name><skill-name>neon-object-storageneon-functionsneon-ai-gateway-g-y-a <agent-name>npx skills add neondatabase/agent-skills -s neon-object-storage -g -y -a <agent-name>.neonneon.ts.envDATABASE_URLnpx -y neonctl initnpx -ynpx -y neonctl@latest initneonneon-postgresinitnpm i -g neonctlcursor --install-extension databricks.neon-local-connectnpx -y add-mcp https://mcp.neon.tech/mcp -g -n Neon -y -a <agent-name>npx skills add neondatabase/agent-skills --skill neon-postgres --skill neon --agent <agent-name> -yneonctl initnpx -y neonctl link.neonDATABASE_URL.envgitlinkcheckoutenv pullneonctl link.neon--project-id--branchneonctl branch listneonctl checkout <branch-name>.neonneonctl env pullDATABASE_URL.env.env.env.local--file.neonlinkcheckoutlinkcheckoutneonctl link # 仅运行一次;同时拉取链接分支的环境变量
neonctl checkout dev-add-search # 每个功能运行一次;同时拉取分支的环境变量linkcheckoutDATABASE_URL.envcheckout.neonneonctl linkneonctl checkoutneonctl link --agentstatusneeds_orgneeds_projectneeds_project_detailslinkederroroptionsnext_command_templatestatus: "linked"neonctl set-context --project-id <id> --org-id <id> --branch-id <id>.neon.neonset-contextlink --agentlinkcheckout--no-env-pullneon-env run -- <your dev command>@neondatabase/envneon.ts.envenv pullneon-env export@neondatabase/env--format json@setValuesBulk(exec("neon-env export --format json"), format=json).env.schema@neondatabase/envfetchEnvneon-env runneonctl dev.envAGENTS.mdneonctl checkout <branch> --no-env-pullneon.ts@neondatabase/confignpm i @neondatabase/config// neon.ts
import { defineConfig } from "@neondatabase/config/v1";
export default defineConfig({
auth: true,
dataApi: true,
});neon.tspreview// neon.ts
export default defineConfig({
auth: true,
dataApi: true,
preview: {
functions: { /* ... */ }, // 详见neon-functions技能
buckets: { /* ... */ }, // 详见neon-object-storage技能
aiGateway: true, // 详见neon-ai-gateway技能
},
});terraform statusplanapplyneonctl config status # 打印分支的实时配置(只读)
neonctl config plan # 试运行apply操作的差异(只读)
neonctl config apply # 预配声明的服务
neonctl deploy # `neonctl config apply`的别名config statusconfig planapplydeploylinkcheckout.env.localPulled 5 Neon variables into .env.local: DATABASE_URL, …@neondatabase/envparseEnvneon.tsenvauthenv.authdataApienv.dataApicheckoutenv pull.envfetchEnvneon-env runnpm i @neondatabase/envimport { parseEnv } from "@neondatabase/env/v1";
import config from "./neon";
const env = parseEnv(config);
console.log(env.postgres.databaseUrl);
console.log(env.auth.baseUrl);parseEnvDATABASE_URLimport { parseEnv } from "@neondatabase/env/v1";
import config from "./neon";
// 仅要求并返回DATABASE_URL;不强制要求DATABASE_URL_UNPOOLED。
const { postgres } = parseEnv(config, ["DATABASE_URL"]);
console.log(postgres.databaseUrl);
// 跨服务选择变量——仅验证/返回这些键。
const env = parseEnv(config, ["DATABASE_URL", "NEON_AUTH_BASE_URL"]);
console.log(env.postgres.databaseUrl, env.auth.baseUrl);neon.tsneonctl checkoutneonctl config applyneonctl deployenv pullneon.tsneonctl deployneon.tsbranch// neon.ts
import { defineConfig } from "@neondatabase/config/v1";
export default defineConfig({
auth: true,
dataApi: true,
branch: (branch) => {
if (branch.exists) {
// 不修改现有分支
return {};
}
if (branch.name.startsWith("dev")) {
return {
ttl: "7d", // 7天后自动清理分支
postgres: {
computeSettings: {
autoscalingLimitMinCu: 0.25, // 缩容至零
autoscalingLimitMaxCu: 1, // 控制成本
suspendTimeout: "5m",
},
},
};
}
return {};
},
});branchnameexistsdev-*neonctl checkoutdev-*neon.tsType 'true' is not assignable to type 'never'dataApiexport default defineConfig({
dataApi: true, // 类型错误:`dataApi`(默认authProvider为'neon')需要启用Neon Auth
});// 1. 启用Neon Auth(Data API默认的认证提供商):
export default defineConfig({ auth: true, dataApi: true });
// 2. 使用第三方IdP而非Neon Auth进行验证:
export default defineConfig({
dataApi: { authProvider: "external", jwksUrl: "https://your-idp/.well-known/jwks.json" },
});neon.tslocalhostinvalid domainneonctl neon-auth domain add <domain> # 例如:neonctl neon-auth domain add https://app.example.com
neonctl neon-auth domain list # 验证当前可信域名
neonctl neon-auth domain delete <domain> # 删除不再使用的域名--project-id <id>--branch <id|name>neonctl neon-auth domain allow-localhostlocalhostinvalid domain