___TERMS_OF_SERVICE___ By creating or modifying this file you agree to Google Tag Manager's Community Template Gallery Developer Terms of Service available at https://developers.google.com/tag-manager/gallery-tos (or such other URL as Google may provide), as modified from time to time. ___INFO___ { "type": "CLIENT", "id": "cvt_temp_public_id", "version": 1, "securityGroups": [], "__wm": "VGVtcGxhdGUtQXV0aG9yX1ByZWZsaWdodC1SZXF1ZXN0LVNpbW8tQWhhdmE\u003d", "categories": [ "UTILITY" ], "displayName": "Preflight Request", "brand": { "id": "brand_dummy", "displayName": "", "thumbnail": "data:image/png;base64,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" }, "description": "Use this Client to respond to preflight (OPTIONS) requests with the appropriate Access-Control-* headers. Must be published - will not work in Debug mode.", "containerContexts": [ "SERVER" ] } ___TEMPLATE_PARAMETERS___ [ { "type": "TEXT", "name": "approvedOrigin", "displayName": "Allowed request origin", "simpleValueType": true, "valueValidators": [ { "type": "NON_EMPTY" }, { "type": "REGEX", "args": [ "^(http(s)?://[^/]+|auto)$" ] } ], "help": "Enter the origin from where you want to approve requests.Set the value to \u003cstrong\u003eauto\u003c/strong\u003e in case you want to (attempt to) approve the request from any origin.", "defaultValue": "https://www.my.origin", "alwaysInSummary": true }, { "type": "TEXT", "name": "approvedMethods", "displayName": "Allowed request methods", "simpleValueType": true, "help": "Enter a comma-separated list of methods to approve the preflight request for, or set to * to approve all methods.", "defaultValue": "GET,POST", "valueValidators": [ { "type": "NON_EMPTY" } ], "alwaysInSummary": true }, { "type": "TEXT", "name": "approvedHeaders", "displayName": "Allowed request headers", "simpleValueType": true, "defaultValue": "content-type", "help": "Enter a comma-separated list of request headers to approve the preflight request for.", "valueValidators": [ { "type": "NON_EMPTY" }, { "type": "REGEX", "args": [ "^[^*]+$" ], "errorMessage": "Asterisk (*) is not a valid value here. You must list the headers your request includes." } ], "alwaysInSummary": true } ] ___SANDBOXED_JS_FOR_SERVER___ const claimRequest = require('claimRequest'); const getRequestHeader = require('getRequestHeader'); const getRequestMethod = require('getRequestMethod'); const returnResponse = require('returnResponse'); const setResponseHeader = require('setResponseHeader'); const setResponseStatus = require('setResponseStatus'); // If not a preflight request, return if (getRequestMethod() !== 'OPTIONS') return; claimRequest(); // If origins is wildcarded, set the header to the request's origin if (data.approvedOrigin === 'auto') { setResponseHeader('Access-Control-Allow-Origin', getRequestHeader('origin')); } else { // Otherwise add an access header for each listed origin setResponseHeader('Access-Control-Allow-Origin', data.approvedOrigin); } setResponseHeader('Access-Control-Allow-Methods', data.approvedMethods); setResponseHeader('Access-Control-Allow-Headers', data.approvedHeaders); // The XHR needs .withCredentials set to true for the request to show up in Debug mode setResponseHeader('Access-Control-Allow-Credentials', 'true'); setResponseStatus(200); returnResponse(); ___SERVER_PERMISSIONS___ [ { "instance": { "key": { "publicId": "read_request", "versionId": "1" }, "param": [ { "key": "headerWhitelist", "value": { "type": 2, "listItem": [ { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "origin" } ] }, { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "method" } ] } ] } }, { "key": "headersAllowed", "value": { "type": 8, "boolean": true } }, { "key": "requestAccess", "value": { "type": 1, "string": "specific" } }, { "key": "headerAccess", "value": { "type": 1, "string": "specific" } }, { "key": "queryParameterAccess", "value": { "type": 1, "string": "any" } } ] }, "clientAnnotations": { "isEditedByUser": true }, "isRequired": true }, { "instance": { "key": { "publicId": "access_response", "versionId": "1" }, "param": [ { "key": "writeResponseAccess", "value": { "type": 1, "string": "specific" } }, { "key": "writeHeaderAccess", "value": { "type": 1, "string": "specific" } }, { "key": "writeStatusAllowed", "value": { "type": 8, "boolean": true } }, { "key": "writeHeadersAllowed", "value": { "type": 8, "boolean": true } }, { "key": "writeHeaderWhitelist", "value": { "type": 2, "listItem": [ { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "access-control-allow-origin" } ] }, { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "access-control-allow-methods" } ] }, { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "access-control-allow-headers" } ] }, { "type": 3, "mapKey": [ { "type": 1, "string": "headerName" } ], "mapValue": [ { "type": 1, "string": "access-control-allow-credentials" } ] } ] } } ] }, "clientAnnotations": { "isEditedByUser": true }, "isRequired": true }, { "instance": { "key": { "publicId": "return_response", "versionId": "1" }, "param": [] }, "isRequired": true } ] ___TESTS___ scenarios: - name: Do not run if request is not OPTIONS code: | mock('getRequestMethod', () => 'POST'); // Call runCode to run the template's code. runCode(mockData); assertApi('claimRequest').wasNotCalled(); - name: Returns successful response with basic settings code: | // Call runCode to run the template's code. runCode(mockData); assertApi('claimRequest').wasCalled(); assertApi('setResponseHeader').wasCalledWith('Access-Control-Allow-Origin', 'https://www.domain.com'); assertApi('setResponseHeader').wasCalledWith('Access-Control-Allow-Methods', 'GET,POST'); assertApi('setResponseHeader').wasCalledWith('Access-Control-Allow-Headers', 'content-type'); assertApi('setResponseHeader').wasCalledWith('Access-Control-Allow-Credentials', 'true'); assertApi('setResponseStatus').wasCalledWith(200); assertApi('returnResponse').wasCalled(); - name: Return successful response with * origin code: |- mock('getRequestHeader', h => { if (h === 'origin') return 'https://www.otherdomain.com'; }); mockData.approvedOrigin = 'auto'; // Call runCode to run the template's code. runCode(mockData); assertApi('setResponseHeader').wasCalledWith('Access-Control-Allow-Origin', 'https://www.otherdomain.com'); setup: |- const mockData = { approvedOrigin: 'https://www.domain.com', approvedMethods: 'GET,POST', approvedHeaders: 'content-type' }; mock('getRequestMethod', () => 'OPTIONS'); ___NOTES___ Created on 02/09/2020, 14:42:43