@elliemae/pui-logrocket 1.1.22 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/docs/404.html +2 -2
- package/build/docs/api/functions/buildLogRocketQueryParams/index.html +2 -2
- package/build/docs/api/functions/hasUserConsentedToSessionRecording/index.html +2 -2
- package/build/docs/api/functions/initLogRocket/index.html +2 -2
- package/build/docs/api/index.html +2 -2
- package/build/docs/api/type-aliases/LROptions/index.html +2 -2
- package/build/docs/api/variables/LogRocket/index.html +2 -2
- package/build/docs/assets/js/e376fc56.ac379bd7.js +1 -0
- package/build/docs/assets/js/{main.8c79b174.js → main.42433d39.js} +2 -2
- package/build/docs/assets/js/{runtime~main.610299af.js → runtime~main.87356577.js} +1 -1
- package/build/docs/compliance/index.html +2 -2
- package/build/docs/index.html +2 -2
- package/build/docs/usage-guide/index.html +2 -2
- package/dist/cjs/logrocket.js +1 -8
- package/dist/esm/logrocket.js +1 -8
- package/dist/public/index.html +1 -1
- package/dist/public/js/{emuiLogrocket.ae5d2d6ed12138c19c6a.js → emuiLogrocket.7aa7603458ef1413487f.js} +18 -18
- package/dist/public/js/emuiLogrocket.7aa7603458ef1413487f.js.br +0 -0
- package/dist/public/js/emuiLogrocket.7aa7603458ef1413487f.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.7aa7603458ef1413487f.js.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/umd/index.js +17 -17
- package/dist/umd/index.js.br +0 -0
- package/dist/umd/index.js.gz +0 -0
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/build/docs/assets/js/e376fc56.26bfdc88.js +0 -1
- package/dist/public/js/emuiLogrocket.ae5d2d6ed12138c19c6a.js.br +0 -0
- package/dist/public/js/emuiLogrocket.ae5d2d6ed12138c19c6a.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.ae5d2d6ed12138c19c6a.js.map +0 -1
- /package/build/docs/assets/js/{main.8c79b174.js.LICENSE.txt → main.42433d39.js.LICENSE.txt} +0 -0
package/build/docs/404.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">LogRocket</title><meta data-rh="true" property="og:title" content="LogRocket"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/404.html"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/404.html" hreflang="x-default"><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">buildLogRocketQueryParams() | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/functions/buildLogRocketQueryParams"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="buildLogRocketQueryParams() | LogRocket"><meta data-rh="true" name="description" content="Builds a URL query string containing LogRocket-related parameters."><meta data-rh="true" property="og:description" content="Builds a URL query string containing LogRocket-related parameters."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/functions/buildLogRocketQueryParams"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/buildLogRocketQueryParams" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/buildLogRocketQueryParams" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"},{"@type":"ListItem","position":2,"name":"buildLogRocketQueryParams()","item":"https://pui.ice.com/logrocket/api/functions/buildLogRocketQueryParams"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">hasUserConsentedToSessionRecording() | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/functions/hasUserConsentedToSessionRecording"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="hasUserConsentedToSessionRecording() | LogRocket"><meta data-rh="true" name="description" content="Determines whether the user has consented to session recording based on OneTrust configuration and other signals."><meta data-rh="true" property="og:description" content="Determines whether the user has consented to session recording based on OneTrust configuration and other signals."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/functions/hasUserConsentedToSessionRecording"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/hasUserConsentedToSessionRecording" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/hasUserConsentedToSessionRecording" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"},{"@type":"ListItem","position":2,"name":"hasUserConsentedToSessionRecording()","item":"https://pui.ice.com/logrocket/api/functions/hasUserConsentedToSessionRecording"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">initLogRocket() | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/functions/initLogRocket"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="initLogRocket() | LogRocket"><meta data-rh="true" name="description" content="Initialize LogRocket with optional OneTrust integration"><meta data-rh="true" property="og:description" content="Initialize LogRocket with optional OneTrust integration"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/functions/initLogRocket"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/initLogRocket" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/functions/initLogRocket" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"},{"@type":"ListItem","position":2,"name":"initLogRocket()","item":"https://pui.ice.com/logrocket/api/functions/initLogRocket"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">LogRocket API | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="LogRocket API | LogRocket"><meta data-rh="true" name="description" content="Functions"><meta data-rh="true" property="og:description" content="Functions"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">LROptions | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/type-aliases/LROptions"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="LROptions | LogRocket"><meta data-rh="true" name="description" content="LogRocket initialization options"><meta data-rh="true" property="og:description" content="LogRocket initialization options"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/type-aliases/LROptions"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/type-aliases/LROptions" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/type-aliases/LROptions" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"},{"@type":"ListItem","position":2,"name":"LROptions","item":"https://pui.ice.com/logrocket/api/type-aliases/LROptions"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.9.2">
|
|
6
6
|
<title data-rh="true">LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/api/variables/LogRocket"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="LogRocket"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/api/variables/LogRocket"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/variables/LogRocket" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/api/variables/LogRocket" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"LogRocket API","item":"https://pui.ice.com/logrocket/api/"},{"@type":"ListItem","position":2,"name":"LogRocket","item":"https://pui.ice.com/logrocket/api/variables/LogRocket"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
|
|
7
|
-
<script src="/logrocket/assets/js/runtime~main.
|
|
8
|
-
<script src="/logrocket/assets/js/main.
|
|
7
|
+
<script src="/logrocket/assets/js/runtime~main.87356577.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.42433d39.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_logrocket=globalThis.webpackChunk_elliemae_pui_logrocket||[]).push([[3480],{753(e,n,i){i.d(n,{A:()=>s});const s=i.p+"assets/images/cookie-choices-3b92aafd30e6e586295ab6215b5b177c.png"},2266(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"compliance","title":"Compliance Requirements","description":"Due to wiretapping & privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,","source":"@site/docs/compliance.md","sourceDirName":".","slug":"/compliance","permalink":"/logrocket/compliance","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-logrocket.git/docs/compliance.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"docsSidebar","previous":{"title":"Usage Guide","permalink":"/logrocket/usage-guide"},"next":{"title":"LogRocket API","permalink":"/logrocket/api/"}}');var r=i(6070),t=i(116);const l={sidebar_position:3},o="Compliance Requirements",a={},c=[{value:"Overview",id:"overview",level:2},{value:"Key Requirements",id:"key-requirements",level:2},{value:"Application Types",id:"application-types",level:3},{value:"Consent Matrix (Borrower-Facing Applications)",id:"consent-matrix-borrower-facing-applications",level:3},{value:"Implementation",id:"implementation",level:2},{value:"Cookie Banner with OneTrust",id:"cookie-banner-with-onetrust",level:3},{value:"User Journey: First Visit (No Prior Consent)",id:"user-journey-first-visit-no-prior-consent",level:4},{value:"User Journey: Returning Visit (Consent Previously Given)",id:"user-journey-returning-visit-consent-previously-given",level:4},{value:"Consent Check Hierarchy",id:"consent-check-hierarchy",level:4},{value:"OneTrust Integration Details",id:"onetrust-integration-details",level:3},{value:"Integration Setup (Shell Microapp Only)",id:"integration-setup-shell-microapp-only",level:4},{value:"Data Sanitization in Session Recordings",id:"data-sanitization-in-session-recordings",level:3},{value:"Input Sanitization",id:"input-sanitization",level:4},{value:"Text Content Sanitization",id:"text-content-sanitization",level:4},{value:"Hidden Attributes",id:"hidden-attributes",level:4},{value:"URL Sanitization",id:"url-sanitization",level:4},{value:"Network Sanitization",id:"network-sanitization",level:4},{value:"Testing and Development",id:"testing-and-development",level:2},{value:"Localhost Development",id:"localhost-development",level:3},{value:"Compliance Checklist",id:"compliance-checklist",level:2},{value:"Common Requirements (All Applications)",id:"common-requirements-all-applications",level:3},{value:"Borrower-Facing Specific (e.g., ECC)",id:"borrower-facing-specific-eg-ecc",level:3},{value:"Non-Borrower-Facing Specific (e.g., EncompassWeb, TPO)",id:"non-borrower-facing-specific-eg-encompassweb-tpo",level:3}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",input:"input",li:"li",mermaid:"mermaid",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"compliance-requirements",children:"Compliance Requirements"})}),"\n",(0,r.jsx)(n.p,{children:"Due to wiretapping & privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,"}),"\n",(0,r.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsx)(n.p,{children:"LogRocket captures two categories of data:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Session Recordings (DOM capture)"}),": Visual replay of user interactions, mouse movements, clicks, and page changes"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Technical Data"}),": Network requests, console logs, JavaScript errors, performance metrics, and custom events"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"key-requirements",children:"Key Requirements"}),"\n",(0,r.jsx)(n.h3,{id:"application-types",children:"Application Types"}),"\n",(0,r.jsx)(n.p,{children:"LogRocket session recording requirements differ based on the application type:"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Aspect"}),(0,r.jsx)(n.th,{children:"Borrower-Facing (e.g., ECC)"}),(0,r.jsx)(n.th,{children:"Non-Borrower-Facing (e.g., EncompassWeb, TPO)"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"OneTrust Banner"})}),(0,r.jsx)(n.td,{children:"For obtaining user consent"}),(0,r.jsx)(n.td,{children:"For transparency/disclosure only"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Consent Required"})}),(0,r.jsx)(n.td,{children:"Yes - C0002 (init), C0003 (recording)"}),(0,r.jsx)(n.td,{children:"No - shown for informational purposes"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Session Recording"})}),(0,r.jsx)(n.td,{children:"Enabled only with C0003 consent"}),(0,r.jsx)(n.td,{children:"Always enabled by default"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"User Opt-Out"})}),(0,r.jsx)(n.td,{children:"\u2705 Can opt-out via OneTrust"}),(0,r.jsx)(n.td,{children:"\u274c Cannot opt-out"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Target Users"})}),(0,r.jsx)(n.td,{children:"Consumers/borrowers"}),(0,r.jsx)(n.td,{children:"Professional/business users"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Rationale for non-borrower-facing"}),": Professional applications require continuous session recording for technical troubleshooting, security monitoring, user experience optimization, and compliance requirements."]}),"\n",(0,r.jsx)(n.h3,{id:"consent-matrix-borrower-facing-applications",children:"Consent Matrix (Borrower-Facing Applications)"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Feature"}),(0,r.jsx)(n.th,{children:"With C0002 Only"}),(0,r.jsx)(n.th,{children:"With C0002 + C0003"}),(0,r.jsx)(n.th,{children:"Without C0002"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"LogRocket Init"}),(0,r.jsx)(n.td,{children:"\u2705 Initialized"}),(0,r.jsx)(n.td,{children:"\u2705 Initialized"}),(0,r.jsx)(n.td,{children:"\u274c Not Initialized"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Session Recording (DOM)"}),(0,r.jsx)(n.td,{children:"\u274c Disabled"}),(0,r.jsx)(n.td,{children:"\u2705 Enabled"}),(0,r.jsx)(n.td,{children:"\u274c Not Available"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Visual Replay"}),(0,r.jsx)(n.td,{children:"\u274c Not Available"}),(0,r.jsx)(n.td,{children:"\u2705 Available"}),(0,r.jsx)(n.td,{children:"\u274c Not Available"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Mouse Movements"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Clicks & Interactions"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Page Changes"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Network Requests"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Console Logs"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"JavaScript Errors"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Performance Metrics"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Custom Events"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u2705 Captured"}),(0,r.jsx)(n.td,{children:"\u274c Not Captured"})]})]})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Data Minimization"}),": Only log data that is necessary for the intended purpose."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Anonymization"}),": Implement multiple anonymization strategies:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Input sanitization using 'lipsum' method to replace user input with placeholder text"}),"\n",(0,r.jsx)(n.li,{children:"Text sanitization enabled by default to protect sensitive text content"}),"\n",(0,r.jsx)(n.li,{children:"Hidden ARIA attributes (aria-label, aria-labelledby, aria-describedby, etc.) to protect accessibility-related PII"}),"\n",(0,r.jsx)(n.li,{children:"Request and response body sanitization to remove sensitive data"}),"\n",(0,r.jsx)(n.li,{children:"Custom sanitizers for URLs, network requests, and responses"}),"\n",(0,r.jsx)(n.li,{children:"Support for masking specific elements and attributes"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"implementation",children:"Implementation"}),"\n",(0,r.jsx)(n.h3,{id:"cookie-banner-with-onetrust",children:"Cookie Banner with OneTrust"}),"\n",(0,r.jsx)(n.p,{children:"Both application types display the OneTrust cookie banner with different purposes:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Borrower-facing (ECC)"}),": Banner obtains user consent before enabling LogRocket"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Non-borrower-facing (EncompassWeb, TPO)"}),": Banner informs users about session recording (transparency only)"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Sample OneTrust based cookie banner"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Cookie Banner",src:i(9467).A+"",width:"1912",height:"1007"})}),"\n",(0,r.jsxs)(n.p,{children:["Sample Cookie Choices\n",(0,r.jsx)(n.img,{alt:"Cookie Choices",src:i(753).A+"",width:"448",height:"926"})]}),"\n",(0,r.jsx)(n.h4,{id:"user-journey-first-visit-no-prior-consent",children:"User Journey: First Visit (No Prior Consent)"}),"\n",(0,r.jsx)(n.mermaid,{value:'sequenceDiagram\n actor User\n participant App as Application\n participant PUI as pui-logrocket<br/>Library\n participant OT as OneTrust\n participant Banner as Cookie Banner\n participant LR as LogRocket\n\n User->>App: Visits Application\n App->>PUI: initLogRocket()\n\n par OneTrust Consent Check\n OT->>OT: Check for existing consent\n OT->>Banner: No consent found\n Banner->>User: Show Cookie Banner\n Note over Banner,User: Banner displays:<br/>- Cookie usage information<br/>- Analytics/tracking options<br/>- Accept/Decline buttons\n and LogRocket Event Listener Setup (Parallel)\n PUI->>PUI: Check OptanonAlertBoxClosed cookie\n Note over PUI: Cookie not found (first visit)\n PUI->>PUI: Add listener for OTConsentApplied event\n Note over PUI: \u23f3 Waiting for user to<br/>interact with banner\n Note over PUI,LR: No LogRocket functionality<br/>until event fires\n end\n\n alt User Accepts Functional Cookies\n User->>Banner: Click "Accept" or "Accept All"\n Banner->>OT: Save consent (C0002:1, C0003:1)\n OT->>OT: Store in OptanonConsent cookie\n OT->>OT: Set OptanonAlertBoxClosed cookie\n OT->>PUI: Fire OTConsentApplied event\n PUI->>PUI: Check consent (C0002:1)\n PUI->>LR: \u2705 Initialize LogRocket\n PUI->>PUI: Check consent (C0003:1)\n PUI->>LR: \u2705 Enable session recording\n Note over User,LR: LogRocket fully active<br/>in current session\n else User Declines Functional Cookies\n User->>Banner: Click "Decline" or customize\n Banner->>OT: Save preferences (C0002:0, C0003:0)\n OT->>OT: Store in OptanonConsent cookie\n Note over User,LR: LogRocket remains<br/>disabled for future visits\n end'}),"\n",(0,r.jsx)(n.h4,{id:"user-journey-returning-visit-consent-previously-given",children:"User Journey: Returning Visit (Consent Previously Given)"}),"\n",(0,r.jsx)(n.mermaid,{value:"sequenceDiagram\n actor User\n participant App as Application\n participant PUI as pui-logrocket<br/>Library\n participant Cookie as Browser Cookie<br/>(OptanonConsent)\n participant LR as LogRocket\n\n User->>App: Returns to Application\n App->>PUI: initLogRocket()\n PUI->>Cookie: Check OptanonAlertBoxClosed cookie\n Cookie->>PUI: Cookie found (banner seen before)\n Note over PUI: Banner not shown<br/>User previously interacted\n PUI->>PUI: Add listener for OneTrustGroupsUpdated event\n Note over PUI: \u23f3 Waiting for OneTrust<br/>to load consent groups\n App->>App: OneTrust SDK loads\n App->>PUI: Fire OneTrustGroupsUpdated event\n PUI->>Cookie: Check OptanonConsent cookie\n Cookie->>PUI: C0002 and C0003 consent found\n PUI->>LR: \u2705 Initialize LogRocket\n PUI->>LR: Set dom.isEnabled=true (C0003 granted)\n LR->>LR: \u2705 LogRocket Initialized\n LR->>LR: \u2705 Start Session Recording\n Note over User,LR: Seamless experience,<br/>full recording active"}),"\n",(0,r.jsx)(n.h4,{id:"consent-check-hierarchy",children:"Consent Check Hierarchy"}),"\n",(0,r.jsx)(n.mermaid,{value:"flowchart LR\n A[pui-logrocket<br/>Check Session Recording Consent] --\x3e B{dangerouslyOverrideSessionRecordingConsent<br/>= true/false?}\n B --\x3e|Yes| C[Use Override Value]\n B --\x3e|No| D{window.OnetrustActiveGroups<br/>exists?}\n D --\x3e|Yes| E{Contains C0003?}\n E --\x3e|Yes| F[\u2713 Consent Granted]\n E --\x3e|No| G[\u2717 No Consent]\n D --\x3e|No| H{Current URL Parameter<br/>analyticsConsent=true?}\n H --\x3e|Yes| F\n H --\x3e|No| I{Running in iframe?}\n I --\x3e|Yes| J{Iframe src URL Parameter<br/>analyticsConsent=true?}\n J --\x3e|Yes| F\n J --\x3e|No| G\n I --\x3e|No| G\n\n style F fill:#4CAF50,color:#fff\n style G fill:#FF6B6B,color:#fff\n style C fill:#FFA726,color:#fff"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Priority Order:"})}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Manual override (",(0,r.jsx)(n.code,{children:"dangerouslyOverrideSessionRecordingConsent"}),") - ",(0,r.jsx)(n.strong,{children:"Highest priority"})]}),"\n",(0,r.jsx)(n.li,{children:"OneTrust consent groups (C0003)"}),"\n",(0,r.jsxs)(n.li,{children:["Current window URL parameter (",(0,r.jsx)(n.code,{children:"analyticsConsent"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["Iframe src URL parameter (",(0,r.jsx)(n.code,{children:"analyticsConsent"}),") - ",(0,r.jsx)(n.strong,{children:"Legacy support for AngularJS microapps"})]}),"\n",(0,r.jsxs)(n.li,{children:["Default (no consent) - ",(0,r.jsx)(n.strong,{children:"Lowest priority"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"onetrust-integration-details",children:"OneTrust Integration Details"}),"\n",(0,r.jsx)(n.h4,{id:"integration-setup-shell-microapp-only",children:"Integration Setup (Shell Microapp Only)"}),"\n",(0,r.jsxs)(n.p,{children:["OneTrust SDK must be integrated using ",(0,r.jsx)(n.strong,{children:"Google Tag Manager"})," as a custom HTML tag:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsxs)(n.strong,{children:["Set ",(0,r.jsx)(n.code,{children:"window.hasOneTrust"})," flag"]}),": The application's shell microapp must set ",(0,r.jsx)(n.code,{children:"window.hasOneTrust = true"})," ",(0,r.jsx)(n.strong,{children:"before"})," loading Google Tag Manager"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"// In shell microapp - set before GTM loads\nwindow.hasOneTrust = true;\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsxs)(n.strong,{children:["Set ",(0,r.jsx)(n.code,{children:"appEnv"})," Data Layer variable"]}),": Push the application environment to the Data Layer before GTM loads"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"// In shell microapp - set before GTM loads\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n appEnv: 'production', // or 'development', 'staging', 'qa', etc.\n});\n"})}),"\n",(0,r.jsx)(n.p,{children:"This variable is used in GTM to load envvironment specific OneTrust SDK."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": React boilerplate based shell microapp to set the window.gtmDataLayer variable in ",(0,r.jsx)(n.a,{href:"https://git.elliemae.io/platform-ui/pui-react-boilerplate/blob/feature/logrocket/app/global.js#L34",children:"global.js "}),"file."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Configure OneTrust in Google Tag Manager"}),": Add OneTrust SDK as a custom HTML tag in GTM with the following steps:"]}),"\n",(0,r.jsxs)(n.p,{children:["a. ",(0,r.jsx)(n.strong,{children:"Setup Variables"})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Create a JavaScript Variable for OneTrust flag"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Go to your GTM workspace"}),"\n",(0,r.jsx)(n.li,{children:'Click "Variables" \u2192 "User-Defined Variables" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "js-hasOneTrust"'}),"\n",(0,r.jsx)(n.li,{children:'Variable Type: Select "JavaScript Variable"'}),"\n",(0,r.jsxs)(n.li,{children:["Global Variable Name: ",(0,r.jsx)(n.code,{children:"hasOneTrust"})]}),"\n",(0,r.jsx)(n.li,{children:'Format Value: Check "Convert undefined to false"'}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Create a Data Layer Variable for application environment"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Go to your GTM workspace"}),"\n",(0,r.jsx)(n.li,{children:'Click "Variables" \u2192 "User-Defined Variables" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "dlv-appEnv"'}),"\n",(0,r.jsx)(n.li,{children:'Variable Type: Select "Data Layer Variable"'}),"\n",(0,r.jsxs)(n.li,{children:["Data Layer Variable Name: ",(0,r.jsx)(n.code,{children:"appEnv"})]}),"\n",(0,r.jsx)(n.li,{children:'Data Layer Version: Select "Version 2"'}),"\n",(0,r.jsxs)(n.li,{children:["Default Value: ",(0,r.jsx)(n.code,{children:"localhost"})]}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Create a Data Layer Variable for OneTrust consent groups"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Go to your GTM workspace"}),"\n",(0,r.jsx)(n.li,{children:'Click "Variables" \u2192 "User-Defined Variables" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "dlv-OnetrustActiveGroups"'}),"\n",(0,r.jsx)(n.li,{children:'Variable Type: Select "Data Layer Variable"'}),"\n",(0,r.jsxs)(n.li,{children:["Data Layer Variable Name: ",(0,r.jsx)(n.code,{children:"OnetrustActiveGroups"})]}),"\n",(0,r.jsx)(n.li,{children:'Data Layer Version: Select "Version 2"'}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["b. ",(0,r.jsx)(n.strong,{children:"Set up triggers"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Custom-EnableOneTrust-d1"})," trigger:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Click "Triggers" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "Custom-EnableOneTrust-d1"'}),"\n",(0,r.jsx)(n.li,{children:'Trigger Type: Select "Initialization"'}),"\n",(0,r.jsx)(n.li,{children:'This trigger fires on: "Some Initialization Events"'}),"\n",(0,r.jsxs)(n.li,{children:["Fire this trigger when: ",(0,r.jsx)(n.code,{children:"js-hasOneTrust"})," equals ",(0,r.jsx)(n.code,{children:"true"})," and ",(0,r.jsx)(n.code,{children:"dlv-appEnv"})," matches RegEx ",(0,r.jsx)(n.code,{children:"^(d1|localhost)$"})]}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Custom-EnableOneTrust-q1"})," trigger:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Click "Triggers" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "Custom-EnableOneTrust-q1"'}),"\n",(0,r.jsx)(n.li,{children:'Trigger Type: Select "Initialization"'}),"\n",(0,r.jsx)(n.li,{children:'This trigger fires on: "Some Initialization Events"'}),"\n",(0,r.jsxs)(n.li,{children:["Fire this trigger when: ",(0,r.jsx)(n.code,{children:"js-hasOneTrust"})," equals ",(0,r.jsx)(n.code,{children:"true"})," and ",(0,r.jsx)(n.code,{children:"dlv-appEnv"})," equals ",(0,r.jsx)(n.code,{children:"q1"})]}),"\n",(0,r.jsxs)(n.li,{children:['Click "Save"\n',(0,r.jsxs)(n.strong,{children:["Note: Similary create triggers for other environments like ",(0,r.jsx)(n.code,{children:"i1,pl1,s1,uat1 & pr"})," etc."]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Custom-EnableGA"})," trigger:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Click "Triggers" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "Custom-EnableGA"'}),"\n",(0,r.jsx)(n.li,{children:'Trigger Type: Select "Initialization"'}),"\n",(0,r.jsx)(n.li,{children:'This trigger fires on: "Some Initialization Events"'}),"\n",(0,r.jsxs)(n.li,{children:["Fire this trigger when: ",(0,r.jsx)(n.code,{children:"js-hasOneTrust"})," equals ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"(C0002) Activate Performance"})," trigger:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Click "Triggers" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "(C0002) Activate Performance"'}),"\n",(0,r.jsx)(n.li,{children:'Trigger Type: Select "Custom Event"'}),"\n",(0,r.jsxs)(n.li,{children:["Event name: ",(0,r.jsx)(n.code,{children:"OneTrustGroupsUpdated"})]}),"\n",(0,r.jsx)(n.li,{children:"Use regex matching: Check this option"}),"\n",(0,r.jsx)(n.li,{children:'This trigger fires on: "Some Custom Events"'}),"\n",(0,r.jsxs)(n.li,{children:["Fire this trigger when: ",(0,r.jsx)(n.code,{children:"dlv-OnetrustActiveGroups"})," matches RegEx ",(0,r.jsx)(n.code,{children:",C0002,"})]}),"\n",(0,r.jsx)(n.li,{children:'Click "Save"'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["c. ",(0,r.jsx)(n.strong,{children:"Create tags"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"OneTrust-Load-d1"})," tag:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Go to your GTM workspace"}),"\n",(0,r.jsx)(n.li,{children:'Click "Tags" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "OneTrust-Load-d1"'}),"\n",(0,r.jsx)(n.li,{children:'Tag Type: Select "Custom HTML"'}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Borrower-facing applications (e.g., ECC)"}),": Paste the OneTrust SDK script with consent control enabled (see ",(0,r.jsx)(n.code,{children:"docs/onetrust-borrower-facing.html"})," for reference template)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Non-borrower-facing applications (e.g., EncompassWeb, TPO)"}),": Paste the OneTrust SDK script with transparency-only mode (see ",(0,r.jsx)(n.code,{children:"docs/onetrust-non-borrower-facing.html"})," for reference template)"]}),"\n",(0,r.jsx)(n.li,{children:'Advanced Settings \u2192 Enable "Support document.write"'}),"\n",(0,r.jsx)(n.li,{children:'Firing Triggers: Select "Custom-EnableOneTrust-d1"'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"OneTrust-Load-q1"})," tag:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Go to your GTM workspace"}),"\n",(0,r.jsx)(n.li,{children:'Click "Tags" \u2192 "New"'}),"\n",(0,r.jsx)(n.li,{children:'Name it "OneTrust-Load-q1"'}),"\n",(0,r.jsx)(n.li,{children:'Tag Type: Select "Custom HTML"'}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Borrower-facing applications (e.g., ECC)"}),": Paste the OneTrust SDK script with consent control enabled (see ",(0,r.jsx)(n.code,{children:"docs/onetrust-borrower-facing.html"})," for reference template)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Non-borrower-facing applications (e.g., EncompassWeb, TPO)"}),": Paste the OneTrust SDK script with transparency-only mode (see ",(0,r.jsx)(n.code,{children:"docs/onetrust-non-borrower-facing.html"})," for reference template)"]}),"\n",(0,r.jsx)(n.li,{children:'Advanced Settings \u2192 Enable "Support document.write"'}),"\n",(0,r.jsx)(n.li,{children:'Firing Triggers: Select "Custom-EnableOneTrust-q1"'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"GA4-Config-Load"})," tag:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["if this tag exists, edit it to change the trigger to ",(0,r.jsx)(n.strong,{children:"(C0002) Activate Performance"})," & ",(0,r.jsx)(n.strong,{children:"Custom-EnableGA"})," triggers created above."]}),"\n",(0,r.jsx)(n.li,{children:"save the tag."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["d. ",(0,r.jsx)(n.strong,{children:"Test the integration"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Check whether OneTrust banner appears as expected"}),"\n",(0,r.jsx)(n.li,{children:"Verify that LogRocket initializes and session recording starts only after user consents"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["g. ",(0,r.jsx)(n.strong,{children:"Publish the changes"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Submit the workspace"}),"\n",(0,r.jsx)(n.li,{children:"Add version name/description"}),"\n",(0,r.jsx)(n.li,{children:"Publish to select environments"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Important"}),": The OneTrust script must be added via GTM, not directly in the HTML, to ensure proper consent management and integration with other GTM tags."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"data-sanitization-in-session-recordings",children:"Data Sanitization in Session Recordings"}),"\n",(0,r.jsx)(n.p,{children:"To protect user privacy during session recording, the following sanitization measures are enforced:"}),"\n",(0,r.jsx)(n.h4,{id:"input-sanitization",children:"Input Sanitization"}),"\n",(0,r.jsx)(n.p,{children:"All form inputs are sanitized using the 'lipsum' method, which replaces actual user input with placeholder text. This prevents:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Password fields from being recorded"}),"\n",(0,r.jsx)(n.li,{children:"Credit card numbers from appearing in recordings"}),"\n",(0,r.jsx)(n.li,{children:"Personal information entered in forms from being captured"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"text-content-sanitization",children:"Text Content Sanitization"}),"\n",(0,r.jsxs)(n.p,{children:["Text sanitization is enabled by default (",(0,r.jsx)(n.code,{children:"textSanitizer: true"}),") to protect sensitive information displayed on the page. This automatically sanitizes:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Text content in HTML elements"}),"\n",(0,r.jsx)(n.li,{children:"Dynamically generated text that may contain PII"}),"\n",(0,r.jsx)(n.li,{children:"Text nodes that could reveal sensitive user data"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"hidden-attributes",children:"Hidden Attributes"}),"\n",(0,r.jsx)(n.p,{children:"The following ARIA attributes are hidden from session recordings to prevent accessibility-related PII exposure:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-label"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-labelledby"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-describedby"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-details"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-errormessage"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-valuetext"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"aria-placeholder"})}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"url-sanitization",children:"URL Sanitization"}),"\n",(0,r.jsx)(n.p,{children:"Sensitive URL parameters are automatically redacted:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Authorization codes: ",(0,r.jsx)(n.code,{children:"code=REDACTED"})]}),"\n",(0,r.jsxs)(n.li,{children:["Custom patterns can be added via the ",(0,r.jsx)(n.code,{children:"browser.urlSanitizer"})," configuration"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"network-sanitization",children:"Network Sanitization"}),"\n",(0,r.jsx)(n.p,{children:"Network requests and responses are sanitized to prevent sensitive data leakage:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Request headers"}),": Authorization headers are replaced with ",(0,r.jsx)(n.code,{children:"**redacted**"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Request bodies"}),": All request bodies are set to ",(0,r.jsx)(n.code,{children:"null"})," by default"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Response bodies"}),": All response bodies are removed by default"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Custom headers"}),": Headers like ",(0,r.jsx)(n.code,{children:"x-secret"})," trigger complete response removal"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"testing-and-development",children:"Testing and Development"}),"\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"development testing only"}),", session recording consent can be overridden using ",(0,r.jsx)(n.code,{children:"window.emui.dangerouslyOverrideSessionRecordingConsent"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"window.emui = window.emui || {};\nwindow.emui.dangerouslyOverrideSessionRecordingConsent = true; // or false\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Critical Warnings"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u26a0\ufe0f This variable is for ",(0,r.jsx)(n.strong,{children:"development testing ONLY"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u26a0\ufe0f ",(0,r.jsx)(n.strong,{children:"NEVER use in production"})," - this bypasses user consent"]}),"\n",(0,r.jsx)(n.li,{children:"\u26a0\ufe0f A warning will be logged when this override is active"}),"\n",(0,r.jsx)(n.li,{children:"\u26a0\ufe0f This has the highest priority in consent checking hierarchy (overrides OneTrust and URL parameters)"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Use cases"}),": Testing session recording behavior without configuring OneTrust, or forcing recording on/off during local development."]}),"\n",(0,r.jsx)(n.h3,{id:"localhost-development",children:"Localhost Development"}),"\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"local development"})," on localhost, LogRocket is disabled by default. You can enable it using either:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Environment Variable"}),": Set ",(0,r.jsx)(n.code,{children:"LOGROCKET_ENABLE_ON_LOCALHOST=true"})," in your ",(0,r.jsx)(n.code,{children:".env"})," file"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Configuration Flag"}),": Set ",(0,r.jsx)(n.code,{children:"window.emui.logRocketConfig.localhostEnable = true"})," before calling ",(0,r.jsx)(n.code,{children:"initLogRocket"})]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["LogRocket will be enabled on localhost if ",(0,r.jsx)(n.strong,{children:"either"})," the environment variable ",(0,r.jsx)(n.strong,{children:"or"})," the configuration flag is set to ",(0,r.jsx)(n.code,{children:"true"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"compliance-checklist",children:"Compliance Checklist"}),"\n",(0,r.jsx)(n.h3,{id:"common-requirements-all-applications",children:"Common Requirements (All Applications)"}),"\n",(0,r.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Input sanitization verified (all forms use 'lipsum' method)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Text sanitization enabled (",(0,r.jsx)(n.code,{children:"textSanitizer: true"})," is set)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","URL sanitization tested for sensitive parameters"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Network request/response sanitization confirmed"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","ARIA attribute hiding validated"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Cross-domain session tracking tested for multi-microapp scenarios (if applicable)"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"borrower-facing-specific-eg-ecc",children:"Borrower-Facing Specific (e.g., ECC)"}),"\n",(0,r.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Confirmed application is borrower-facing (consumer-facing)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","OneTrust integration configured with C0002 and C0003 for consent control"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified OneTrust banner obtains user consent"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified C0002 required for LogRocket initialization"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified C0003 required for session recording (DOM capture)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified users can opt-out via OneTrust cookie preferences"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","User consent flows tested (accept, decline, change preferences)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified LogRocket does NOT initialize without C0002"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified LogRocket initializes with C0002 but disables DOM without C0003"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"non-borrower-facing-specific-eg-encompassweb-tpo",children:"Non-Borrower-Facing Specific (e.g., EncompassWeb, TPO)"}),"\n",(0,r.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Confirmed application is non-borrower-facing (professional/business user tool)"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","OneTrust banner configured for transparency/disclosure only"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified OneTrust banner does NOT control LogRocket behavior"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified session recording always enabled (",(0,r.jsx)(n.code,{children:"dom.isEnabled: true"}),")"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Confirmed LogRocket initializes regardless of consent state"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Verified users CANNOT opt-out of session recording"]}),"\n",(0,r.jsxs)(n.li,{className:"task-list-item",children:[(0,r.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Users informed about continuous session recording in terms of service"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},9467(e,n,i){i.d(n,{A:()=>s});const s=i.p+"assets/images/cookie-banner-44da75a3249d0545c24f9b735d2fa068.png"}}]);
|