Interface RequestInitCfProperties

In addition to the properties you can set in the RequestInit dict that you pass as an argument to the Request constructor, you can set certain properties of a cf object to control how Cloudflare features are applied to that new Request.

Note: Currently, these properties cannot be tested in the playground.

interface RequestInitCfProperties {
    apps?: boolean;
    cacheEverything?: boolean;
    cacheKey?: string;
    cacheTags?: string[];
    cacheTtl?: number;
    cacheTtlByStatus?: Record<string, number>;
    image?: RequestInitCfPropertiesImage;
    minify?: RequestInitCfPropertiesImageMinify;
    mirage?: boolean;
    polish?: "lossy" | "lossless" | "off";
    resolveOverride?: string;
    scrapeShield?: boolean;
}

Hierarchy

  • Record<string, unknown>
    • RequestInitCfProperties

Properties

apps?: boolean
cacheEverything?: boolean
cacheKey?: string

A request's cache key is what determines if two requests are "the same" for caching purposes. If a request has the same cache key as some previous request, then we can serve the same cached response for both. (e.g. 'some-key')

Only available for Enterprise customers.

cacheTags?: string[]

This allows you to append additional Cache-Tag response headers to the origin response without modifications to the origin server. This will allow for greater control over the Purge by Cache Tag feature utilizing changes only in the Workers process.

Only available for Enterprise customers.

cacheTtl?: number

Force response to be cached for a given number of seconds. (e.g. 300)

cacheTtlByStatus?: Record<string, number>

Force response to be cached for a given number of seconds based on the Origin status code. (e.g. { '200-299': 86400, '404': 1, '500-599': 0 })

mirage?: boolean
polish?: "lossy" | "lossless" | "off"
resolveOverride?: string

Redirects the request to an alternate origin server. You can use this, for example, to implement load balancing across several origins. (e.g.us-east.example.com)

Note - For security reasons, the hostname set in resolveOverride must be proxied on the same Cloudflare zone of the incoming request. Otherwise, the setting is ignored. CNAME hosts are allowed, so to resolve to a host under a different domain or a DNS only domain first declare a CNAME record within your own zone’s DNS mapping to the external hostname, set proxy on Cloudflare, then set resolveOverride to point to that CNAME record.

scrapeShield?: boolean