diff --git a/gulpfile.js b/gulpfile.js index 98db0688e2..f7858a8161 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -157,110 +157,11 @@ var runSequence = require('run-sequence'); var AWS_ACCESS_KEY_ID = process.env.QM_AWS_ACCESS_KEY_ID || process.env.AWS_ACCESS_KEY_ID; // Netlify has their own var AWS_SECRET_ACCESS_KEY = process.env.QM_AWS_SECRET_ACCESS_KEY || process.env.AWS_SECRET_ACCESS_KEY; // Netlify has their own var s3Options = {accessKeyId: AWS_ACCESS_KEY_ID, secretAccessKey: AWS_SECRET_ACCESS_KEY}; -var qmLog = { - error: function (message, metaData, maxCharacters) { - metaData = qmLog.addMetaData(metaData); - console.error(qmLog.obfuscateStringify(message, metaData, maxCharacters)); - metaData.build_info = qmGulp.buildInfoHelper.getCurrentBuildInfo(); - bugsnag.notify(new Error(qmLog.obfuscateStringify(message), qmLog.obfuscateSecrets(metaData))); - }, - info: function (message, object, maxCharacters) { - if(typeof message !== "string"){ - object = message; - message = null; - } - console.log(qmLog.obfuscateStringify(message, object, maxCharacters)); - }, - debug: function (message, object, maxCharacters) { - if(isTruthy(process.env.BUILD_DEBUG || process.env.DEBUG_BUILD)){ - qmLog.info("DEBUG: " + message, object, maxCharacters); - } - }, - logErrorAndThrowException: function (message, object) { - qmLog.error(message, object); - throw message; - }, - addMetaData: function(metaData){ - metaData = metaData || {}; - metaData.environment = qmLog.obfuscateSecrets(process.env); - metaData.subsystem = { name: qmLog.getCurrentServerContext() }; - metaData.client_id = QUANTIMODO_CLIENT_ID; - metaData.build_link = qmGulp.buildInfoHelper.getBuildLink(); - return metaData; - }, - obfuscateStringify: function(message, object, maxCharacters) { - if(maxCharacters !== false){maxCharacters = maxCharacters || 140;} - var objectString = ''; - if(object){ - object = qmLog.obfuscateSecrets(object); - objectString = ': ' + qmLog.prettyJSONStringify(object); - } - if (maxCharacters !== false && objectString.length > maxCharacters) {objectString = objectString.substring(0, maxCharacters) + '...';} - message += objectString; - if(process.env.QUANTIMODO_CLIENT_SECRET){message = message.replace(process.env.QUANTIMODO_CLIENT_SECRET, 'HIDDEN');} - if(AWS_SECRET_ACCESS_KEY){message = message.replace(AWS_SECRET_ACCESS_KEY, 'HIDDEN');} - if(process.env.ENCRYPTION_SECRET){message = message.replace(process.env.ENCRYPTION_SECRET, 'HIDDEN');} - if(process.env.QUANTIMODO_ACCESS_TOKEN){message = message.replace(process.env.QUANTIMODO_ACCESS_TOKEN, 'HIDDEN');} - message = qmLog.obfuscateString(message); - return message; - }, - isSecretWord: function(propertyName){ - var lowerCaseProperty = propertyName.toLowerCase(); - return lowerCaseProperty.indexOf('secret') !== -1 || - lowerCaseProperty.indexOf('password') !== -1 || - lowerCaseProperty.indexOf('key') !== -1 || - lowerCaseProperty.indexOf('database') !== -1 || - lowerCaseProperty.indexOf('token') !== -1; - }, - obfuscateString: function(string){ - var env = process.env; - for (var propertyName in env) { - if (env.hasOwnProperty(propertyName)) { - if(qmLog.isSecretWord(propertyName)){ - string = string.replace(env[propertyName], '[SECURE]'); - } - } - } - return string; - }, - obfuscateSecrets: function(object){ - if(typeof object !== 'object'){return object;} - object = JSON.parse(JSON.stringify(object)); // Decouple so we don't screw up original object - for (var propertyName in object) { - if (object.hasOwnProperty(propertyName)) { - if(qmLog.isSecretWord(propertyName)){ - object[propertyName] = "[SECURE]"; - } else { - object[propertyName] = qmLog.obfuscateSecrets(object[propertyName]); - } - } - } - return object; - }, - getCurrentServerContext: function() { - if(process.env.CIRCLE_BRANCH){return "circleci";} - if(process.env.BUDDYBUILD_BRANCH){return "buddybuild";} - return process.env.HOSTNAME; - }, - prettyJSONStringify: function(object) {return JSON.stringify(object, null, '\t');}, - slugify: function(str){ - str = str.replace(/^\s+|\s+$/g, ''); // trim - str = str.toLowerCase(); - // remove accents, swap ñ for n, etc - var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;"; - var to = "aaaaeeeeiiiioooouuuunc------"; - for (var i=0, l=from.length ; i