浏览全部文档 · 34/37

功能简介

AppBase 内置 CORS、Origin 校验、HTTP/GraphQL/Realtime 限流和 Project API 服务开关。DNS、证书、反向代理、防火墙、跨网络连通和上游 Provider 出口仍由部署环境负责;这些外部责任不能包装成平台已提供的专线或零信任产品。

当前支持范围

  • 网络访问控制(PARTIAL):内置 CORS、Origin 校验、HTTP 与 Realtime 限流、Project API 开关;DNS、证书、代理和跨网络连通性仍由部署环境负责。

适用场景

  • 排查浏览器 CORS 与 WebSocket Origin 问题。
  • 按 Project 关闭未使用 API。
  • 为公网入口设计限流、代理与证书责任边界。

前置条件

  • 已为 Web 应用配置 Platform/Origin。
  • 反向代理正确转发 HTTP 与 WebSocket。
  • 明确 Project header、Host、TLS 与外部 DNS 的管理方。

Console 操作路径

Console → Project → Settings/Platforms 配置 Web Hostname 与服务开关。实例级 DNS、证书、Proxy、防火墙和网络出口通常不在 Project Console 内完成。

SDK 示例

SDK · TypeScript
import { Client } from 'appbase-web-sdk';

const client = new Client()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>');
// 浏览器 endpoint、当前页面 Origin 与 Console 中登记的 Web Platform 必须一致。
await fetch(`${client.config.endpoint}/account`, {
  credentials: 'include',
  headers: { 'X-Appwrite-Project': '<PROJECT_ID>' }
});

REST 示例

REST · Bash
curl -i 'https://<APPBASE_HOST>/v1/account' \
  -H 'Origin: https://<WEB_APP_HOST>' \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-JWT: <USER_JWT>'

权限模型

Origin/CORS 只决定浏览器是否允许访问,不授予业务权限。Project API 开关在认证前后按服务定义处理,Scope/Permission 仍必须通过;Realtime 还检查 WebSocket 连接与频道权限。

常见错误

现象处理建议
CORS blocked核对 Web Platform Hostname、scheme、port 与实际 Origin。
Realtime handshake failed检查 WebSocket 代理、Session、Origin、Project 和限流。
429减少请求/连接抖动并按限流退避。
502/503/证书错误排查 Proxy、DNS、TLS、上游服务和网络,不伪装为资源 404。

当前限制

  • 不包含已核验的专线、WAF、零信任或合规认证承诺。
  • DNS、证书、Proxy 与防火墙属于部署环境责任。
  • Sites 自定义域名 CRUD 未作为公开能力核验。

Appwrite 兼容说明

CORS、Origin、Project 服务开关与限流概念保持兼容;部署责任由 AppBase 边界页明确分离。

AppBase 增强说明

AppBase 把 Organization/Project 上下文与 HTTP、GraphQL、Realtime 限流结合,但不夸大外部网络产品能力。

发布状态和验证 Commit

origin/main 条件支持。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353;使用前必须同时满足本页“当前限制”。

权威来源文件列表

  • backend-candidate:app/controllers/shared/api/rate-limit.php
  • backend-candidate:app/realtime.php
  • backend-candidate:tests/e2e/General/HTTPTest.php
  • backend-candidate:tests/e2e/Services/RateLimitTest.php

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/advanced/network。上游页面不是 AppBase 实现证据。

继续阅读