Loading...
Loading...
Compare original and translation side by side
npm install -g @insforge/clinpxnpx @insforge/cli <command>npx @insforge/cli whoami # verify authentication
npx @insforge/cli current # verify linked projectnpx @insforge/cli loginnpx @insforge/cli createnpx @insforge/cli linknpm install -g @insforge/clinpxnpx @insforge/cli <command>npx @insforge/cli whoami # 验证身份认证
npx @insforge/cli current # 验证关联的项目npx @insforge/cli loginnpx @insforge/cli createnpx @insforge/cli link| Flag | Description |
|---|---|
| Structured JSON output (for scripts and agents) |
| Skip confirmation prompts |
All examples below use. Never callnpx @insforge/clidirectly.insforge
| 标志 | 描述 |
|---|---|
| 结构化JSON输出(适用于脚本和Agent) |
| 跳过确认提示 |
以下所有示例均使用。请勿直接调用npx @insforge/cli。insforge
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error (e.g., HTTP 400+ from function invoke) |
| 2 | Not authenticated |
| 3 | Project not linked |
| 4 | Resource not found |
| 5 | Permission denied |
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 通用错误(例如调用函数时返回HTTP 400+状态码) |
| 2 | 未认证 |
| 3 | 未关联项目 |
| 4 | 资源未找到 |
| 5 | 权限拒绝 |
| Variable | Description |
|---|---|
| Override stored access token |
| Override linked project ID |
| Email for non-interactive login |
| Password for non-interactive login |
| 变量 | 描述 |
|---|---|
| 覆盖存储的访问令牌 |
| 覆盖关联的项目ID |
| 非交互式登录使用的邮箱 |
| 非交互式登录使用的密码 |
npx @insforge/cli login--emailnpx @insforge/cli logoutnpx @insforge/cli whoaminpx @insforge/cli login--emailnpx @insforge/cli logoutnpx @insforge/cli whoaminpx @insforge/cli createnpx @insforge/cli linknpx @insforge/cli currentnpx @insforge/cli listnpx @insforge/cli metadata--jsonnpx @insforge/cli createnpx @insforge/cli linknpx @insforge/cli currentnpx @insforge/cli listnpx @insforge/cli metadata--jsonnpx @insforge/cli dbnpx @insforge/cli dbnpx @insforge/cli db query <sql>npx @insforge/cli db tables / indexes / policies / triggers / functionsnpx @insforge/cli db rpc <fn> [--data <json>]npx @insforge/cli db exportnpx @insforge/cli db import <file>npx @insforge/cli db query <sql>npx @insforge/cli db tables / indexes / policies / triggers / functionsnpx @insforge/cli db rpc <fn> [--data <json>]npx @insforge/cli db exportnpx @insforge/cli db import <file>npx @insforge/cli functionsnpx @insforge/cli functionsnpx @insforge/cli functions listnpx @insforge/cli functions code <slug>npx @insforge/cli functions deploy <slug>npx @insforge/cli functions invoke <slug> [--data <json>] [--method GET|POST]npx @insforge/cli functions delete <slug>npx @insforge/cli functions listnpx @insforge/cli functions code <slug>npx @insforge/cli functions deploy <slug>npx @insforge/cli functions invoke <slug> [--data <json>] [--method GET|POST]npx @insforge/cli functions delete <slug>npx @insforge/cli storagenpx @insforge/cli storagenpx @insforge/cli storage bucketsnpx @insforge/cli storage create-bucket <name> [--private]npx @insforge/cli storage delete-bucket <name>npx @insforge/cli storage list-objects <bucket> [--prefix] [--search] [--limit] [--sort]npx @insforge/cli storage upload <file> --bucket <name> [--key <objectKey>]npx @insforge/cli storage download <objectKey> --bucket <name> [--output <path>]npx @insforge/cli storage bucketsnpx @insforge/cli storage create-bucket <name> [--private]npx @insforge/cli storage delete-bucket <name>npx @insforge/cli storage list-objects <bucket> [--prefix] [--search] [--limit] [--sort]npx @insforge/cli storage upload <file> --bucket <name> [--key <objectKey>]npx @insforge/cli storage download <objectKey> --bucket <name> [--output <path>]npx @insforge/cli deploymentsnpx @insforge/cli deploymentsnpx @insforge/cli deployments deploy [dir]npx @insforge/cli deployments listnpx @insforge/cli deployments status <id> [--sync]npx @insforge/cli deployments cancel <id>npx @insforge/cli deployments deploy [dir]npx @insforge/cli deployments listnpx @insforge/cli deployments status <id> [--sync]npx @insforge/cli deployments cancel <id>npx @insforge/cli secretsnpx @insforge/cli secretsnpx @insforge/cli secrets list [--all]--allnpx @insforge/cli secrets get <key>npx @insforge/cli secrets add <key> <value> [--reserved] [--expires <ISO date>]npx @insforge/cli secrets update <key> [--value] [--active] [--reserved] [--expires]npx @insforge/cli secrets delete <key>--active truenpx @insforge/cli secrets list [--all]--allnpx @insforge/cli secrets get <key>npx @insforge/cli secrets add <key> <value> [--reserved] [--expires <ISO date>]npx @insforge/cli secrets update <key> [--value] [--active] [--reserved] [--expires]npx @insforge/cli secrets delete <key>--active truenpx @insforge/cli schedulesnpx @insforge/cli schedulesnpx @insforge/cli schedules listnpx @insforge/cli schedules get <id>npx @insforge/cli schedules create --name --cron --url --method [--headers <json>] [--body <json>]npx @insforge/cli schedules update <id> [--name] [--cron] [--url] [--method] [--headers] [--body] [--active]npx @insforge/cli schedules delete <id>npx @insforge/cli schedules logs <id> [--limit] [--offset]npx @insforge/cli schedules listnpx @insforge/cli schedules get <id>npx @insforge/cli schedules create --name --cron --url --method [--headers <json>] [--body <json>]npx @insforge/cli schedules update <id> [--name] [--cron] [--url] [--method] [--headers] [--body] [--active]npx @insforge/cli schedules delete <id>npx @insforge/cli schedules logs <id> [--limit] [--offset]npx @insforge/cli diagnosenpx @insforge/cli diagnosenpx @insforge/cli diagnosenpx @insforge/cli diagnose metrics [--range 1h|6h|24h|7d] [--metrics <list>]1hnpx @insforge/cli diagnose advisor [--severity critical|warning|info] [--category security|performance|health] [--limit <n>]npx @insforge/cli diagnose db [--check <checks>]connectionsslow-queriesbloatsizeindex-usagelockscache-hitallnpx @insforge/cli diagnose logs [--source <name>] [--limit <n>]npx @insforge/cli diagnosenpx @insforge/cli diagnose metrics [--range 1h|6h|24h|7d] [--metrics <list>]1hnpx @insforge/cli diagnose advisor [--severity critical|warning|info] [--category security|performance|health] [--limit <n>]npx @insforge/cli diagnose db [--check <checks>]connectionsslow-queriesbloatsizeindex-usagelockscache-hitallnpx @insforge/cli diagnose logs [--source <name>] [--limit <n>]npx @insforge/cli logsnpx @insforge/cli logsnpx @insforge/cli logs <source> [--limit <n>]| Source | Description |
|---|---|
| Main backend logs |
| PostgREST API layer logs |
| PostgreSQL database logs |
| Edge function execution logs |
Source names are case-insensitive:works the same aspostgrest.logs.postgREST.logs
npx @insforge/cli logs <source> [--limit <n>]| 来源 | 描述 |
|---|---|
| 主后端日志 |
| PostgREST API层日志 |
| PostgreSQL数据库日志 |
| 边缘函数执行日志 |
来源名称不区分大小写:与postgrest.logs效果相同。postgREST.logs
npx @insforge/cli docsnpx @insforge/cli docsnpx @insforge/cli docsnpx @insforge/cli docs instructionsnpx @insforge/cli docs <feature> <language>db / storage / functions / auth / ai / realtimetypescript / swift / kotlin / rest-apiFor writing application code with the InsForge SDK, use the insforge (SDK) skill instead, and use theto get specific SDK documentation.npx @insforge/cli docs <feature> <language>
npx @insforge/cli docsnpx @insforge/cli docs instructionsnpx @insforge/cli docs <feature> <language>db / storage / functions / auth / ai / realtimetypescript / swift / kotlin / rest-api若要使用InsForge SDK编写应用代码,请改用insforge(SDK)技能,并使用获取特定的SDK文档。npx @insforge/cli docs <feature> <language>
{oss_host}/functions/{slug}/api/functions/{slug}npx @insforge/cli secrets update KEY --active true--allsecrets list--data--dataminute hour day month day-of-week${{secrets.KEY_NAME}}{oss_host}/functions/{slug}/api/functions/{slug}npx @insforge/cli secrets update KEY --active truesecrets list --all--data--dataminute hour day month day-of-week${{secrets.KEY_NAME}}npx @insforge/cli db query "CREATE TABLE posts (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
content TEXT,
author_id UUID REFERENCES auth.users(id),
created_at TIMESTAMPTZ DEFAULT now()
)"
npx @insforge/cli db query "ALTER TABLE posts ENABLE ROW LEVEL SECURITY"
npx @insforge/cli db query "CREATE POLICY \"public_read\" ON posts FOR SELECT USING (true)"
npx @insforge/cli db query "CREATE POLICY \"owner_write\" ON posts FOR INSERT WITH CHECK (auth.uid() = author_id)"FK to users: always. RLS current user:auth.users(id).auth.uid()
npx @insforge/cli db query "CREATE TABLE posts (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
content TEXT,
author_id UUID REFERENCES auth.users(id),
created_at TIMESTAMPTZ DEFAULT now()
)"
npx @insforge/cli db query "ALTER TABLE posts ENABLE ROW LEVEL SECURITY"
npx @insforge/cli db query "CREATE POLICY \"public_read\" ON posts FOR SELECT USING (true)"
npx @insforge/cli db query "CREATE POLICY \"owner_write\" ON posts FOR INSERT WITH CHECK (auth.uid() = author_id)"关联用户表的外键:始终使用。RLS当前用户:auth.users(id)。auth.uid()
undefinedundefinedundefinedundefinedundefinedundefined
**Environment variable prefix by framework:**
| Framework | Prefix | Example |
|-----------|--------|---------|
| Vite | `VITE_` | `VITE_INSFORGE_URL` |
| Next.js | `NEXT_PUBLIC_` | `NEXT_PUBLIC_INSFORGE_URL` |
| Create React App | `REACT_APP_` | `REACT_APP_INSFORGE_URL` |
| Astro | `PUBLIC_` | `PUBLIC_INSFORGE_URL` |
| SvelteKit | `PUBLIC_` | `PUBLIC_INSFORGE_URL` |
**Pre-deploy checklist:**
- [ ] `npm run build` succeeds locally
- [ ] All required env vars configured with correct framework prefix
- [ ] Edge function directories excluded from frontend build (if applicable)
- [ ] Never include `node_modules`, `.git`, `.env`, `.insforge`, or build output in the zip
- [ ] Build output directory matches framework's expected output (`dist/`, `build/`, `.next/`, etc.)
**按框架区分的环境变量前缀**:
| 框架 | 前缀 | 示例 |
|-----------|--------|---------|
| Vite | `VITE_` | `VITE_INSFORGE_URL` |
| Next.js | `NEXT_PUBLIC_` | `NEXT_PUBLIC_INSFORGE_URL` |
| Create React App | `REACT_APP_` | `REACT_APP_INSFORGE_URL` |
| Astro | `PUBLIC_` | `PUBLIC_INSFORGE_URL` |
| SvelteKit | `PUBLIC_` | `PUBLIC_INSFORGE_URL` |
**部署前检查清单**:
- [ ] `npm run build`在本地执行成功
- [ ] 所有必需的环境变量已配置正确的框架前缀
- [ ] 边缘函数目录已从前端构建中排除(如适用)
- [ ] 切勿将`node_modules`、`.git`、`.env`、`.insforge`或构建输出包含在压缩包中
- [ ] 构建输出目录与框架预期的输出目录匹配(`dist/`、`build/`、`.next/`等)npx @insforge/cli db export --output backup.sql
npx @insforge/cli db import backup.sqlnpx @insforge/cli db export --output backup.sql
npx @insforge/cli db import backup.sqlundefinedundefinedundefinedundefined┌─────────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌─────────── day of month (1-31)
│ │ │ ┌───────── month (1-12)
│ │ │ │ ┌─────── day of week (0-6, Sunday=0)
│ │ │ │ │
* * * * *| Expression | Description |
|---|---|
| Every minute |
| Every 5 minutes |
| Every hour (at minute 0) |
| Daily at 9:00 AM |
| Every Monday at 9:00 AM |
| First day of every month at midnight |
| Weekdays at 2:30 PM |
┌─────────────── 分钟 (0-59)
│ ┌───────────── 小时 (0-23)
│ │ ┌─────────── 日期 (1-31)
│ │ │ ┌───────── 月份 (1-12)
│ │ │ │ ┌─────── 星期 (0-6,周日=0)
│ │ │ │ │
* * * * *| 表达式 | 描述 |
|---|---|
| 每分钟 |
| 每5分钟 |
| 每小时(整点) |
| 每天上午9点 |
| 每周一上午9点 |
| 每月1日午夜 |
| 工作日下午2点30分 |
${{secrets.KEY_NAME}}{
"headers": {
"Authorization": "Bearer ${{secrets.API_TOKEN}}",
"X-API-Key": "${{secrets.EXTERNAL_API_KEY}}"
}
}${{secrets.KEY_NAME}}{
"headers": {
"Authorization": "Bearer ${{secrets.API_TOKEN}}",
"X-API-Key": "${{secrets.EXTERNAL_API_KEY}}"
}
}*/5 * * * *${{secrets.KEY_NAME}}https://your-project.region.insforge.app/functions/{slug}status: "active"*/5 * * * *${{secrets.KEY_NAME}}https://your-project.region.insforge.app/functions/{slug}active| Mistake | Solution |
|---|---|
| Using 6-field cron (with seconds) | Use 5-field format only: |
| Referencing non-existent secret | Create the secret first via secrets API |
| Targeting non-existent function | Verify function exists and is |
| Schedule not running | Check |
| 错误 | 解决方案 |
|---|---|
| 使用6字段cron(包含秒) | 仅使用5字段格式: |
| 引用不存在的密钥 | 先通过密钥API创建密钥 |
| 目标函数不存在 | 在设置定时任务前验证函数是否存在且状态为 |
| 定时任务未运行 | 检查 |
1. Create secrets if needed -> `npx @insforge/cli secrets add KEY VALUE`
2. Create/verify target function -> `npx @insforge/cli functions list`
3. Create schedule -> `npx @insforge/cli schedules create`
4. Verify schedule is active -> `npx @insforge/cli schedules get <id>`
5. Monitor execution logs -> `npx @insforge/cli schedules logs <id>`1. 若需要则创建密钥 -> `npx @insforge/cli secrets add KEY VALUE`
2. 创建/验证目标函数 -> `npx @insforge/cli functions list`
3. 创建定时任务 -> `npx @insforge/cli schedules create`
4. 验证定时任务是否活跃 -> `npx @insforge/cli schedules get <id>`
5. 监控执行日志 -> `npx @insforge/cli schedules logs <id>`undefinedundefinedundefinedundefinednpx @insforge/cli logs function.logs # function execution issues
npx @insforge/cli logs postgres.logs # database query problems
npx @insforge/cli logs insforge.logs # API / auth errors
npx @insforge/cli logs postgrest.logs --limit 50npx @insforge/cli logs function.logs # 函数执行问题
npx @insforge/cli logs postgres.logs # 数据库查询问题
npx @insforge/cli logs insforge.logs # API / 认证错误
npx @insforge/cli logs postgrest.logs --limit 50| Problem | Check |
|---|---|
| Function not working | |
| Database query failing | |
| Auth issues | |
| API returning 500 errors | |
| General health / performance | |
| Database bloat / slow queries | |
| Security / config issues | |
| 问题 | 检查项 |
|---|---|
| 函数无法正常工作 | |
| 数据库查询失败 | |
| 认证问题 | |
| API返回500错误 | |
| 整体健康 / 性能问题 | |
| 数据库膨胀 / 慢查询 | |
| 安全 / 配置问题 | |
INSFORGE_EMAIL=$EMAIL INSFORGE_PASSWORD=$PASSWORD npx @insforge/cli login --email -y
npx @insforge/cli link --project-id $PROJECT_ID --org-id $ORG_ID -y
npx @insforge/cli db query "SELECT count(*) FROM users" --jsonINSFORGE_EMAIL=$EMAIL INSFORGE_PASSWORD=$PASSWORD npx @insforge/cli login --email -y
npx @insforge/cli link --project-id $PROJECT_ID --org-id $ORG_ID -y
npx @insforge/cli db query "SELECT count(*) FROM users" --jsoncreatelink.insforge/project.json{
"project_id": "...",
"appkey": "...",
"region": "us-east",
"api_key": "ik_...",
"oss_host": "https://{appkey}.{region}.insforge.app"
}oss_hostapi_keyNever commit this file to version control or share it publicly. Do not edit this file manually. Useto switch projects.npx @insforge/cli link
createlink.insforge/project.json{
"project_id": "...",
"appkey": "...",
"region": "us-east",
"api_key": "ik_...",
"oss_host": "https://{appkey}.{region}.insforge.app"
}oss_hostapi_key切勿将此文件提交到版本控制系统或公开分享。 请勿手动编辑此文件。使用切换项目。npx @insforge/cli link