> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 固定 IP 代理转发方案

> 企业微信、飞书等平台对接中业务刚需固定出口 IP 时的方案（专用通道，域名白名单为封闭集合，仅覆盖平台接口域名）：官方 Supabase 走代理转发，自建 Supabase 直连。

<Warning>
  本方案是否适用，取决于目标服务如何识别调用方：

  * **按来源 IP 鉴权**（企业微信、飞书等平台的 IP 白名单机制）：业务上刚需固定出口 IP，这是本代理服务的唯一场景。代理的域名白名单是封闭集合，仅覆盖这类平台的接口域名；`403` 表示目标域名不在覆盖范围内，属设计行为。
  * **按请求内凭证鉴权**（API Key / Bearer Token，常见于检索、支付、短信等第三方服务）：目标服务不校验调用方 IP，不存在固定 IP 刚需，Edge Function 直接 `fetch` 目标域名即可，不要接入本代理。

  个别第三方确实强制要求调用方 IP 白名单（即真实存在固定 IP 刚需）、且项目为官方 Supabase 时，请与 superun 团队评估自建 Supabase（固定出口 IP）等方案。
</Warning>

平台（企业微信、飞书等）要求调用方 IP 在白名单内。superun Cloud 的 Supabase 分两类，按项目 `SUPABASE_URL` 域名判断：

| 类型 | 域名 | 出口 IP | 对接方式 |
| - | - | - | - |
| 官方 Supabase | `*.supabase.co` | 不固定 | 经 superun 代理转发 |
| 自建 Supabase | `*.db.superun.com` | 已固定 | 直连，无需代理 |

## 一、官方 Supabase：代理转发

出口 IP 不固定，平台 API 请求须经 superun 代理中转（透明转发，仅过滤 hop-by-hop 头与鉴权头）：

```
[GET|POST|PUT|DELETE|PATCH] https://gateway.superun.ai/proxy/forward?target_url={encodeURIComponent(目标URL)}
```

| 参数 | 位置 | 说明 |
| - | - | - |
| `target_url` | Query（必填） | 目标完整 URL，需 `encodeURIComponent` |
| `superun-cloud-api-key` | Header（必填） | 取自 `Deno.env.get("SUPERUN_CLOUD_API_KEY")` |

错误：`401` Key 无效；`403` 目标域名不在本方案覆盖的平台域名集合内（封闭集合，属设计行为）；`502` 无法连接目标。

Edge Function 中用 `proxyFetch` 替代 `fetch` 调用平台 API：

```typescript theme={null}
const PROXY_BASE = "https://gateway.superun.ai/proxy/forward";
const SUPERUN_API_KEY = Deno.env.get("SUPERUN_CLOUD_API_KEY")!;

function proxyFetch(targetUrl: string, init?: RequestInit) {
  const headers = new Headers(init?.headers);
  headers.set("superun-cloud-api-key", SUPERUN_API_KEY);
  return fetch(`${PROXY_BASE}?target_url=${encodeURIComponent(targetUrl)}`, {
    ...init,
    headers,
  });
}
```

**企业可信 IP**（代理出口，填入平台白名单）：

```
43.153.7.159
43.153.29.204
```

## 二、自建 Supabase：直连

出口 IP 已固定，Edge Function 直接请求平台 API，无需代理。

企业可信 IP 可能不止一个， **请勿写死**。

> **Agent 说明**：判断为自建 Supabase（`*.db.superun.com`）时，调用 tool 按 `SUPABASE_URL` 查询其固定 **出口 IP**，再告知用户（多个用分号分隔填入平台白名单）。勿猜测或写死。

<Card title="superun 网站" icon="globe" href="https://superun.com/web" horizontal>
  访问该网站以了解更多功能和示例.
</Card>
