Skip to content

Fastly Compute

A firewall integration enforces the signed policy bundle of your site in front of your origin: block, redirect, challenge and token-gated routes. It fetches the bundle from GET /v1/policies/<site key>, verifies its signature offline and decides every request the same way in every language. It does not replace verifying tokens in your own code. A request that reaches your origin another way (a direct IP, another hostname, a path the integration was not installed on) is never evaluated, so let only the integration reach the origin. See firewall policies.

The secret key (rgsk_...) is needed only for requireToken rules. Without it such a rule applies its onError setting.

A Compute (JavaScript) service. It needs two backends (revokegpt_api, the RevokeGPT API, and origin), a config store revokegpt_config (site_key, optionally api_base, initial_fail_mode) and a secret store revokegpt (secret_key, optionally sig_secret). Pinned bundle keys are baked into the wasm at build time. Compute has no native Ed25519, so the service ships a strict RFC 8032 implementation.

build.sh
pnpm --filter @revokegpt/firewall-fastly build # dist/index.js (esbuild) -> bin/main.wasm
cd sdks/integrations/fastly && ./node_modules/.bin/fastly compute serve --skip-build

Firewall rules match paths case-sensitively, so /ADMIN is not /admin. If your origin routes case-insensitively (IIS, a case-folding proxy or framework), /ADMIN can reach the /admin handler while a rule on /admin never sees it. Make the origin case-sensitive, or write a rule for each spelling it serves.