Feature Matrix
Turboflare is alpha. These are implemented features only, checked against Turboflare's Worker code and Turborepo's remote-cache client behavior.
Turbo Client Compatibility
| Feature |
Enabled by |
Notes |
| Custom cache API URL |
TURBO_API or Turbo remoteCache.apiUrl |
Use the Worker origin only. Do not append protocol paths. See Turbo Client Setup. |
| Remote cache enable flag |
Turbo remoteCache.enabled |
If false, Turbo will not call Turboflare. See Getting Started. |
| Preflight mode |
Turbo remoteCache.preflight |
Turboflare supports OPTIONS /v8/* with auth headers. See API Reference. |
| Signed cache mode |
Turbo remoteCache.signature + TURBO_REMOTE_CACHE_SIGNATURE_KEY |
Turbo signs uploads and verifies downloads. Turboflare stores the tag and can require it. |
| Team slug selector |
TURBO_TEAM / query slug |
Turbo sends team slug as slug. See Auth & Teams. |
| Team id selector |
TURBO_TEAMID / query teamId |
Turbo sends teamId when configured and it starts with team_. |
| Cache operation timeouts |
Turbo remoteCache.timeout, remoteCache.uploadTimeout |
Client-side behavior; Turboflare just needs to answer within those limits. |
Turbo Protocol
| Feature |
Enabled by |
Notes |
| Artifact status |
default |
GET /v8/artifacts/status returns cache status. |
| Artifact upload |
default |
PUT /v8/artifacts/:id, write scope required. |
| Artifact download |
default |
GET /v8/artifacts/:id, read scope required. |
| Metadata-only lookup |
default |
HEAD /v8/artifacts/:id returns metadata headers without body. |
| Batch lookup |
default |
POST /v8/artifacts accepts hashes. |
| Hit/miss events |
default |
POST /v8/artifacts/events; GET returns empty history for compatibility. |
| CORS/preflight |
default |
OPTIONS /v8/* returns Turbo-compatible preflight headers. |
| Turbo identity routes |
default |
/v2/user, /v2/teams, and /v2/teams/:id. |
See API Reference for exact route shapes.
Storage And Retention
| Feature |
Enabled by |
Notes |
| R2 artifact store |
ARTIFACTS binding |
Default source of truth. See Storage & Retention. |
| KV artifact store |
ARTIFACT_STORE=kv + ARTIFACTS_KV |
Small-artifact fallback; 25 MiB KV value cap. |
| Upload size cap |
MAX_ARTIFACT_BYTES |
Defaults to 500 MiB; no-length uploads are bounded. |
| Versioned object keys |
default |
Keys use v1/team/...; branch keys add /branch/.... |
| R2 lifecycle helper |
pnpm r2:lifecycle |
Applies bucket lifecycle rules through Cloudflare API. |
| Scheduled cleanup |
optional cron in wrangler.jsonc |
Deletes expired stored artifacts up to CLEANUP_MAX_DELETE. |
| Manual expired purge |
INTERNAL_ADMIN_TOKEN |
POST /internal/artifacts/purge-expired. |
Auth And Tenancy
| Feature |
Enabled by |
Notes |
| Single static token |
TURBO_TOKEN |
Smallest setup; bearer auth. See Auth & Teams. |
| Static token allowlist |
TURBO_TOKEN comma list |
Multiple accepted bearer tokens. |
| Scoped static tokens |
TURBO_TOKEN_SCOPES |
JSON rules for token id, teams, and read/write scopes. |
| D1 token database |
TOKEN_DB binding |
Hashed tokens, expiration, revocation, team/scope rules, audit rows. |
| Internal admin token |
INTERNAL_ADMIN_TOKEN |
Required for /internal/*; missing config fails closed. |
| Team selectors |
default |
Uses slug, teamId, team, or fallback global. |
| Team access checks |
scoped tokens/D1 tokens |
Resolved team must be allowed by token. |
Branches And Signatures
| Feature |
Enabled by |
Notes |
| Shared branch policy |
default |
Maximum reuse; no branch namespace. |
| Isolated branch policy |
BRANCH_CACHE_POLICY=isolated |
Separate branch namespaces. |
| Main fallback policy |
BRANCH_CACHE_POLICY=main-write-pr-read |
Branch reads can fall back to main. |
| Read-only PR policy |
BRANCH_CACHE_POLICY=read-only-pr |
Non-default branch writes are rejected. |
| Branch selectors |
branch policy enabled |
Supports ?branch=, x-turboflare-branch, and team@branch. |
| Signature metadata preserve |
SIGNATURE_POLICY=accept |
Stores Turbo signature tag when present. |
| Signature monitoring |
SIGNATURE_POLICY=monitor + ANALYTICS |
Emits metric when upload lacks signature tag. |
| Require signature tag |
SIGNATURE_POLICY=require |
Rejects uploads missing x-artifact-tag. |
See Branches & Signatures.
Ops And Protection
| Feature |
Enabled by |
Notes |
| Read-only mode |
READ_ONLY=true |
Rejects uploads while reads/status/events still work. |
| Cache API read fill |
CACHE_API_READS=true |
Optional read acceleration up to CACHE_API_MAX_BYTES. |
| Analytics Engine writes |
ANALYTICS binding |
Non-blocking datapoints for traffic, hits, misses, uploads, and events. |
| Metrics summary API |
analytics query vars |
GET /internal/metrics/summary supports 15m, 1h, 6h, 24h. |
| Rate limiting |
RATE_LIMITER binding |
Per-token or per-team/token guardrail. |
| Internal health |
INTERNAL_ADMIN_TOKEN |
GET /internal/health. |
| Team stats |
INTERNAL_ADMIN_TOKEN |
GET /internal/teams/:team/stats. |
| Team purge |
INTERNAL_ADMIN_TOKEN |
POST /internal/teams/:team/purge-all. |
| Token admin APIs |
INTERNAL_ADMIN_TOKEN + TOKEN_DB |
List, create, and revoke D1 tokens. |
| Artifact metadata index |
ARTIFACT_INDEX binding |
D1 rows for admin/search/reporting; not source of truth. |
See Operations.
Deployment And Testing
| Feature |
Enabled by |
Notes |
| Clone-free installer |
pnpm dlx create-turboflare |
Guided deploy, secret setup, smoke checks, optional Turbo verification. |
| Source-checkout setup |
pnpm setup |
Guided setup for contributors/custom deployments. |
| Root deploy helper |
pnpm deploy |
Creates configured R2 bucket if missing, then deploys Worker. |
| Deploy Button support |
root wrangler.jsonc |
Cloudflare Deploy Button can install/deploy from repo root. |
| Unit tests |
pnpm test |
Worker route/auth/storage behavior. |
| Real Turbo integration tests |
pnpm test:integration |
Stock Turbo fixture verifies remote cache restore. |
| Pruned workspace smoke |
pnpm prune:smoke |
Remote cache behavior inside pruned fixture workspace. |
| Agentic setup guide |
docs page + setup skill |
Safe prompt/checklist for coding agents. See Agentic Setup. |
Not Included
| Item |
Status |
turbo login token minting |
Not implemented; configure TURBO_TOKEN manually or through the installer. |
| Vercel account/team management |
Not implemented; /v2/* routes return compatibility metadata only. |
Missing something? Open a feature request or DM @wishee0.