From 8d0b48f89a47b6e643797f1d11fead287c491120 Mon Sep 17 00:00:00 2001 From: di-aholme Date: Thu, 30 Jan 2025 14:29:18 +0000 Subject: [PATCH] [DFC-711]: Remove UA code --- .env.sample | 3 - deploy/template.yaml | 27 ---- package.json | 6 +- src/assets/javascript/application.js | 46 ------ src/assets/javascript/cookies.js | 154 -------------------- src/assets/javascript/tests/cookies.test.js | 30 ---- src/components/common/layout/base.njk | 4 +- src/config.ts | 8 - src/middleware/set-local-vars-middleware.ts | 4 - 9 files changed, 3 insertions(+), 279 deletions(-) delete mode 100644 src/assets/javascript/application.js delete mode 100644 src/assets/javascript/cookies.js delete mode 100644 src/assets/javascript/tests/cookies.test.js diff --git a/.env.sample b/.env.sample index 0edddcac1..6fe6318a8 100644 --- a/.env.sample +++ b/.env.sample @@ -40,10 +40,7 @@ VERIFY_ACCESS_VALUE= # subjectId returned from oidc stub MY_ONE_LOGIN_USER_ID=user_id METHOD_MANAGEMENT_BASE_URL=https://method-management-v1-stub.home.dev.account.gov.uk -UNIVERSAL_ANALYTICS_GTM_CONTAINER_ID="GTM-TK92W68" -GOOGLE_ANALYTICS_4_GTM_CONTAINER_ID="GTM-KD86CMZ" GA4_ENABLED="true" -UA_ENABLED="true" SELECT_TRACKING_ENABLED="true" SUPPORT_ADD_BACKUP_MFA="1" SUPPORT_METHOD_MANAGEMENT=1 diff --git a/deploy/template.yaml b/deploy/template.yaml index ce0ca6837..fe5012a4b 100644 --- a/deploy/template.yaml +++ b/deploy/template.yaml @@ -183,10 +183,8 @@ Mappings: dynatraceSecretArn: arn:aws:secretsmanager:eu-west-2:216552277552:secret:DynatraceNonProductionVariables METHODMANAGEMENTBASEURL: "https://method-management-v1-stub.home.dev.account.gov.uk" SUPPORTMETHODMANAGEMENT: "1" - UNIVERSALANALYTICSGTMCONTAINERID: "GTM-TK92W68" GOOGLEANALYTICS4GTMCONTAINERID: "GTM-KD86CMZ" GA4ENABLED: "true" - UAENABLED: "true" SELECTTRACKINGENABLED: "true" SUPPORTADDBACKUPMFA: "1" SUPPORTCHANGEMFA: "1" @@ -223,10 +221,8 @@ Mappings: SUPPORTCHANGEMFA: "0" dynatraceSecretArn: arn:aws:secretsmanager:eu-west-2:216552277552:secret:DynatraceNonProductionVariables ACCESSIBILITYSTATEMENTURL: "https://signin.account.gov.uk/accessibility-statement" - UNIVERSALANALYTICSGTMCONTAINERID: "GTM-TK92W68" GOOGLEANALYTICS4GTMCONTAINERID: "GTM-KD86CMZ" GA4ENABLED: "true" - UAENABLED: "true" SELECTTRACKINGENABLED: "true" LANGUAGETOGGLE: "1" DTRUMURL: "" @@ -259,10 +255,8 @@ Mappings: SUPPORTADDBACKUPMFA: "0" SUPPORTCHANGEMFA: "0" dynatraceSecretArn: arn:aws:secretsmanager:eu-west-2:216552277552:secret:DynatraceNonProductionVariables - UNIVERSALANALYTICSGTMCONTAINERID: "GTM-TK92W68" GOOGLEANALYTICS4GTMCONTAINERID: "GTM-KD86CMZ" GA4ENABLED: "true" - UAENABLED: "true" SELECTTRACKINGENABLED: "true" ACCESSIBILITYSTATEMENTURL: "https://signin.account.gov.uk/accessibility-statement" LANGUAGETOGGLE: "1" @@ -296,10 +290,8 @@ Mappings: SUPPORTCHANGEMFA: "0" CONTACTEMAILSERVICEURL: "https://signin.integration.account.gov.uk/contact-us-from-triage-page" dynatraceSecretArn: arn:aws:secretsmanager:eu-west-2:216552277552:secret:DynatraceNonProductionVariables - UNIVERSALANALYTICSGTMCONTAINERID: "TBD" GOOGLEANALYTICS4GTMCONTAINERID: "TBD" GA4ENABLED: "false" - UAENABLED: "false" SELECTTRACKINGENABLED: "false" ACCESSIBILITYSTATEMENTURL: "https://signin.account.gov.uk/accessibility-statement" LANGUAGETOGGLE: "1" @@ -333,10 +325,8 @@ Mappings: SUPPORTADDBACKUPMFA: "0" CONTACTEMAILSERVICEURL: "https://signin.account.gov.uk/contact-us-from-triage-page" dynatraceSecretArn: arn:aws:secretsmanager:eu-west-2:216552277552:secret:DynatraceProductionVariables - UNIVERSALANALYTICSGTMCONTAINERID: "GTM-TT5HDKV" GOOGLEANALYTICS4GTMCONTAINERID: "GTM-K4PBJH3" GA4ENABLED: "true" - UAENABLED: "true" SELECTTRACKINGENABLED: "false" ACCESSIBILITYSTATEMENTURL: "https://signin.account.gov.uk/accessibility-statement" LANGUAGETOGGLE: "1" @@ -858,26 +848,9 @@ Resources: Value: !Ref Environment - Name: "VERIFY_ACCESS_VALUE" Value: !Sub "{{resolve:secretsmanager:/${BackendStackName}/Config/Storage/VerificationSecret}}" - - Name: "UNIVERSAL_ANALYTICS_GTM_CONTAINER_ID" - Value: - !FindInMap [ - EnvironmentVariables, - !Ref Environment, - UNIVERSALANALYTICSGTMCONTAINERID, - ] - - Name: "GOOGLE_ANALYTICS_4_GTM_CONTAINER_ID" - Value: - !FindInMap [ - EnvironmentVariables, - !Ref Environment, - GOOGLEANALYTICS4GTMCONTAINERID, - ] - Name: "GA4_ENABLED" Value: !FindInMap [EnvironmentVariables, !Ref Environment, GA4ENABLED] - - Name: "UA_ENABLED" - Value: - !FindInMap [EnvironmentVariables, !Ref Environment, UAENABLED] - Name: "SELECT_TRACKING_ENABLED" Value: !FindInMap [ diff --git a/package.json b/package.json index 045bc1af8..53c03585a 100644 --- a/package.json +++ b/package.json @@ -7,14 +7,13 @@ "scripts": { "bubbleprof": "NODE_ENV=production clinic bubbleprof --autocannon [ -c 10 -d 10 /healthcheck ] -- node -r dotenv/config dist/server.js && echo '\n\nRemember to clean up files in .clinic and node_trace.*.log\n'", "build-ts": "tsc", - "build": "npm run build-sass && npm run build-ts && npm run copy-assets && npm run build-js:analytics && npm run minfiy-build-js", + "build": "npm run build-sass && npm run build-ts && npm run copy-assets && npm run build-js:analytics", "build-dev": "npm run build-sass && npm run build-ts && npm run copy-assets", "build-sass": "rm -rf dist/public/style.css && sass --load-path=node_modules/govuk-frontend/dist/govuk --no-source-map src/assets/scss/application.scss dist/public/style.css --style compressed", "build-js:analytics": "cp node_modules/@govuk-one-login/frontend-analytics/lib/analytics.js dist/public/scripts", "clean": "rm -rf dist node_modules logs.json", "clean-modules": "rm -rf node_modules", - "concat-client-js": "mkdir -p dist/public/scripts && uglifyjs src/assets/javascript/cookies.js src/assets/javascript/application.js -o dist/public/scripts/application.js -b", - "copy-assets": "mkdir -p dist && npm run concat-client-js && copyfiles -u 1 src/**/*.njk dist/ src/locales/**/** dist/ src/config/*.txt dist/ && cp node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js dist/public/scripts", + "copy-assets": "mkdir -p dist/public/scripts && copyfiles -u 1 src/**/*.njk dist/ src/locales/**/** dist/ src/config/*.txt dist/ && cp node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js dist/public/scripts", "doctor": "NODE_ENV=production clinic doctor --autocannon [ -c 10 -d 10 /healthcheck ] -- node -r dotenv/config dist/server.js && echo '\n\nRemember to clean up files in .clinic and node_trace.*.log\n'", "deep-clean": "npm cache clear --force && npm cache clean --force && npm run clean && npm install && npm run build", "dev": "concurrently -k -p \"[{name}]\" -n \"Sass,TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm run watch-sass\" \"npm run watch-ts\" \"npm run watch-node\"", @@ -23,7 +22,6 @@ "flame": "NODE_ENV=production clinic flame --autocannon [ -c 10 -d 10 /healthcheck ] -- node -r dotenv/config dist/server.js && echo '\n\nRemember to clean up files in .clinic and node_trace.*.log\n'", "heap-profiler": "NODE_ENV=production clinic flame --autocannon [ / --method GET -d 120 ] -- node -r dotenv/config dist/server.js && echo '\n\nRemember to clean up files in .clinic and node_trace.*.log\n'", "lint": "eslint .", - "minfiy-build-js": "uglifyjs dist/public/scripts/application.js -o dist/public/scripts/application.js -c -m", "start": "node dist/server.js", "test:audit": "npm audit", "test:integration": "rm -rf test/coverage && NODE_ENV=test nyc mocha -r dotenv/config -P tsconfig.mocha.json \"src/**/*-integration.test.ts\"", diff --git a/src/assets/javascript/application.js b/src/assets/javascript/application.js deleted file mode 100644 index 55718ee5d..000000000 --- a/src/assets/javascript/application.js +++ /dev/null @@ -1,46 +0,0 @@ -window.DI = window.DI || {}; -window.DI.analyticsUa = window.DI.analyticsUa || {}; - -(function (w) { - "use strict"; - - var onIntNumberSelected = function ( - intPhoneNumberCheckbox, - phoneNumberInput - ) { - if (intPhoneNumberCheckbox.checked) { - phoneNumberInput.value = ""; - phoneNumberInput.disabled = true; - phoneNumberInput.classList.add("govuk-input--disabled"); - } else { - phoneNumberInput.disabled = false; - phoneNumberInput.classList.remove("govuk-input--disabled"); - } - }; - - function initChangePhoneNumber() { - var phoneNumberInput = document.querySelector("#phoneNumber"); - if (phoneNumberInput) { - var intPhoneNumberCheckbox = document.querySelector( - "#hasInternationalPhoneNumber" - ); - intPhoneNumberCheckbox.addEventListener("click", function (event) { - onIntNumberSelected(event.currentTarget, phoneNumberInput); - }); - window.addEventListener( - "load", - onIntNumberSelected(intPhoneNumberCheckbox, phoneNumberInput) - ); - } - } - initChangePhoneNumber(); - - function appInit() { - var cookies = window.GOVSignIn.Cookies(); - if (window.DI.analyticsGa4.cookie.hasConsentForAnalytics()) { - cookies.initAnalytics(); - } - } - - w.DI.analyticsUa.init = appInit; -})(window); diff --git a/src/assets/javascript/cookies.js b/src/assets/javascript/cookies.js deleted file mode 100644 index 559ed7d2e..000000000 --- a/src/assets/javascript/cookies.js +++ /dev/null @@ -1,154 +0,0 @@ -"use strict"; - -var cookies = function () { - function initAnalytics() { - window.DI.analyticsGa4.loadGtmScript(window.DI.analyticsGa4.uaContainerId); - initGtm(); - } - - function pushLanguageToDataLayer() { - var languageCode = - document.querySelector("html") && - document.querySelector("html").getAttribute("lang"); - - var languageNames = { - en: "english", - cy: "welsh", - }; - - if (languageCode && languageNames[languageCode]) { - window.dataLayer = window.dataLayer || []; - window.dataLayer.push({ - event: "langEvent", - language: languageNames[languageCode], - languagecode: languageCode, - }); - } - } - - function initGtm() { - window.dataLayer = [ - { - "gtm.allowlist": ["google"], - "gtm.blocklist": ["adm", "awct", "sp", "gclidw", "gcs", "opt"], - }, - { - department: { - programmeteam: "di", - productteam: "sso", - }, - }, - ]; - - function addSessionJourneyToDataLayer(url) { - const sessionJourney = getJourneyMapping(url); - - if (sessionJourney) { - window.dataLayer.push(sessionJourney); - } - } - - const url = window.location.search.includes("type") - ? window.location.pathname + window.location.search - : window.location.pathname; - - addSessionJourneyToDataLayer(url); - - function gtag(obj) { - dataLayer.push(obj); - } - - pushLanguageToDataLayer(); - gtag({ "gtm.start": new Date().getTime(), event: "gtm.js" }); - - var govAccountsLink = document.getElementById("gov-uk-accounts-link"); - - if (govAccountsLink) { - govAccountsLink.addEventListener("click", function () { - var tracker = ga.getAll()[0]; - var linker = new window.gaplugins.Linker(tracker); - var destinationLink = linker.decorate(govAccountsLink.href); - window.location.href = destinationLink; - }); - } - } - - function generateJourneySession(type, status) { - return { - sessionjourney: { - journey: "account management", - type: type, - status: status, - }, - }; - } - - function getJourneyMapping(url) { - const JOURNEY_DATA_LAYER_PATHS = { - "/manage-your-account": { - sessionjourney: { - journey: "account management", - }, - }, - "/enter-password?type=changeEmail&edit=true": generateJourneySession( - "change email", - "start" - ), - "/change-email": generateJourneySession("change email", "middle"), - "/check-your-email": generateJourneySession("change email", "middle"), - "/email-updated-confirmation": generateJourneySession( - "change email", - "end" - ), - "/enter-password?type=changePhoneNumber&edit=true": - generateJourneySession("change phone number", "start"), - "/change-phone-number": generateJourneySession( - "change phone number", - "middle" - ), - "/check-your-phone": generateJourneySession( - "change phone number", - "middle" - ), - "/phone-number-updated-confirmation": generateJourneySession( - "change phone number", - "end" - ), - "/enter-password?type=changePassword&edit=true": generateJourneySession( - "change password", - "start" - ), - "/change-password": generateJourneySession("change password", "middle"), - "/password-updated-confirmation": generateJourneySession( - "change password", - "end" - ), - "/enter-password?type=deleteAccount": generateJourneySession( - "delete account", - "start" - ), - "/delete-account": generateJourneySession("delete account", "middle"), - "/account-deleted-confirmation": generateJourneySession( - "delete account", - "end" - ), - "/change-authenticator-app": generateJourneySession( - "change authenticator app", - "middle" - ), - "/authenticator-app-updated-confirmation": generateJourneySession( - "change authenticator app", - "end" - ), - }; - - return JOURNEY_DATA_LAYER_PATHS[url]; - } - - return { - initAnalytics, - }; -}; - -window.GOVSignIn = window.GOVSignIn || {}; -window.GOVSignIn.Cookies = cookies; diff --git a/src/assets/javascript/tests/cookies.test.js b/src/assets/javascript/tests/cookies.test.js deleted file mode 100644 index 1d731b720..000000000 --- a/src/assets/javascript/tests/cookies.test.js +++ /dev/null @@ -1,30 +0,0 @@ -let chai = require("chai"); -let expect = chai.expect; -let mocha = require("mocha"); -let describe = mocha.describe; -const { JSDOM } = require("jsdom"); - -describe("Cookies function tests", () => { - beforeEach(async () => { - const dom = new JSDOM(""); - global.document = dom.window.document; - global.window = {}; - require("../cookies"); - }); - - afterEach(() => {}); - - it("can check user has given consent for analytics", () => { - // Arrange - const cookies = window.GOVSignIn.Cookies( - "trackingId", - "analyticsCookieDomain" - ); - - // Act - let result = cookies.hasConsentForAnalytics(); - - // Assert - expect(result).to.equal(false); - }); -}); diff --git a/src/components/common/layout/base.njk b/src/components/common/layout/base.njk index 68572d34d..27f0a26b8 100644 --- a/src/components/common/layout/base.njk +++ b/src/components/common/layout/base.njk @@ -152,11 +152,9 @@