@elliemae/pui-logrocket 1.2.3 → 1.2.4
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 +3 -3
- 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/assets/js/04ee7372.c7af6b05.js +1 -0
- package/build/docs/assets/js/211c08f1.c26e72ea.js +1 -0
- package/build/docs/assets/js/e376fc56.0c9034e0.js +1 -0
- package/build/docs/assets/js/{main.7d3be447.js → main.33883ccf.js} +2 -2
- package/build/docs/assets/js/{runtime~main.5e481bc4.js → runtime~main.4402f01c.js} +1 -1
- package/build/docs/compliance/index.html +6 -6
- package/build/docs/index.html +2 -2
- package/build/docs/usage-guide/index.html +36 -106
- package/dist/cjs/logrocket.js +2 -2
- package/dist/esm/logrocket.js +2 -2
- package/dist/public/index.html +1 -1
- package/dist/public/js/{emuiLogrocket.32efbf89608d7f1ff787.js → emuiLogrocket.b05aab66ef02cf198fdf.js} +2 -2
- package/dist/public/js/emuiLogrocket.b05aab66ef02cf198fdf.js.br +0 -0
- package/dist/public/js/{emuiLogrocket.32efbf89608d7f1ff787.js.gz → emuiLogrocket.b05aab66ef02cf198fdf.js.gz} +0 -0
- package/dist/public/js/emuiLogrocket.b05aab66ef02cf198fdf.js.map +1 -0
- package/dist/types/lib/logrocket.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/umd/index.js +1 -1
- 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/04ee7372.91effd96.js +0 -1
- package/build/docs/assets/js/211c08f1.f5d0523b.js +0 -1
- package/build/docs/assets/js/e376fc56.609d201b.js +0 -1
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js.br +0 -0
- package/dist/public/js/emuiLogrocket.32efbf89608d7f1ff787.js.map +0 -1
- /package/build/docs/assets/js/{main.7d3be447.js.LICENSE.txt → main.33883ccf.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,a,r,t,o,c={},f={};function n(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=c,n.c=f,e=[],n.O=(a,r,t,o)=>{if(!r){var c=1/0;for(i=0;i<e.length;i++){for(var[r,t,o]=e[i],f=!0,d=0;d<r.length;d++)(!1&o||c>=o)&&Object.keys(n.O).every(e=>n.O[e](r[d]))?r.splice(d--,1):(f=!1,o<c&&(c=o));if(f){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,t,o]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};a=a||[null,r({}),r([]),r(r)];for(var f=2&t&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,n.d(o,c),o},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,r)=>(n.f[r](e,a),a),[])),n.u=e=>"assets/js/"+({295:"51c4ceb1",594:"5e8c322a",2076:"common",3361:"c377a04b",3480:"e376fc56",4319:"211c08f1",4804:"7fcbe1af",5742:"aba21aa0",5754:"acaa8c75",5760:"552a934f",5908:"04ee7372",7098:"a7bd4aaa",8401:"17896441",9048:"a94703ab",9647:"5e95c892"}[e]||e)+"."+{200:"0310889b",295:"6fc4ec7b",483:"18c7d7f8",594:"503d46ea",638:"a021b03c",654:"0e97a121",764:"32783b8e",967:"d428fcf6",1138:"aa8c4e98",1370:"c8be4ee0",2076:"6c804366",2180:"31d6ce39",2327:"251d6533",2706:"74774645",3308:"78e397d4",3361:"2361a76f",3480:"
|
|
1
|
+
(()=>{"use strict";var e,a,r,t,o,c={},f={};function n(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=c,n.c=f,e=[],n.O=(a,r,t,o)=>{if(!r){var c=1/0;for(i=0;i<e.length;i++){for(var[r,t,o]=e[i],f=!0,d=0;d<r.length;d++)(!1&o||c>=o)&&Object.keys(n.O).every(e=>n.O[e](r[d]))?r.splice(d--,1):(f=!1,o<c&&(c=o));if(f){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,t,o]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};a=a||[null,r({}),r([]),r(r)];for(var f=2&t&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,n.d(o,c),o},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,r)=>(n.f[r](e,a),a),[])),n.u=e=>"assets/js/"+({295:"51c4ceb1",594:"5e8c322a",2076:"common",3361:"c377a04b",3480:"e376fc56",4319:"211c08f1",4804:"7fcbe1af",5742:"aba21aa0",5754:"acaa8c75",5760:"552a934f",5908:"04ee7372",7098:"a7bd4aaa",8401:"17896441",9048:"a94703ab",9647:"5e95c892"}[e]||e)+"."+{200:"0310889b",295:"6fc4ec7b",483:"18c7d7f8",594:"503d46ea",638:"a021b03c",654:"0e97a121",764:"32783b8e",967:"d428fcf6",1138:"aa8c4e98",1370:"c8be4ee0",2076:"6c804366",2180:"31d6ce39",2327:"251d6533",2706:"74774645",3308:"78e397d4",3361:"2361a76f",3480:"0c9034e0",3725:"36fa16ca",3767:"2998632d",3899:"94243d47",4167:"eb3f034b",4319:"c26e72ea",4359:"6536c7a0",4390:"744aab40",4413:"e614d609",4453:"ef8b090c",4632:"aa312ff7",4804:"5999b9e8",4860:"cfa79720",5168:"97fb36dd",5179:"ccfc9ebc",5182:"30f41439",5275:"4ed9ae52",5742:"a5d4e000",5754:"70525e75",5760:"b125f196",5820:"2cd5bf53",5908:"c7af6b05",6143:"8bf840e9",6340:"eaf6d37a",6376:"13262bdb",6603:"cbc20a0f",6761:"0b26728e",6873:"83ee6c7c",7039:"3ca79f91",7098:"ad524078",7204:"1ce9a9b1",7616:"6501b368",7666:"99e92eb2",7876:"3ac89535",8071:"6922ccd8",8401:"dfa22f5b",8907:"4424af8f",9048:"5c63b074",9647:"2d99be36",9748:"cc3f89d3",9845:"d704e0f2"}[e]+".js",n.miniCssF=e=>{},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},o="@elliemae/pui-logrocket:",n.l=(e,a,r,c)=>{if(t[e])t[e].push(a);else{var f,d;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var l=b[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){f=l;break}}f||(d=!0,(f=document.createElement("script")).charset="utf-8",n.nc&&f.setAttribute("nonce",n.nc),f.setAttribute("data-webpack",o+r),f.src=e),t[e]=[a];var u=(a,r)=>{f.onerror=f.onload=null,clearTimeout(s);var o=t[e];if(delete t[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),d&&document.head.appendChild(f)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/logrocket/",n.gca=function(e){return e={17896441:"8401","51c4ceb1":"295","5e8c322a":"594",common:"2076",c377a04b:"3361",e376fc56:"3480","211c08f1":"4319","7fcbe1af":"4804",aba21aa0:"5742",acaa8c75:"5754","552a934f":"5760","04ee7372":"5908",a7bd4aaa:"7098",a94703ab:"9048","5e95c892":"9647"}[e]||e,n.p+n.u(e)},(()=>{var e={5354:0,1869:0};n.f.j=(a,r)=>{var t=n.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var o=new Promise((r,o)=>t=e[a]=[r,o]);r.push(t[2]=o);var c=n.p+n.u(a),f=new Error;n.l(c,r=>{if(n.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+a+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,t[1](f)}},"chunk-"+a,a)}},n.O.j=a=>0===e[a];var a=(a,r)=>{var t,o,[c,f,d]=r,b=0;if(c.some(a=>0!==e[a])){for(t in f)n.o(f,t)&&(n.m[t]=f[t]);if(d)var i=d(n)}for(a&&a(r);b<c.length;b++)o=c[b],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(i)},r=globalThis.webpackChunk_elliemae_pui_logrocket=globalThis.webpackChunk_elliemae_pui_logrocket||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
|
|
@@ -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">Compliance Requirements | 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/compliance"><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="Compliance Requirements | LogRocket"><meta data-rh="true" name="description" content="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,"><meta data-rh="true" property="og:description" content="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,"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/compliance"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Compliance Requirements","item":"https://pui.ice.com/logrocket/compliance"}]}</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.4402f01c.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.33883ccf.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<!-- -->
|
|
62
62
|
<p><strong>Priority Order:</strong></p>
|
|
63
63
|
<ol>
|
|
64
|
-
<li class="">Manual override (<code>dangerouslyOverrideSessionRecordingConsent</code>)
|
|
64
|
+
<li class="">Manual override (<code>dangerouslyOverrideSessionRecordingConsent === true</code>) — <strong>force ON only</strong>. Setting the override to <code>false</code> does <strong>not</strong> force-disable; it falls through to the normal sources below.</li>
|
|
65
65
|
<li class="">OneTrust consent groups (C0003)</li>
|
|
66
66
|
<li class="">Current window URL parameter (<code>analyticsConsent</code>)</li>
|
|
67
67
|
<li class="">Iframe src URL parameter (<code>analyticsConsent</code>) - <strong>Legacy support for AngularJS microapps</strong></li>
|
|
@@ -261,14 +261,14 @@
|
|
|
261
261
|
<li class=""><strong>Custom headers</strong>: Headers like <code>x-secret</code> trigger complete response removal</li>
|
|
262
262
|
</ul>
|
|
263
263
|
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="testing-and-development">Testing and Development<a href="#testing-and-development" class="hash-link" aria-label="Direct link to Testing and Development" title="Direct link to Testing and Development" translate="no"></a></h2>
|
|
264
|
-
<p>For <strong>development testing only</strong>, session recording consent can be
|
|
265
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dangerouslyOverrideSessionRecordingConsent</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">;</span><
|
|
264
|
+
<p>For <strong>development testing only</strong>, session recording consent can be force-enabled using <code>window.emui.dangerouslyOverrideSessionRecordingConsent</code></p>
|
|
265
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dangerouslyOverrideSessionRecordingConsent</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
|
|
266
266
|
<p><strong>Critical Warnings</strong>:</p>
|
|
267
267
|
<ul>
|
|
268
268
|
<li class="">⚠️ This variable is for <strong>development testing ONLY</strong></li>
|
|
269
269
|
<li class="">⚠️ <strong>NEVER use in production</strong> - this bypasses user consent</li>
|
|
270
270
|
<li class="">⚠️ A warning will be logged when this override is active</li>
|
|
271
|
-
<li class="">⚠️
|
|
271
|
+
<li class="">⚠️ Only <code>=== true</code> overrides consent. Setting it to <code>false</code> (or leaving it unset) is <strong>not</strong> a force-disable — the library falls through to OneTrust / <code>analyticsConsent</code> URL parameter / iframe <code>src</code> parameter, which can still grant consent on their own.</li>
|
|
272
272
|
</ul>
|
|
273
273
|
<p><strong>Use cases</strong>: Testing session recording behavior without configuring OneTrust, or forcing recording on/off during local development.</p>
|
|
274
274
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="localhost-development">Localhost Development<a href="#localhost-development" class="hash-link" aria-label="Direct link to Localhost Development" title="Direct link to Localhost Development" translate="no"></a></h3>
|
package/build/docs/index.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">Getting Started | 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/"><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="Getting Started | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/logrocket/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Getting Started","item":"https://pui.ice.com/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.4402f01c.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.33883ccf.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">Usage Guide | 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/usage-guide"><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="Usage Guide | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/usage-guide"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Usage Guide","item":"https://pui.ice.com/logrocket/usage-guide"}]}</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.4402f01c.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.33883ccf.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body class="navigation-with-keyboard">
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -18,10 +18,8 @@
|
|
|
18
18
|
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> initLogRocket </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
|
|
19
19
|
<p>Replace <code>logrocket-app-id</code> with your actual LogRocket app ID. You can use window variables to configure LogRocket based on your environment (dev, stage, prod etc.,). See the "Window Variables" section below for more details.</p>
|
|
20
20
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="preventing-duplicate-initialization">Preventing Duplicate Initialization<a href="#preventing-duplicate-initialization" class="hash-link" aria-label="Direct link to Preventing Duplicate Initialization" title="Direct link to Preventing Duplicate Initialization" translate="no"></a></h3>
|
|
21
|
-
<p
|
|
22
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> initLogRocket </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token
|
|
23
|
-
<p>This is particularly useful in micro-frontend architectures where multiple modules might attempt to initialize LogRocket. The flag ensures that LogRocket is only initialized once per page load.</p>
|
|
24
|
-
<p><strong>Note</strong>: The <code>isLogRocketInitialized</code> flag is only set to <code>false</code> if it is <code>undefined</code>. If the flag is already set (to <code>true</code> or <code>false</code>), its value is preserved. This allows applications to control the initialization state if needed.</p>
|
|
21
|
+
<p><code>initLogRocket</code> is safe to call multiple times — only the first call initializes LogRocket; subsequent calls are no-ops. This lets each module in a micro-frontend call it without coordinating.</p>
|
|
22
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> initLogRocket </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// initializes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// no-op</span><br></span></code></pre></div></div>
|
|
25
23
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="window-variables">Window Variables<a href="#window-variables" class="hash-link" aria-label="Direct link to Window Variables" title="Direct link to Window Variables" translate="no"></a></h3>
|
|
26
24
|
<p>The UI Platform LogRocket library can be configured using global window variables below, which can be set before making the <code>initLogRocket</code> call.</p>
|
|
27
25
|
<ul>
|
|
@@ -34,18 +32,18 @@
|
|
|
34
32
|
<li class=""><code>localhostEnable</code> (boolean): Flag to enable LogRocket when running on localhost. Defaults to <code>false</code>. When set to <code>true</code>, LogRocket will be enabled on localhost even if the <code>LOGROCKET_ENABLE_ON_LOCALHOST</code> environment variable is not set. This is useful for local development and testing.</li>
|
|
35
33
|
<li class=""><code>childDomains</code> (array of strings, optional): Cross-origin child app origins to link sessions with when the page embeds them as iframes.<!-- -->
|
|
36
34
|
<ul>
|
|
37
|
-
<li class=""><strong>Default:</strong>
|
|
35
|
+
<li class=""><strong>Default:</strong> same-origin children stitch automatically with no configuration.</li>
|
|
38
36
|
<li class=""><strong>Set this when:</strong> the page is a parent that embeds <strong>cross-origin</strong> guest microapps (e.g. <code>https://app.ice.com</code> embedding <code>https://guest.example.com</code>). List each cross-origin child origin.</li>
|
|
39
|
-
<li class=""><strong>Format:</strong> array of full origins
|
|
40
|
-
<li class=""><strong>Note:</strong>
|
|
37
|
+
<li class=""><strong>Format:</strong> array of full origins (e.g. <code>['https://guest.example.com']</code>). Bare hostnames, URLs with paths, and non-array values are dropped with a warning.</li>
|
|
38
|
+
<li class=""><strong>Note:</strong> children themselves don't set this option — they need <code>parentDomain</code> (normally auto-detected). Both sides must be configured for cross-origin linking to work.</li>
|
|
41
39
|
</ul>
|
|
42
40
|
</li>
|
|
43
|
-
<li class=""><code>parentDomain</code> (string, optional): Origin of the page that embeds this one. Used by LogRocket
|
|
41
|
+
<li class=""><code>parentDomain</code> (string, optional): Origin of the page that embeds this one. Used by LogRocket to link the child's session to the parent's.<!-- -->
|
|
44
42
|
<ul>
|
|
45
|
-
<li class=""><strong>Default:</strong> auto-detected
|
|
46
|
-
<li class=""><strong>Set this when:</strong> the parent is cross-origin
|
|
43
|
+
<li class=""><strong>Default:</strong> auto-detected when the parent uses <code>buildLogRocketQueryParams</code> (covers cross-origin embeds reliably). Same-origin parents are also detected automatically.</li>
|
|
44
|
+
<li class=""><strong>Set this when:</strong> the parent is cross-origin and does <strong>not</strong> call <code>buildLogRocketQueryParams</code>. Otherwise leave unset.</li>
|
|
47
45
|
<li class=""><strong>Format:</strong> a full origin (e.g. <code>https://parent.example.com</code>). Bare hostnames or URLs with paths are dropped with a warning.</li>
|
|
48
|
-
<li class=""><strong>Note:</strong> do not set this on a top-level page (no
|
|
46
|
+
<li class=""><strong>Note:</strong> do not set this on a top-level page (no parent) — it would tell LogRocket to wait on a parent that doesn't exist and stall session start.</li>
|
|
49
47
|
</ul>
|
|
50
48
|
</li>
|
|
51
49
|
<li class=""><code>rootHostname</code> (string, optional): Cookie scope for stitching sessions across subdomains of the <strong>same site</strong> (see <a href="https://docs.logrocket.com/reference/roothostname" target="_blank" rel="noopener noreferrer" class="">LogRocket docs</a>).<!-- -->
|
|
@@ -58,34 +56,13 @@
|
|
|
58
56
|
</li>
|
|
59
57
|
</ul>
|
|
60
58
|
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="proxying-logrocket-calls-through-cdn-domain">Proxying LogRocket Calls Through CDN Domain<a href="#proxying-logrocket-calls-through-cdn-domain" class="hash-link" aria-label="Direct link to Proxying LogRocket Calls Through CDN Domain" title="Direct link to Proxying LogRocket Calls Through CDN Domain" translate="no"></a></h2>
|
|
61
|
-
<p>
|
|
62
|
-
<
|
|
63
|
-
<p>When the library detects it was loaded from a matching CDN domain (e.g., <code>cdn.mortgagetech.d1.ice.com</code>), it automatically:</p>
|
|
64
|
-
<ol>
|
|
65
|
-
<li class="">Sets <code>window._lrAsyncScript</code> to load the LogRocket logger script from the CDN domain instead of LogRocket's default CDN</li>
|
|
66
|
-
<li class="">Sets <code>ingestServer</code> to the CDN domain so all LogRocket data ingestion calls are routed through it</li>
|
|
67
|
-
</ol>
|
|
68
|
-
<p>The CDN domain is auto-detected from the script source URL. For example, if the library is loaded via:</p>
|
|
69
|
-
<div class="language-html codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-html codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">script</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">src</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">https://cdn.mortgagetech.d1.ice.com/logrocket/logrocket.umd.js</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">></span><span class="token script"></span><span class="token tag punctuation" style="color:#393A34"></</span><span class="token tag" style="color:#00009f">script</span><span class="token tag punctuation" style="color:#393A34">></span><br></span></code></pre></div></div>
|
|
70
|
-
<p>All LogRocket traffic will be proxied through <code>https://cdn.mortgagetech.d1.ice.com</code>.</p>
|
|
71
|
-
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="cdn-domain-detection">CDN Domain Detection<a href="#cdn-domain-detection" class="hash-link" aria-label="Direct link to CDN Domain Detection" title="Direct link to CDN Domain Detection" translate="no"></a></h3>
|
|
72
|
-
<p>The library resolves the CDN domain using the following precedence:</p>
|
|
73
|
-
<ol>
|
|
74
|
-
<li class=""><strong><code>window.emui.cdnDomain</code></strong> — if set before the library loads, this value is used directly</li>
|
|
75
|
-
<li class=""><strong>Script source URL</strong> — if the script was loaded from a URL matching <code>cdn.mortgagetech.*.ice.com</code> or <code>localhost</code>, the origin is extracted automatically</li>
|
|
76
|
-
<li class=""><strong>Default fallback</strong> — <code>https://cdn.mortgagetech.ice.com</code> is used when <code>window.emui.cdnDomain</code> is not set and no script source is detected</li>
|
|
77
|
-
</ol>
|
|
78
|
-
<p>When loaded from <code>localhost</code>, the CDN domain falls back to <code>https://cdn.mortgagetech.d1.ice.com</code>.</p>
|
|
59
|
+
<p>LogRocket script loading and data ingestion are proxied through the UI Platform CDN (<code>cdn.mortgagetech.*.ice.com</code>) instead of LogRocket's own servers. This improves ad-blocker resilience and complies with policies that restrict traffic to internal domains.</p>
|
|
60
|
+
<p>The CDN domain is auto-detected when the library is loaded from a CDN URL or <code>localhost</code>. No configuration is needed in that case.</p>
|
|
79
61
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="setting-cdn-domain-for-bundled-npm-usage">Setting CDN Domain for Bundled (npm) Usage<a href="#setting-cdn-domain-for-bundled-npm-usage" class="hash-link" aria-label="Direct link to Setting CDN Domain for Bundled (npm) Usage" title="Direct link to Setting CDN Domain for Bundled (npm) Usage" translate="no"></a></h3>
|
|
80
|
-
<p>
|
|
81
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">cdnDomain</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'https://cdn.mortgagetech.q1.ice.com'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">//
|
|
62
|
+
<p>When the library is imported as an npm package, auto-detection cannot run. Set <code>window.emui.cdnDomain</code> to the correct environment before the library loads:</p>
|
|
63
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">cdnDomain</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'https://cdn.mortgagetech.q1.ice.com'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// d1, q1, etc.</span><br></span></code></pre></div></div>
|
|
82
64
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="verifying-proxying-in-browser-devtools">Verifying Proxying in Browser DevTools<a href="#verifying-proxying-in-browser-devtools" class="hash-link" aria-label="Direct link to Verifying Proxying in Browser DevTools" title="Direct link to Verifying Proxying in Browser DevTools" translate="no"></a></h3>
|
|
83
|
-
<p>
|
|
84
|
-
<ol>
|
|
85
|
-
<li class=""><strong>Script loading</strong> — a request to <code>https://cdn.mortgagetech.<env>.ice.com/logrocket/logger-1.min.js</code> instead of LogRocket's default CDN (<code>cdn.lr-in-prod.com</code>)</li>
|
|
86
|
-
<li class=""><strong>Data ingestion</strong> — subsequent requests (XHR/Fetch) going to <code>https://cdn.mortgagetech.<env>.ice.com/i?...</code> instead of <code>r.lr-in-prod.com</code></li>
|
|
87
|
-
</ol>
|
|
88
|
-
<p>If you see requests going to <code>cdn.lr-in-prod.com</code> or <code>r.lr-in-prod.com</code>, proxying is not active. Verify that <code>window.emui.cdnDomain</code> is set correctly or that the library is being loaded from the CDN.</p>
|
|
65
|
+
<p>In the <strong>Network</strong> tab, requests should go to <code>https://cdn.mortgagetech.<env>.ice.com/...</code> rather than <code>cdn.lr-in-prod.com</code> or <code>r.lr-in-prod.com</code>. If they don't, set <code>window.emui.cdnDomain</code> or load the library from the CDN.</p>
|
|
89
66
|
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="testing-logrocket-integration-from-localhost">Testing LogRocket Integration from Localhost<a href="#testing-logrocket-integration-from-localhost" class="hash-link" aria-label="Direct link to Testing LogRocket Integration from Localhost" title="Direct link to Testing LogRocket Integration from Localhost" translate="no"></a></h2>
|
|
90
67
|
<p>When developing locally, you may want to test LogRocket integration. There are two ways to enable LogRocket on localhost:</p>
|
|
91
68
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="option-1-environment-variable">Option 1: Environment Variable<a href="#option-1-environment-variable" class="hash-link" aria-label="Direct link to Option 1: Environment Variable" title="Direct link to Option 1: Environment Variable" translate="no"></a></h3>
|
|
@@ -116,81 +93,34 @@
|
|
|
116
93
|
</li>
|
|
117
94
|
</ol>
|
|
118
95
|
<p>OneTrust should be integrated only in the root microapplication. Child microapplications (e.g., iframes) do not need to integrate with OneTrust directly, as they will inherit the consent status from the root microapplication via URL query parameters (see "Sharing LogRocket information with child micro applications" section below).</p>
|
|
119
|
-
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="onetrust-
|
|
120
|
-
<p>
|
|
121
|
-
<p
|
|
122
|
-
<ul>
|
|
123
|
-
<li class="">The library first checks if the C0002 consent group is already active in <code>window.OnetrustActiveGroups</code></li>
|
|
124
|
-
<li class="">If C0002 is already present (non-rejectable, as in internal apps like EncompassWeb/TPO), LogRocket initializes immediately without waiting for banner interaction</li>
|
|
125
|
-
<li class="">If C0002 is not yet active, the library listens for the <code>OTConsentApplied</code> event, which fires when the user first interacts with the consent banner (Accept/Decline)</li>
|
|
126
|
-
<li class="">LogRocket initializes immediately after the user makes their choice</li>
|
|
127
|
-
</ul>
|
|
128
|
-
<p><strong>Returning visitors</strong> (has <code>OptanonAlertBoxClosed</code> cookie):</p>
|
|
129
|
-
<ul>
|
|
130
|
-
<li class="">The library listens for the <code>OneTrustGroupsUpdated</code> event</li>
|
|
131
|
-
<li class="">This event fires when OneTrust SDK loads and updates the consent groups</li>
|
|
132
|
-
<li class="">LogRocket initializes once the consent groups are available</li>
|
|
133
|
-
</ul>
|
|
134
|
-
<p><strong>Timeout fallback</strong>:</p>
|
|
135
|
-
<ul>
|
|
136
|
-
<li class="">If the expected OneTrust event (<code>OTConsentApplied</code> or <code>OneTrustGroupsUpdated</code>) is not received within 10 seconds, the library initializes LogRocket with the current consent state and logs a warning</li>
|
|
137
|
-
<li class="">This prevents LogRocket from being permanently blocked if the OneTrust SDK fails to load or fire events</li>
|
|
138
|
-
</ul>
|
|
139
|
-
<p><strong>Init failure recovery</strong>:</p>
|
|
140
|
-
<ul>
|
|
141
|
-
<li class="">If LogRocket initialization fails (e.g., due to a network error or invalid configuration), the <code>isLogRocketInitialized</code> flag is reset to <code>false</code>, allowing a retry on the next call to <code>initLogRocket</code></li>
|
|
142
|
-
</ul>
|
|
143
|
-
<p>This event-based approach ensures that:</p>
|
|
144
|
-
<ul>
|
|
145
|
-
<li class="">LogRocket only initializes when consent status is available</li>
|
|
146
|
-
<li class="">Internal apps with non-rejectable consent groups initialize immediately</li>
|
|
147
|
-
<li class="">First-time users of consumer apps see immediate feedback when they consent</li>
|
|
148
|
-
<li class="">Returning users get automatic initialization without re-showing the banner</li>
|
|
149
|
-
<li class="">The integration is resilient to OneTrust SDK failures via the timeout fallback</li>
|
|
150
|
-
</ul>
|
|
151
|
-
<p>The library automatically applies privacy-focused defaults including:</p>
|
|
152
|
-
<ul>
|
|
153
|
-
<li class="">Input sanitization using 'lipsum' method for all form inputs</li>
|
|
154
|
-
<li class="">Text sanitization to protect sensitive text content (<code>textSanitizer: true</code>)</li>
|
|
155
|
-
<li class="">Hidden ARIA attributes to prevent accessibility-related PII exposure</li>
|
|
156
|
-
<li class="">Network request/response body sanitization</li>
|
|
157
|
-
</ul>
|
|
158
|
-
<p>You can read more about the compliance features and data sanitization measures in the <a class="" href="/logrocket/compliance">Compliance Guide</a>.</p>
|
|
96
|
+
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="onetrust-integration">OneTrust Integration<a href="#onetrust-integration" class="hash-link" aria-label="Direct link to OneTrust Integration" title="Direct link to OneTrust Integration" translate="no"></a></h3>
|
|
97
|
+
<p>When OneTrust is present, the library waits for the user's consent decision before initializing LogRocket. Both first-time visitors (waits for the consent banner) and returning visitors (uses cached consent) are handled automatically — there's nothing for the consuming app to wire up. If OneTrust signals don't arrive within 10 seconds, the library initializes with whatever consent state is available so LogRocket isn't blocked indefinitely.</p>
|
|
98
|
+
<p>The library also applies privacy-focused defaults (input/text sanitization, hidden ARIA attributes, network body redaction). See the <a class="" href="/logrocket/compliance">Compliance Guide</a> for details.</p>
|
|
159
99
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="overriding-session-recording-consent-check">Overriding Session Recording Consent Check<a href="#overriding-session-recording-consent-check" class="hash-link" aria-label="Direct link to Overriding Session Recording Consent Check" title="Direct link to Overriding Session Recording Consent Check" translate="no"></a></h3>
|
|
160
|
-
<p>
|
|
161
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token
|
|
162
|
-
<p>
|
|
100
|
+
<p>For local development, set <code>window.emui.dangerouslyOverrideSessionRecordingConsent</code> to <code>true</code> before calling <code>initLogRocket</code> to force session recording on regardless of OneTrust consent. A console warning is logged whenever this override takes effect.</p>
|
|
101
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dangerouslyOverrideSessionRecordingConsent</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
|
|
102
|
+
<p><strong>Only <code>true</code> overrides consent.</strong> Any other value — including <code>false</code> — is a no-op: the library falls through to the normal consent sources (OneTrust C0003, <code>analyticsConsent</code> URL parameter, iframe <code>src</code> parameter), which can still grant consent on their own.</p>
|
|
103
|
+
<p>⚠️ <strong>Use only for local development and testing.</strong> This bypasses compliance controls and must never be set in production.</p>
|
|
163
104
|
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="sharing-information-with-child-micro-applications">Sharing information with child micro applications<a href="#sharing-information-with-child-micro-applications" class="hash-link" aria-label="Direct link to Sharing information with child micro applications" title="Direct link to Sharing information with child micro applications" translate="no"></a></h2>
|
|
164
|
-
<p>LogRocket
|
|
165
|
-
<p>
|
|
166
|
-
<p><code>buildLogRocketQueryParams</code> function generates URL query parameters that contain following information to share with child micro applications as part of the iframe URL:</p>
|
|
105
|
+
<p>LogRocket is initialized in each micro application independently. The <code>buildLogRocketQueryParams</code> utility lets a parent share its LogRocket configuration and consent state with child micro applications (e.g. iframes) via URL query parameters, so children inherit the right setup without hardcoding it. It also lets interoperable children work under different parents (Encompass, TPO, etc.) without changes.</p>
|
|
106
|
+
<p>The function returns the following query parameters for inclusion in the child's iframe URL:</p>
|
|
167
107
|
<ul>
|
|
168
|
-
<li class=""><strong><code>analyticsConsent</code></strong>:
|
|
169
|
-
<li class=""><strong><code>lrEnabled</code></strong>:
|
|
170
|
-
<li class=""><strong><code>lrAppId</code></strong>:
|
|
171
|
-
<li class=""><strong><code>lrParentOrigin</code></strong>:
|
|
108
|
+
<li class=""><strong><code>analyticsConsent</code></strong>: <code>'true'</code> if the user consented to functional cookies, else <code>'false'</code>.</li>
|
|
109
|
+
<li class=""><strong><code>lrEnabled</code></strong>: <code>'true'</code> if LogRocket is enabled in the parent, else <code>'false'</code>.</li>
|
|
110
|
+
<li class=""><strong><code>lrAppId</code></strong>: the LogRocket application ID used by the parent.</li>
|
|
111
|
+
<li class=""><strong><code>lrParentOrigin</code></strong>: the parent's <code>origin</code> (e.g. <code>https://parent-app.example.com</code>). The child reads this to populate <code>parentDomain</code> for cross-origin session linking.</li>
|
|
172
112
|
</ul>
|
|
173
|
-
<p><strong>Important</strong>:
|
|
174
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token
|
|
175
|
-
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="parent-domain-resolution-in-the-child">Parent Domain Resolution in the Child<a href="#parent-domain-resolution-in-the-child" class="hash-link" aria-label="Direct link to Parent Domain Resolution in the Child" title="Direct link to Parent Domain Resolution in the Child" translate="no"></a></h3>
|
|
176
|
-
<p>The child uses the following precedence to resolve LogRocket's <code>parentDomain</code> option (used for cross-origin postMessage session linking):</p>
|
|
177
|
-
<ol>
|
|
178
|
-
<li class=""><strong><code>lrParentOrigin</code></strong> query parameter on the child's URL (or on <code>window.frameElement.src</code>) — set by the parent via <code>buildLogRocketQueryParams</code>. This is the only source that works reliably cross-origin and should be the primary mechanism.</li>
|
|
179
|
-
<li class=""><strong><code>window.parent.location.origin</code></strong> — works only when the parent is same-origin.</li>
|
|
180
|
-
<li class=""><strong><code>document.referrer</code></strong> — best-effort fallback; may be stripped by <code>Referrer-Policy</code> to an opaque value or empty string.</li>
|
|
181
|
-
</ol>
|
|
182
|
-
<p>A self-referential value (the resolved origin equals the child's own origin) is suppressed <strong>only when the page is top-level</strong> (<code>window === window.top</code>); on a true top-level page there is no real parent and pointing LogRocket at itself would block session start. When the page is running inside an iframe, the resolved value is kept even if it matches the child's own origin so same-origin children can still link to their parent's session. If no source produces a valid origin, <code>parentDomain</code> is left unset and LogRocket treats the page as top-level.</p>
|
|
113
|
+
<p><strong>Important</strong>: call this after <code>initLogRocket</code> so the returned values reflect the parent's actual init state (the parent's consent and enabled state are captured at init time and reused here, so they stay consistent even if the user changes consent later).</p>
|
|
114
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> buildLogRocketQueryParams </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> urlParams </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">buildLogRocketQueryParams</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// "analyticsConsent=true&lrEnabled=true&lrAppId=your-app-id&lrParentOrigin=https%3A%2F%2Fparent-app.example.com"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> childUrl </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string string" style="color:#e3116c">https://child-app.example.com?</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation">urlParams</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// launch guest application with childUrl using SSF V2 / App SDK GuestMicroapp</span><br></span></code></pre></div></div>
|
|
183
115
|
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="support-for-legacy-angularjs-microapps-in-iframes">Support for Legacy AngularJS Microapps in Iframes<a href="#support-for-legacy-angularjs-microapps-in-iframes" class="hash-link" aria-label="Direct link to Support for Legacy AngularJS Microapps in Iframes" title="Direct link to Support for Legacy AngularJS Microapps in Iframes" translate="no"></a></h3>
|
|
184
|
-
<p>For
|
|
185
|
-
<p><strong>Consent Check Priority</strong> (
|
|
116
|
+
<p>For legacy AngularJS microapps running inside iframes, the library reads <code>analyticsConsent</code> from the iframe's <code>src</code> URL as a fallback so they inherit consent without code changes.</p>
|
|
117
|
+
<p><strong>Consent Check Priority</strong> (highest to lowest):</p>
|
|
186
118
|
<ol>
|
|
187
119
|
<li class=""><strong>OneTrust consent groups</strong> (when OneTrust is loaded)</li>
|
|
188
120
|
<li class=""><strong>Current window URL</strong> <code>analyticsConsent</code> parameter</li>
|
|
189
|
-
<li class=""><strong>Iframe src URL</strong> <code>analyticsConsent</code> parameter (
|
|
190
|
-
<li class=""><strong>Default</strong>: <code>false</code
|
|
121
|
+
<li class=""><strong>Iframe src URL</strong> <code>analyticsConsent</code> parameter (legacy fallback)</li>
|
|
122
|
+
<li class=""><strong>Default</strong>: <code>false</code></li>
|
|
191
123
|
</ol>
|
|
192
|
-
<
|
|
193
|
-
<p><strong>Example for legacy iframe-based microapps:</strong></p>
|
|
194
|
-
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// The iframe's src URL will be checked automatically</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// No additional code needed in the child microapp</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34"><</span><span class="token plain">iframe src</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"https://legacy-app.com/app?analyticsConsent=true&lrAppId=my-app"</span><span class="token operator" style="color:#393A34">></span><span class="token operator" style="color:#393A34"><</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">iframe</span><span class="token operator" style="color:#393A34">></span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_x8Bu"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_xpf_" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_QUoF"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/logrocket/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/logrocket/compliance"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Compliance Requirements</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_YLGy thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#initialization" class="table-of-contents__link toc-highlight">Initialization</a><ul><li><a href="#preventing-duplicate-initialization" class="table-of-contents__link toc-highlight">Preventing Duplicate Initialization</a></li><li><a href="#window-variables" class="table-of-contents__link toc-highlight">Window Variables</a></li></ul></li><li><a href="#proxying-logrocket-calls-through-cdn-domain" class="table-of-contents__link toc-highlight">Proxying LogRocket Calls Through CDN Domain</a><ul><li><a href="#how-it-works" class="table-of-contents__link toc-highlight">How It Works</a></li><li><a href="#cdn-domain-detection" class="table-of-contents__link toc-highlight">CDN Domain Detection</a></li><li><a href="#setting-cdn-domain-for-bundled-npm-usage" class="table-of-contents__link toc-highlight">Setting CDN Domain for Bundled (npm) Usage</a></li><li><a href="#verifying-proxying-in-browser-devtools" class="table-of-contents__link toc-highlight">Verifying Proxying in Browser DevTools</a></li></ul></li><li><a href="#testing-logrocket-integration-from-localhost" class="table-of-contents__link toc-highlight">Testing LogRocket Integration from Localhost</a><ul><li><a href="#option-1-environment-variable" class="table-of-contents__link toc-highlight">Option 1: Environment Variable</a></li><li><a href="#option-2-configuration-flag" class="table-of-contents__link toc-highlight">Option 2: Configuration Flag</a></li></ul></li><li><a href="#controlling-session-recording-based-on-user-consent" class="table-of-contents__link toc-highlight">Controlling Session Recording Based on User Consent</a><ul><li><a href="#two-level-consent-control" class="table-of-contents__link toc-highlight">Two-Level Consent Control</a></li><li><a href="#onetrust-event-based-integration" class="table-of-contents__link toc-highlight">OneTrust Event-Based Integration</a></li><li><a href="#overriding-session-recording-consent-check" class="table-of-contents__link toc-highlight">Overriding Session Recording Consent Check</a></li></ul></li><li><a href="#sharing-information-with-child-micro-applications" class="table-of-contents__link toc-highlight">Sharing information with child micro applications</a><ul><li><a href="#parent-domain-resolution-in-the-child" class="table-of-contents__link toc-highlight">Parent Domain Resolution in the Child</a></li><li><a href="#support-for-legacy-angularjs-microapps-in-iframes" class="table-of-contents__link toc-highlight">Support for Legacy AngularJS Microapps in Iframes</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/logrocket/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
|
|
124
|
+
<div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// No code change needed in the child microapp; the library reads it automatically.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34"><</span><span class="token plain">iframe src</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"https://legacy-app.com/app?analyticsConsent=true&lrAppId=my-app"</span><span class="token operator" style="color:#393A34">></span><span class="token operator" style="color:#393A34"><</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">iframe</span><span class="token operator" style="color:#393A34">></span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_x8Bu"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_xpf_" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_QUoF"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/logrocket/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/logrocket/compliance"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Compliance Requirements</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_YLGy thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#initialization" class="table-of-contents__link toc-highlight">Initialization</a><ul><li><a href="#preventing-duplicate-initialization" class="table-of-contents__link toc-highlight">Preventing Duplicate Initialization</a></li><li><a href="#window-variables" class="table-of-contents__link toc-highlight">Window Variables</a></li></ul></li><li><a href="#proxying-logrocket-calls-through-cdn-domain" class="table-of-contents__link toc-highlight">Proxying LogRocket Calls Through CDN Domain</a><ul><li><a href="#setting-cdn-domain-for-bundled-npm-usage" class="table-of-contents__link toc-highlight">Setting CDN Domain for Bundled (npm) Usage</a></li><li><a href="#verifying-proxying-in-browser-devtools" class="table-of-contents__link toc-highlight">Verifying Proxying in Browser DevTools</a></li></ul></li><li><a href="#testing-logrocket-integration-from-localhost" class="table-of-contents__link toc-highlight">Testing LogRocket Integration from Localhost</a><ul><li><a href="#option-1-environment-variable" class="table-of-contents__link toc-highlight">Option 1: Environment Variable</a></li><li><a href="#option-2-configuration-flag" class="table-of-contents__link toc-highlight">Option 2: Configuration Flag</a></li></ul></li><li><a href="#controlling-session-recording-based-on-user-consent" class="table-of-contents__link toc-highlight">Controlling Session Recording Based on User Consent</a><ul><li><a href="#two-level-consent-control" class="table-of-contents__link toc-highlight">Two-Level Consent Control</a></li><li><a href="#onetrust-integration" class="table-of-contents__link toc-highlight">OneTrust Integration</a></li><li><a href="#overriding-session-recording-consent-check" class="table-of-contents__link toc-highlight">Overriding Session Recording Consent Check</a></li></ul></li><li><a href="#sharing-information-with-child-micro-applications" class="table-of-contents__link toc-highlight">Sharing information with child micro applications</a><ul><li><a href="#support-for-legacy-angularjs-microapps-in-iframes" class="table-of-contents__link toc-highlight">Support for Legacy AngularJS Microapps in Iframes</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/logrocket/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
|
|
195
125
|
</body>
|
|
196
126
|
</html>
|
package/dist/cjs/logrocket.js
CHANGED
|
@@ -253,11 +253,11 @@ const isLogRocketDisabled = () => {
|
|
|
253
253
|
return false;
|
|
254
254
|
};
|
|
255
255
|
const hasUserConsentedToSessionRecording = () => {
|
|
256
|
-
if (
|
|
256
|
+
if (window.emui?.dangerouslyOverrideSessionRecordingConsent === true) {
|
|
257
257
|
getLogger().warn(
|
|
258
258
|
"Using dangerouslyOverrideSessionRecordingConsent - this should only be used for testing purposes"
|
|
259
259
|
);
|
|
260
|
-
return
|
|
260
|
+
return true;
|
|
261
261
|
}
|
|
262
262
|
if (window.OnetrustActiveGroups) {
|
|
263
263
|
return getActiveConsentGroups().includes("C0003");
|
package/dist/esm/logrocket.js
CHANGED
|
@@ -217,11 +217,11 @@ const isLogRocketDisabled = () => {
|
|
|
217
217
|
return false;
|
|
218
218
|
};
|
|
219
219
|
const hasUserConsentedToSessionRecording = () => {
|
|
220
|
-
if (
|
|
220
|
+
if (window.emui?.dangerouslyOverrideSessionRecordingConsent === true) {
|
|
221
221
|
getLogger().warn(
|
|
222
222
|
"Using dangerouslyOverrideSessionRecordingConsent - this should only be used for testing purposes"
|
|
223
223
|
);
|
|
224
|
-
return
|
|
224
|
+
return true;
|
|
225
225
|
}
|
|
226
226
|
if (window.OnetrustActiveGroups) {
|
|
227
227
|
return getActiveConsentGroups().includes("C0003");
|
package/dist/public/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.b05aab66ef02cf198fdf.js"></script></head><body><h1>LogRocket Test</h1><button id="testButton">Click me</button></body></html>
|