<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Custom Mapping Configuration on</title><link>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/</link><description>Recent content in Custom Mapping Configuration on</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>Domain Matching Rules</title><link>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/domain_matching_rules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/domain_matching_rules/</guid><description>&lt;h2 id="exact-match-rules-config-does-not-start-with-">Exact Match Rules (config does NOT start with &lt;code>*&lt;/code>)&lt;/h2>
&lt;h3 id="config-examplecom">Config: &lt;code>example.com&lt;/code>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Hostname (from URL)&lt;/th>
 &lt;th>Matches?&lt;/th>
 &lt;th>Reason&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Exact&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>www.example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>&lt;code>www.&lt;/code> stripped → &lt;code>example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>example.com/about&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Path ignored; hostname = &lt;code>example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>example.com/login?next=/&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Query ignored; hostname = &lt;code>example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>hr.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Only &lt;code>www.&lt;/code> is stripped; &lt;code>hr.&lt;/code> is not&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>sub.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Subdomain not stripped&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>app.hr.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Multi-level subdomain, no match&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>notexample.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Different hostname&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>example.com.evil.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Normalized to &lt;code>example.com.evil.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="config-wwwexamplecom">Config: &lt;code>www.example.com&lt;/code>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Hostname&lt;/th>
 &lt;th>Matches?&lt;/th>
 &lt;th>Reason&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Config strips &lt;code>www.&lt;/code> → &lt;code>example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>www.example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Both strip &lt;code>www.&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>hr.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>&lt;code>hr.example.com !== example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>www.hr.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Strips to &lt;code>hr.example.com !== example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="config-hrexamplecom">Config: &lt;code>hr.example.com&lt;/code>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Hostname&lt;/th>
 &lt;th>Matches?&lt;/th>
 &lt;th>Reason&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>hr.example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>Exact&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>www.hr.example.com&lt;/code>&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>&lt;code>www.&lt;/code> stripped → &lt;code>hr.example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Parent domain, not matched&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>other.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Sibling subdomain&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>app.hr.example.com&lt;/code>&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>Child subdomain; only &lt;code>www.&lt;/code> is stripped&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="wildcard-rules-config-starts-with-">Wildcard Rules (config starts with &lt;code>*&lt;/code>)&lt;/h2>
&lt;p>Both &lt;code>*example.com&lt;/code> and &lt;code>*.example.com&lt;/code> normalize to base &lt;code>example.com&lt;/code>.&lt;/p></description></item><item><title>Sibling Match Criteria</title><link>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/sibling_match/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/sibling_match/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>Sibling matching is configured through &lt;code>siblingMatchCriteria&lt;/code> on a mapping entry. It is a context filter: your primary mapping still finds candidate elements, and &lt;code>siblingMatchCriteria&lt;/code> decides whether each candidate should be unprotected based on what appears near it.&lt;/p>
&lt;p>Use it when:&lt;/p>
&lt;ul>
&lt;li>The same target element pattern appears in multiple places on a page&lt;/li>
&lt;li>Only one section should be unprotected&lt;/li>
&lt;li>A nearby label or marker identifies the correct context&lt;/li>
&lt;/ul>
&lt;h3 id="how-to-think-about-it">How to Think About It&lt;/h3>
&lt;p>Treat it as an &amp;ldquo;anchor&amp;rdquo; check:&lt;/p></description></item><item><title>Table Column Unprotection</title><link>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/table_column/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/browser-protector/latest/docs/customization/detection_hierarchy/custom_mapping_configuration/table_column/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>The Table Column Unprotection feature allows you to target entire table columns using &lt;code>columnMatchCriteria&lt;/code> on a mapping entry. Rather than creating selector-based rules that match individual cells row by row, you define a single column mapping that identifies the column by its header label and automatically unprotects all qualifying data cells beneath it.&lt;/p>
&lt;p>This is ideal for:&lt;/p>
&lt;ul>
&lt;li>Protecting sensitive columns in data tables (email, phone, SSN, etc.)&lt;/li>
&lt;li>Avoiding repetitive selector rules when the same column appears across multiple page layouts&lt;/li>
&lt;li>Working with component-based tables (e.g., Salesforce Lightning) where cell markup is complex and nested&lt;/li>
&lt;/ul>
&lt;h3 id="how-it-works-from-configuration-to-unprotection">How It Works: From Configuration to Unprotection&lt;/h3>
&lt;p>When a mapping entry includes &lt;code>columnMatchCriteria&lt;/code>, the unprotection process follows these steps:&lt;/p></description></item></channel></rss>