@ cloudhal/ cloudflare (英语)
云华 行政人员 (ADR-0012):工作室(静态资产),HTTP API,Better Auth on D1,MCP端点和一个源头的推/推端点,在部署的D1数据库和R2桶上. 每次出版/回滚后,就清除 工地工人边缘缓存通过 SITE 服务约束.
// worker.ts — generated by `cloudhal deploy`
import "@cloudhal/cloudflare/workerd-prelude"; // must stay first (zod init order, see the module)
import { createAdminWorker } from "@cloudhal/cloudflare/admin";
import skills from "./skills.ts";
export default createAdminWorker({ skills });
| 装订/ 秘密 | 目的 |
|---|---|
DB (D1级), BLOBS (R2级) | 站点图表、快照、认证、审计 |
ASSETS | 已建演播室 (not_found_handling: single-page-application, (中文(简体) ), run_worker_first 页:1 /api/*, (中文(简体) ), /mcp, (中文(简体) ), /.well-known/*(中文(简体) ) |
SITE (服务) | 站点工人,用于缓存清理 |
BETTER_AUTH_SECRET, (中文(简体) ), MCP_STATE_KEY | 会话; 签名的核准状态 |
CLOUDHAL_PREVIEW_SECRET, (中文(简体) ), CLOUDHAL_PURGE_TOKEN | 与现场工人共享 |
CLOUDHAL_DEPLOY_TOKEN | cloudhal push 编号 : pull |
CLOUDHAL_SIGNUP | first-user (默认——只有第一个账户,所有者可以注册),, closed 或者说 open |
工地工人本身是该项目的Astro建筑(Astro)@cloudhal/astro-renderer/cloudflare-entry) (中文(简体) ). 两者均由 @cloudhal/cli (单位:千美元)cloudhal deploy, (中文(简体) ), test/cloudflare*.test.ts (关于工人).
游乐场工人(RFC-0036)
@cloudhal/cloudflare/playground 管理一个公共游乐场:每个游客在自己的SQLite支持的可持久物体中获得一个一次性Cloudhal(PlaygroundSite),种子在第一次使用后被删除,在最后一次请求后一小时被删除(最多2小时),或者一次被重置.
// worker.ts in the deploying repo (e.g. cloudhal-dev/try)
import "@cloudhal/cloudflare/workerd-prelude";
import { handle } from "@astrojs/cloudflare/handler";
import { serveMedia, withRequestStore } from "@cloudhal/astro-renderer/runtime";
import { createPlaygroundWorker } from "@cloudhal/cloudflare/playground";
const playground = createPlaygroundWorker({
deployUrl: "https://cloudhal.dev/docs/deploy",
seed: async (store) => ({ siteId: (await seedDemo(store)).id }),
render: (request, { store, siteId, env, ctx }) =>
withRequestStore(store, siteId, async () =>
(await serveMedia(request, { siteId })) ?? (handle(request, env as never, ctx) as Promise<Response>)),
demoMedia: { prefix: "demo/", keys: DEMO_KEYS },
});
export const PlaygroundSite = playground.PlaygroundSite;
export default playground.worker;
| 装订/ 秘密 | 目的 |
|---|---|
PLAYGROUND (可支配对象, new_sqlite_classes: ["PlaygroundSite"](中文(简体) ) | 每个会话都有一个数据库和每日计数器 |
ASSETS (单位:千美元)run_worker_first: true(中文(简体) ) | 登陆页( u)/landing/), Studio at the root 有SPA倒置,站点资产,演示介质 |
PLAYGROUND_SECRET (≥32个字符) | 签名 __Host-cloudhal_try 会话 cookie; 没有它, 只能提供登陆页 |
PLAYGROUND_ENABLED | "false" 是杀人开关 |
PLAYGROUND_DAILY_SESSIONS | 协调世界时每天新开庭次数 |
SESSION_LIMIT, (中文(简体) ), WRITE_LIMIT (费率限额) | 每个IP新会话, 每个会话写 |
TURNSTILE_SECRET, (中文(简体) ), TURNSTILE_SITE_KEY | 只有在会话率限制击中后才要求 |
路线 : POST /_playground/session (饼干,那么) 303 /sites, (中文(简体) ), POST /_playground/reset, (中文(简体) ), /api/* (警卫员) isBlockedInPlayground, (中文(简体) ), /s/<session>/… (会议网站, private, no-store, (中文(简体) ), noindex, (中文(简体) ), /media/*测试在 test/playground-workerd.test.ts。 。 。 .