Skip to content

Instantly share code, notes, and snippets.

@mbaersch
Last active March 20, 2021 11:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbaersch/e61ad370bbfd135173bad51ef52c6a94 to your computer and use it in GitHub Desktop.
Save mbaersch/e61ad370bbfd135173bad51ef52c6a94 to your computer and use it in GitHub Desktop.
sending debugging hits to your serverside GTM endpoint from the browser manually? make every request a glorious success. I bet you get the joke.
___INFO___
{
"type": "CLIENT",
"id": "cvt_temp_public_id",
"version": 1,
"securityGroups": [],
"displayName": "200 Qapla\u0027",
"brand": {
"id": "brand_dummy",
"displayName": "",
"thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCABAAEADAREAAhEBAxEB/8QAHAAAAgMBAAMAAAAAAAAAAAAAAAYEBQcDAQII/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAMGAQQFAgf/2gAMAwEAAhADEAAAAfqkAIXiWV6j984AAAFbU7NtNoWcuqAAHEyrlXO22eTom5wvIAcRdMqrn1Vi2uI09miuQALYeefjdb+1N2zX3nr0eym8zwMciqeUR0/fZPpE35xcqn1h6+jcOZJinxp5LFVHiW32+diHqyc6h0p/vF7buZwn152ZRmKdDsAH/8QAIhAAAgICAgEFAQAAAAAAAAAAAwQCBQEGABAREhMUFSAi/9oACAEBAAEFAu3TfGUhn1R/WzG9mnrSe8h+TGguParYbQNfvFx12M+cdmLEAklsvy2Rr5Vtp54z5iOaJru9/tU18iFy4rT1zWs1M15W8Yt0qBsspdbne44sqd0lEo9JOwmTJWTl+sUHEK3Ldz6+tptQJYcgoTXph2GuLhu9QJhWuYKASbIMj9fhpWDkOiKhNwYYCx3/AP/EACwRAAECAwYFAwUAAAAAAAAAAAMBAgAEBRESEyAhMQYQIiNBMlFhFDBCUnH/2gAIAQMBAT8B5iZiPRnvDksWzPRxYs6xIm2YZ3t+Vz8NAvFcZfEVoOFOO+c9DBgyaKu66xxKD0GT+Zln5dhUErtYpc8GbCiD0VPEVuoMOn0gdYVqtWxclWqSj7At/MCEU7uhLVilPnZdthdIk2su3k3ialsTqbvCoqb8po2AFxPaJOkPP3pnzAQDA24NOTHuYtrYZP8A7JBDgL6kh138YINCpY77H//EACkRAAEDAgQFBAMAAAAAAAAAAAEAAgMEEQUSICEQEyMxQQYUIjAyYbH/2gAIAQIBAT8B4uOUXQ11LssRUZuwHXXvsAxUrs0WurfnlVA/uzVcKoidG7dQNFOOfKbBQyNnaJGHY6HO8Bd1luPksdnqTLy3izPCwbFva9Cb8f4mvbIMzTtwOyDb7q1uE9PFUsySi4U3pppN4pFSYZiVGenILKLm26pF/wBfT//EADQQAAIBAgMDCQYHAAAAAAAAAAECAwARBBIiICExEBMUQVFSYWJxMkJDgZGhBRUjNHLR4f/aAAgBAQAGPwLlml7ik0D27c/m01h37YxtF5HCIOJY1FDEHtmzZmUgGoYp2MZXTnZdP1q44bDyOcqKLk0uMxa7zvihPCMf3Uvdj0CsRhZAGVhmsfvUaqT+XzNlsfgt1fI7EUPVNOkZ9L76XCGcCVt3gKbndQY3EnbQx0x5pANK96sVbgYyw+VQSni6BvtyjBQ+2rBmce6ayQxtK/lFCD8UhR0XehY3NZWGVBwrE4eMXaRcq+F6ijQ3VFCjkxE/Wi7vWuk49mRX1ZPeb1pjhYTiMC29o19tD4dtfuo4z3ZDlI+tc3GemydUeH1H/KzzBYXPw73sPWtLratdr+FKkgugYNbtty/qRI/8lvVkRUHlGx//xAAlEAEAAQMEAQUAAwAAAAAAAAABEQAhMUFRYYEgEHGRocHR4fH/2gAIAQEAAT8h9f8AEFKh/AHzsbID2/xNcrX68rs7YQKmcMoULETnNMl9Kh3saZhNaAkFYTwHuk7QKlyfBpU376YKtFmDoz9zUTgicjp+KZIEWmXR8UaPh+ylcx2EUousLrsuChC/jY/vSV3JMh1eKmRc3ZEj0lZTndh9Zq5U64YDmpS9pJ81EEcWcYGtsQTDzTwTMjErF+KAAiDYI9IRiaz6H2lJDS9wvOym2jm9c7PGawqc97EKQSfAve5b3LQpDqDhh3Vas2TajmvhanAQachPcUW9GZR4KcGQA8P/2gAMAwEAAgADAAAAEJIrJJIfJJBaJIIlJJC0RJtOZCpAycZJJP/EACQRAAIBAgUFAQEAAAAAAAAAAAERADFRICFhcZEQQYGh4bHR/9oACAEDAQE/EOpB3cozsOPSIvgTQcHvGWhgQ3PyGP3849ei8xvnP0YhFH42JvMkwgHuyFRE6d5mxFtbwwrjA9PrWFhrEkxLRlmAQIOasVB2mdZ7GEIrovMGW8IsVS7/ACCaIHRqlCAVIOZX4/sza1rBykC+KQBZY//EACYRAQACAAQEBwEAAAAAAAAAAAEAESAhMWEQUXGxMEGBkaHB8NH/2gAIAQIBAT8Q42sqwcfWM36DHuJnK15ZY7Q5ZTuc1wulcUuhYpoB+v6ltgLMFEAdEyQLqbR08nd5wKpn0fzSGby4Kk1SHAdd6HRjilsn2fyeibbT2rtUJzjYQ+ViX4H/xAAkEAEAAQMDBAMBAQAAAAAAAAABEQAhMUFRYRAgcaGBkcGx8f/aAAgBAQABPxDrGsSPO6JQ3QF+Se9VKJ01jEoCSlbeYz3F26CG5WkwVA1FIxMq4RbNKGQJ0m1jAQho8CSiROOx8B1WMq/RT3EQ8u41K6tViFberJ4/20aN4bBtI2SGqCEOSdjcNkyEWewqzG2oCOErhahpQHET3HALtiSkATqZ2Xxdc/KCNEaAIg0usZWNM3qNSLhtkD5KtGlvKHt63/ULLk8bXSuljMwPWUrGcrQ5aUKTLSsSRjRmdGand4KP6/KbUvRsybCWNyksMnIiD66YxAMV2aEeQsa6SOLtnxUeGYkMEu6xmwcTikWmi3aksNQd3fU0TbOAFKJqnIcEDDMEVEHd1NfxFA+DIe2pigsSig4QUaxFCAFg6DQzC17Gj+1FfoOz/9k\u003d"
},
"description": "sending debugging hits to your serverside GTM endpoint from the browser manually? make every request a glorious success. I bet you get the joke.",
"containerContexts": [
"SERVER"
]
}
___TEMPLATE_PARAMETERS___
[
{
"type": "TEXT",
"name": "eventName",
"displayName": "Event Name",
"simpleValueType": true,
"defaultValue": "tlhIngan maH",
"help": "whatever you like"
}
]
___SANDBOXED_JS_FOR_SERVER___
/* responds to all requests for favicon.ico that occur
when debugging requests are sent manually from the
browser´s address bar and sends... guess what?
right: a (klingon empire emblem) favicon
*/
const claimRequest = require('claimRequest');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
const setResponseHeader = require('setResponseHeader');
const setResponseBody = require('setResponseBody');
const getRequestPath = require('getRequestPath');
const getContainerVersion = require('getContainerVersion');
const isDebug = getContainerVersion().debugMode;
//glorious icon
const favicon = "/9j/4AAQSkZJRgABAQEBLAEsAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCABAAEADAREAAhEBAxEB/8QAHAAAAgMBAAMAAAAAAAAAAAAAAAYEBQcDAQII/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAMGAQQFAgf/2gAMAwEAAhADEAAAAfqkAIXiWV6j984AAAFbU7NtNoWcuqAAHEyrlXO22eTom5wvIAcRdMqrn1Vi2uI09miuQALYeefjdb+1N2zX3nr0eym8zwMciqeUR0/fZPpE35xcqn1h6+jcOZJinxp5LFVHiW32+diHqyc6h0p/vF7buZwn152ZRmKdDsAH/8QAIhAAAgICAgEFAQAAAAAAAAAAAwQCBQEGABAREhMUFSAi/9oACAEBAAEFAu3TfGUhn1R/WzG9mnrSe8h+TGguParYbQNfvFx12M+cdmLEAklsvy2Rr5Vtp54z5iOaJru9/tU18iFy4rT1zWs1M15W8Yt0qBsspdbne44sqd0lEo9JOwmTJWTl+sUHEK3Ldz6+tptQJYcgoTXph2GuLhu9QJhWuYKASbIMj9fhpWDkOiKhNwYYCx3/AP/EACwRAAECAwYFAwUAAAAAAAAAAAMBAgAEBRESEyAhMQYQIiNBMlFhFDBCUnH/2gAIAQMBAT8B5iZiPRnvDksWzPRxYs6xIm2YZ3t+Vz8NAvFcZfEVoOFOO+c9DBgyaKu66xxKD0GT+Zln5dhUErtYpc8GbCiD0VPEVuoMOn0gdYVqtWxclWqSj7At/MCEU7uhLVilPnZdthdIk2su3k3ialsTqbvCoqb8po2AFxPaJOkPP3pnzAQDA24NOTHuYtrYZP8A7JBDgL6kh138YINCpY77H//EACkRAAEDAgQFBAMAAAAAAAAAAAEAAgMEEQUSICEQEyMxQQYUIjAyYbH/2gAIAQIBAT8B4uOUXQ11LssRUZuwHXXvsAxUrs0WurfnlVA/uzVcKoidG7dQNFOOfKbBQyNnaJGHY6HO8Bd1luPksdnqTLy3izPCwbFva9Cb8f4mvbIMzTtwOyDb7q1uE9PFUsySi4U3pppN4pFSYZiVGenILKLm26pF/wBfT//EADQQAAIBAgMDCQYHAAAAAAAAAAECAwARBBIiICExEBMUQVFSYWJxMkJDgZGhBRUjNHLR4f/aAAgBAQAGPwLlml7ik0D27c/m01h37YxtF5HCIOJY1FDEHtmzZmUgGoYp2MZXTnZdP1q44bDyOcqKLk0uMxa7zvihPCMf3Uvdj0CsRhZAGVhmsfvUaqT+XzNlsfgt1fI7EUPVNOkZ9L76XCGcCVt3gKbndQY3EnbQx0x5pANK96sVbgYyw+VQSni6BvtyjBQ+2rBmce6ayQxtK/lFCD8UhR0XehY3NZWGVBwrE4eMXaRcq+F6ijQ3VFCjkxE/Wi7vWuk49mRX1ZPeb1pjhYTiMC29o19tD4dtfuo4z3ZDlI+tc3GemydUeH1H/KzzBYXPw73sPWtLratdr+FKkgugYNbtty/qRI/8lvVkRUHlGx//xAAlEAEAAQMEAQUAAwAAAAAAAAABEQAhMUFRYYEgEHGRocHR4fH/2gAIAQEAAT8h9f8AEFKh/AHzsbID2/xNcrX68rs7YQKmcMoULETnNMl9Kh3saZhNaAkFYTwHuk7QKlyfBpU376YKtFmDoz9zUTgicjp+KZIEWmXR8UaPh+ylcx2EUousLrsuChC/jY/vSV3JMh1eKmRc3ZEj0lZTndh9Zq5U64YDmpS9pJ81EEcWcYGtsQTDzTwTMjErF+KAAiDYI9IRiaz6H2lJDS9wvOym2jm9c7PGawqc97EKQSfAve5b3LQpDqDhh3Vas2TajmvhanAQachPcUW9GZR4KcGQA8P/2gAMAwEAAgADAAAAEJIrJJIfJJBaJIIlJJC0RJtOZCpAycZJJP/EACQRAAIBAgUFAQEAAAAAAAAAAAERADFRICFhcZEQQYGh4bHR/9oACAEDAQE/EOpB3cozsOPSIvgTQcHvGWhgQ3PyGP3849ei8xvnP0YhFH42JvMkwgHuyFRE6d5mxFtbwwrjA9PrWFhrEkxLRlmAQIOasVB2mdZ7GEIrovMGW8IsVS7/ACCaIHRqlCAVIOZX4/sza1rBykC+KQBZY//EACYRAQACAAQEBwEAAAAAAAAAAAEAESAhMWEQUXGxMEGBkaHB8NH/2gAIAQIBAT8Q42sqwcfWM36DHuJnK15ZY7Q5ZTuc1wulcUuhYpoB+v6ltgLMFEAdEyQLqbR08nd5wKpn0fzSGby4Kk1SHAdd6HRjilsn2fyeibbT2rtUJzjYQ+ViX4H/xAAkEAEAAQMDBAMBAQAAAAAAAAABEQAhMUFRYRAgcaGBkcGx8f/aAAgBAQABPxDrGsSPO6JQ3QF+Se9VKJ01jEoCSlbeYz3F26CG5WkwVA1FIxMq4RbNKGQJ0m1jAQho8CSiROOx8B1WMq/RT3EQ8u41K6tViFberJ4/20aN4bBtI2SGqCEOSdjcNkyEWewqzG2oCOErhahpQHET3HALtiSkATqZ2Xxdc/KCNEaAIg0usZWNM3qNSLhtkD5KtGlvKHt63/ULLk8bXSuljMwPWUrGcrQ5aUKTLSsSRjRmdGand4KP6/KbUvRsybCWNyksMnIiD66YxAMV2aEeQsa6SOLtnxUeGYkMEu6xmwcTikWmi3aksNQd3fU0TbOAFKJqnIcEDDMEVEHd1NfxFA+DIe2pigsSig4QUaxFCAFg6DQzC17Gj+1FfoOz/9k\u003d";
if (isDebug === true && getRequestPath() === '/favicon.ico') {
claimRequest();
var event = {event_name: data.eventName};
runContainer(event, () => {
setResponseHeader('content-type', 'image/jpeg');
setResponseBody(favicon, 'base64');
returnResponse();
});
}
___SERVER_PERMISSIONS___
[
{
"instance": {
"key": {
"publicId": "read_request",
"versionId": "1"
},
"param": [
{
"key": "pathAllowed",
"value": {
"type": 8,
"boolean": true
}
},
{
"key": "requestAccess",
"value": {
"type": 1,
"string": "specific"
}
},
{
"key": "headerAccess",
"value": {
"type": 1,
"string": "any"
}
},
{
"key": "queryParameterAccess",
"value": {
"type": 1,
"string": "any"
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "return_response",
"versionId": "1"
},
"param": []
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "access_response",
"versionId": "1"
},
"param": [
{
"key": "writeResponseAccess",
"value": {
"type": 1,
"string": "any"
}
},
{
"key": "writeHeaderAccess",
"value": {
"type": 1,
"string": "specific"
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "run_container",
"versionId": "1"
},
"param": []
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "read_container_data",
"versionId": "1"
},
"param": []
},
"isRequired": true
}
]
___TESTS___
scenarios: []
___NOTES___
Created on 20.3.2021, 12:44:41
@mbaersch
Copy link
Author

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment