You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<divclass="tsd-comment tsd-typography"><p>Class for creating new <ahref="https://developer.fastly.com/reference/api/services/backend/">Fastly Backends</a>.</p>
20
+
<divclass="tsd-comment tsd-typography"><p>Class for dynamically creating new <ahref="https://developer.fastly.com/reference/api/services/backend/">Fastly Backends</a>.</p>
21
+
22
+
<h3>Note</h3><p>This feature is in disabled by default for Fastly Services. Please contact <ahref="https://support.fastly.com/hc/en-us/requests/new?ticket_form_id=360000269711">Fastly Support</a> to request the feature be enabled on the Fastly Services which require Dynamic Backends.</p>
23
+
<p>By default, Dynamic Backends are disabled within a JavaScript application as it can be a potential
24
+
avenue for third-party JavaScript code to send requests, potentially including sensitive/secret data,
25
+
off to destinations that the JavaScript project was not intending, which could be a security issue.</p>
26
+
<p>To enable Dynamic Backends the application will need to explicitly allow Dynamic Backends via:</p>
<h3>Example</h3><p>In this example an implicit Dynamic Backend is created when making the fetch request to <ahref="https://www.fastly.com/">https://www.fastly.com/</a> and the response is then returned to the client.</p>
32
+
<p>View this example on <ahref="https://fiddle.fastly.dev/fiddle/e5b6fa0e">Fiddle</a>.</p>
33
+
<pre><codeclass="language-js"><spanclass="hl-0">/// </span><spanclass="hl-1"><</span><spanclass="hl-2">reference</span><spanclass="hl-0"></span><spanclass="hl-3">types</span><spanclass="hl-4">=</span><spanclass="hl-5">"@fastly/js-compute"</span><spanclass="hl-0"></span><spanclass="hl-1">/></span><br/><spanclass="hl-10">import</span><spanclass="hl-4"> { </span><spanclass="hl-8">allowDynamicBackends</span><spanclass="hl-4"> } </span><spanclass="hl-10">from</span><spanclass="hl-4"></span><spanclass="hl-5">"fastly:experimental"</span><spanclass="hl-4">;</span><br/><spanclass="hl-7">allowDynamicBackends</span><spanclass="hl-4">(</span><spanclass="hl-6">true</span><spanclass="hl-4">);</span><br/><spanclass="hl-6">async</span><spanclass="hl-4"></span><spanclass="hl-6">function</span><spanclass="hl-4"></span><spanclass="hl-7">app</span><spanclass="hl-4">() {</span><br/><spanclass="hl-4"></span><spanclass="hl-0">// For any request, return the fastly homepage -- without defining a backend!</span><br/><spanclass="hl-4"></span><spanclass="hl-10">return</span><spanclass="hl-4"></span><spanclass="hl-7">fetch</span><spanclass="hl-4">(</span><spanclass="hl-5">'https://www.fastly.com/'</span><spanclass="hl-4">);</span><br/><spanclass="hl-4">}</span><br/><spanclass="hl-7">addEventListener</span><spanclass="hl-4">(</span><spanclass="hl-5">"fetch"</span><spanclass="hl-4">, </span><spanclass="hl-8">event</span><spanclass="hl-4"></span><spanclass="hl-6">=></span><spanclass="hl-4"></span><spanclass="hl-8">event</span><spanclass="hl-4">.</span><spanclass="hl-7">respondWith</span><spanclass="hl-4">(</span><spanclass="hl-7">app</span><spanclass="hl-4">(</span><spanclass="hl-8">event</span><spanclass="hl-4">)));</span>
34
+
</code></pre>
35
+
36
+
<h3>Example</h3><p>In this example an explicit Dynamic Backend is created and supplied to the fetch request, the response is then returned to the client.</p>
37
+
<p>View this example on <ahref="https://fiddle.fastly.dev/fiddle/e0c26a33">Fiddle</a>.</p>
38
+
<pre><codeclass="language-js"><spanclass="hl-0">/// </span><spanclass="hl-1"><</span><spanclass="hl-2">reference</span><spanclass="hl-0"></span><spanclass="hl-3">types</span><spanclass="hl-4">=</span><spanclass="hl-5">"@fastly/js-compute"</span><spanclass="hl-0"></span><spanclass="hl-1">/></span><br/><spanclass="hl-10">import</span><spanclass="hl-4"> { </span><spanclass="hl-8">allowDynamicBackends</span><spanclass="hl-4"> } </span><spanclass="hl-10">from</span><spanclass="hl-4"></span><spanclass="hl-5">"fastly:experimental"</span><spanclass="hl-4">;</span><br/><spanclass="hl-10">import</span><spanclass="hl-4"> { </span><spanclass="hl-8">Backend</span><spanclass="hl-4"> } </span><spanclass="hl-10">from</span><spanclass="hl-4"></span><spanclass="hl-5">"fastly:backend"</span><spanclass="hl-4">;</span><br/><spanclass="hl-7">allowDynamicBackends</span><spanclass="hl-4">(</span><spanclass="hl-6">true</span><spanclass="hl-4">);</span><br/><spanclass="hl-6">async</span><spanclass="hl-4"></span><spanclass="hl-6">function</span><spanclass="hl-4"></span><spanclass="hl-7">app</span><spanclass="hl-4">() {</span><br/><spanclass="hl-4"></span><spanclass="hl-0">// For any request, return the fastly homepage -- without defining a backend!</span><br/><spanclass="hl-4"></span><spanclass="hl-6">const</span><spanclass="hl-4"></span><spanclass="hl-9">backend</span><spanclass="hl-4"> = </span><spanclass="hl-6">new</span><spanclass="hl-4"></span><spanclass="hl-7">Backend</span><spanclass="hl-4">({</span><br/><spanclass="hl-4"></span><spanclass="hl-8">name:</span><spanclass="hl-4"></span><spanclass="hl-5">'fastly'</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">target:</span><spanclass="hl-4"></span><spanclass="hl-5">'fastly.com'</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">hostOverride:</span><spanclass="hl-4"></span><spanclass="hl-5">"www.fastly.com"</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">connectTimeout:</span><spanclass="hl-4"></span><spanclass="hl-12">1000</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">firstByteTimeout:</span><spanclass="hl-4"></span><spanclass="hl-12">15000</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">betweenBytesTimeout:</span><spanclass="hl-4"></span><spanclass="hl-12">10000</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">useSSL:</span><spanclass="hl-4"></span><spanclass="hl-6">true</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">sslMinVersion:</span><spanclass="hl-4"></span><spanclass="hl-12">1.3</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"></span><spanclass="hl-8">sslMaxVersion:</span><spanclass="hl-4"></span><spanclass="hl-12">1.3</span><spanclass="hl-4">,</span><br/><spanclass="hl-4"> });</span><br/><spanclass="hl-4"></span><spanclass="hl-10">return</span><spanclass="hl-4"></span><spanclass="hl-7">fetch</span><spanclass="hl-4">(</span><spanclass="hl-5">'https://www.fastly.com/'</span><spanclass="hl-4">, {</span><br/><spanclass="hl-4"></span><spanclass="hl-8">backend</span><spanclass="hl-4"></span><spanclass="hl-0">// Here we are configuring this request to use the backend from above.</span><br/><spanclass="hl-4"> });</span><br/><spanclass="hl-4">}</span><br/><spanclass="hl-7">addEventListener</span><spanclass="hl-4">(</span><spanclass="hl-5">"fetch"</span><spanclass="hl-4">, </span><spanclass="hl-8">event</span><spanclass="hl-4"></span><spanclass="hl-6">=></span><spanclass="hl-4"></span><spanclass="hl-8">event</span><spanclass="hl-4">.</span><spanclass="hl-7">respondWith</span><spanclass="hl-4">(</span><spanclass="hl-7">app</span><spanclass="hl-4">(</span><spanclass="hl-8">event</span><spanclass="hl-4">)));</span>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:backend.d.ts#L83">fastly:backend.d.ts:83</a></li></ul></aside>
46
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:backend.d.ts#L168">fastly:backend.d.ts:168</a></li></ul></aside>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:backend.d.ts#L87">fastly:backend.d.ts:87</a></li></ul></aside></li></ul></section></section>
80
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:backend.d.ts#L178">fastly:backend.d.ts:178</a></li></ul></aside></li></ul></section></section>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:backend.d.ts#L91">fastly:backend.d.ts:91</a></li></ul></aside></li></ul></section></section></div>
92
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:backend.d.ts#L182">fastly:backend.d.ts:182</a></li></ul></aside></li></ul></section></section></div>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:config-store.d.ts#L8">fastly:config-store.d.ts:8</a></li></ul></aside>
28
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:config-store.d.ts#L8">fastly:config-store.d.ts:8</a></li></ul></aside>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:config-store.d.ts#L12">fastly:config-store.d.ts:12</a></li></ul></aside></li></ul></section></section>
58
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:config-store.d.ts#L12">fastly:config-store.d.ts:12</a></li></ul></aside></li></ul></section></section>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:config-store.d.ts#L16">fastly:config-store.d.ts:16</a></li></ul></aside></li></ul></section></section></div>
75
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:config-store.d.ts#L16">fastly:config-store.d.ts:16</a></li></ul></aside></li></ul></section></section></div>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:dictionary.d.ts#L7">fastly:dictionary.d.ts:7</a></li></ul></aside>
28
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:dictionary.d.ts#L7">fastly:dictionary.d.ts:7</a></li></ul></aside>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:dictionary.d.ts#L11">fastly:dictionary.d.ts:11</a></li></ul></aside></li></ul></section></section>
58
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:dictionary.d.ts#L11">fastly:dictionary.d.ts:11</a></li></ul></aside></li></ul></section></section>
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/97553d6/types/fastly:dictionary.d.ts#L15">fastly:dictionary.d.ts:15</a></li></ul></aside></li></ul></section></section></div>
75
+
<li>Defined in <ahref="https://github.com/fastly/js-compute-runtime/blob/9a9d98e/types/fastly:dictionary.d.ts#L15">fastly:dictionary.d.ts:15</a></li></ul></aside></li></ul></section></section></div>
0 commit comments