> For the complete documentation index, see [llms.txt](https://docs.guardware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.guardware.com/documentation/management-console/data-governance/data-type.md).

# Data Type

Data Type defines the kind of information GuardWare detects, monitors, and protects during scans and policy enforcement. Each data type represents a rule, pattern, or phrase used to identify sensitive and confidential content within files.

GuardWare includes a built-in library of predefined data types covering common sensitive information categories, including:

* Payment Card Industry (PCI) data (credit card numbers, CVV codes, cardholder names, transaction data)
* Personally Identifiable Information (PII) (social security numbers, driver's licence numbers, passport numbers, names, email addresses, phone numbers, residential addresses)
* Protected Health Information (PHI) (medical record numbers, health insurance details, diagnosis and treatment information, prescription data)
* Sensitive Personal Information (SPI) (racial or ethnic origin, religious beliefs, biometric data, sexual orientation)

You can use these predefined data types as-is, or create custom data types for information specific to your organisation, such as employee ID number formats, internal project code patterns, proprietary document naming conventions, or confidential business terminology.

## Create a Data Type

If the predefined data types in GuardWare's library don't cover the sensitive information unique to your organisation, you can create your own custom data types that GuardWare can detect.

{% stepper %}
{% step %}

### General Information

1. Navigate to **DATA GOVERNANCE** > **Data Type** and click **+Data Type**.
2. In **Data Type Name**, enter a clear, descriptive name for this data type. For example: "Employee ID Numbers", "Project Code", "Confidential Contract Terms".

<figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FHK0KMohSaF4IlGthbIp8%2Fimage.png?alt=media&amp;token=d7a67a0a-7980-4902-b128-6225db7916f4" alt="" width="563"><figcaption></figcaption></figure>

3. In **Description** (optional), add details about what this data type represents and why it's sensitive. This helps other administrators understand the purpose of this data type.
   {% endstep %}

{% step %}

### Select a Data Identifier

1. The **Data Identifier** determines how GuardWare recognises this type of sensitive content. Choose one of three methods from the drop-down menu:

{% hint style="success" icon="sparkles" %}
Click the tabs below to view the relevant content, or use the links provided here to navigate to the desired section.

* [**Sensitive Words**](#sensitive-words)
* [**Regular Expressions (regex)**](#regular-expressions-regex)
* [**Filename Expressions**](#filename-expressions)
  {% endhint %}

{% tabs %}
{% tab title="Sensitive Words" %}
Use this method when sensitive content can be identified by the presence of specific words or phrases. This is useful for detecting proprietary terminology, confidential project names, or classification markings. GuardWare offers three conditions for how sensitive words must appear:

1. **All Phrases Condition:** Select this when ALL specified phrases must appear together in a document for it to be flagged as sensitive. Type each phrase in the input field and press **Enter** to add it to the list. Repeat for each phrase that must be present.

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2Fjx36y4GEt3mcqbtpFP6k%2Fimage.png?alt=media&amp;token=19d69e24-b144-46a2-8e5b-e9613ff6701e" alt=""><figcaption></figcaption></figure>

   **Example:** A document is only considered sensitive if it contains ALL of these phrases: "Project Alpha", "Q4 2025", "Confidential Revenue".
2. **At Least (n) Phrases Condition:** Select this when a minimum number of phrases must be present for the content to be flagged. Add each phrase and press **Enter** to include it. After adding all phrases, specify the minimum number that must appear.

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2Ft6ITNUdnosFyVIuixQtp%2Fimage.png?alt=media&amp;token=2d7b2594-ad20-4ebe-abef-3f405aa7b0fc" alt=""><figcaption></figcaption></figure>

   **Example:** Flag documents containing at least 3 of these 5 terms: "merger", "acquisition", "due diligence", "confidential", "NDA".
3. **None of the Phrases Condition:** Select this to specify phrases that must NOT appear. If any of these phrases are found, the content will NOT be considered sensitive (even if other conditions are met). Enter each exclusionary phrase and press **Enter**.<br>

   <div align="left"><figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2F3bUlDu507THg6aDCx0Ql%2Fimage.png?alt=media&amp;token=296f83c7-1ba4-4282-a25e-6bb0d8216c76" alt=""><figcaption></figcaption></figure></div>

   **Example:** Don't flag documents as sensitive if they contain "public announcement" or "press release", even if they contain other sensitive terms.
4. **Context Parameters for Sensitive Words:**
   1. **Context Length:** Defines how many words before and after the detected sensitive word should be captured in the results. This helps you review the surrounding text to determine if the detection is genuinely sensitive or a false positive.

      <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2Fm6yYF4seL7rEW1bhRbtb%2Fimage.png?alt=media&amp;token=22a036ea-c34d-49da-84a7-2039d394305f" alt=""><figcaption></figcaption></figure>

      Select a number between 1 and 20 from the drop-down (typically, 3-6 words provide good context). Example: If Context Length is set to 3 and the sensitive phrase is "Employee ID 12345", the result might show: `... is assigned to Employee ID 12345 for the upcoming...`
   2. **Number of Hits:** Specifies how many occurrences of the sensitive word must be present before the document is flagged in results. This reduces noise from documents that only mention sensitive terms once in passing.

      <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FsE5ecNz8zFyhsYYjGknH%2Fimage.png?alt=media&amp;token=5bcce39a-1c96-44ef-9335-dd19fe35b61f" alt=""><figcaption></figcaption></figure>

      Enter the number of times the sensitive content must appear (between 1 and 100). Example: If set to 5, clicking **View Result** will only show instances where the sensitive data appears 5 or more times in the document.
      {% endtab %}

{% tab title="Regular Expressions (regex)" %}
Regular expressions (regex) are pattern-matching rules ideal for detecting structured data. Use this method for sensitive data that follows specific patterns or formats such as employee IDs (e.g., EMP-2024-0001), product codes (e.g., PROD-ABC-12345), custom reference numbers, or any structured identifier unique to your organisation.\
\
To create a Regular expression, in the **Regular Expression** field, enter your pattern using standard regex syntax. Common patterns may include:\
Employee ID (EMP followed by year and number): `EMP-\d{4}-\d{4}` This matches: EMP-2024-0001, EMP-2025-0234, etc.\
Australian Business Number (ABN, 11 digits): `\d{2}\s\d{3}\s\d{3}\s\d{3}` This matches: 51 824 753 556.\
Product Code (PROD-3 letters-5 digits): `PROD-[A-Z]{3}-\d{5}` This matches: PROD-ABC-12345, PROD-XYZ-99999.

<figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FOfO2HMp162GgUfwV05zC%2Fimage.png?alt=media&amp;token=0d4910a2-18b3-431d-9059-2b697ee28a24" alt="" width="480"><figcaption></figcaption></figure>

In the **Test Text** field, enter sample text that should match your pattern. Always test your regex with multiple examples to ensure it captures what you intend without generating false positives.\
Click **+Validate** to check if your regex correctly identifies the pattern. DISCOVER will notify you of matches, confirming your pattern works as intended.

<figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FZlCyvEymnieWCNLtE95f%2Fimage.png?alt=media&amp;token=b230ab12-615e-4e65-9788-acb4bc35f262" alt="" width="480"><figcaption></figcaption></figure>

1. **Additional Options:**\
   \
   **Space Before/After:** Enable these options if you want DISCOVER to only match the pattern when it has a space before and/or after it. This reduces false positives by ensuring the match is a complete word or code and not part of a larger string.

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FXeqDqbmoPbFTqrcsuUvG%2Fimage.png?alt=media&amp;token=cbab7a77-cb77-4351-acac-1a268e49b87f" alt=""><figcaption></figcaption></figure>

   **Example:** If searching for "EMP-1234", enabling "space required" prevents matching within "TEMP-1234-SAMPLE".<br>

   <table><thead><tr><th width="230.666748046875" align="center">Checksum</th><th>Description</th></tr></thead><tbody><tr><td align="center">Luhn</td><td>Validates numbers using the Luhn algorithm, commonly used for credit card numbers.</td></tr><tr><td align="center">Turkish ID (T.C. Kimlik No.)</td><td>Validates Turkish national identity numbers.</td></tr><tr><td align="center">Mod 97</td><td>Validates numbers using a modulus 97 check, commonly used in IBAN validation.</td></tr><tr><td align="center">Mod 11 Standard</td><td>Validates numbers using a standard modulus 11 check.</td></tr><tr><td align="center">Mod 11 Dual</td><td>Validates numbers using a dual modulus 11 check, applying two weighting passes.</td></tr><tr><td align="center">Mod 10 Weighted (1-3)</td><td>Validates numbers using a modulus 10 check with alternating 1 and 3 weights.</td></tr><tr><td align="center">Mod 37</td><td>Validates numbers using a modulus 37 check.</td></tr><tr><td align="center">Mod 31</td><td>Validates numbers using a modulus 31 check.</td></tr><tr><td align="center">Mod 23</td><td>Validates numbers using a modulus 23 check.</td></tr><tr><td align="center">TC Custom (×7)</td><td>Validates numbers using a custom modulus 7 based check.</td></tr><tr><td align="center">Mod 11 Transliteration</td><td>Validates numbers using a modulus 11 check with character transliteration applied before validation.</td></tr><tr><td align="center">SEDOL Weighted</td><td>Validates SEDOL codes, used to identify securities listed in the UK and Ireland.</td></tr><tr><td align="center">Codice Fiscale</td><td>Validates the Italian tax code (Codice Fiscale).</td></tr><tr><td align="center">ISO 7064 MOD 11-10</td><td>Validates numbers using the ISO 7064 MOD 11-10 check digit standard.</td></tr><tr><td align="center">INSEE Mod 97</td><td>Validates French INSEE numbers using a modulus 97 check.</td></tr><tr><td align="center">DEA Checksum (Custom Weighted)</td><td>Validates numbers using a custom weighted check based on the US DEA registration number format.</td></tr><tr><td align="center">CUSIP-like Mod 10 (Weighted)</td><td>Validates numbers using a weighted modulus 10 check, similar to the CUSIP standard used for North American securities.</td></tr><tr><td align="center">Damm Algorithm</td><td>Validates numbers using the Damm algorithm, a quasigroup-based check digit method.</td></tr><tr><td align="center">Verhoeff Algorithm</td><td>Validates numbers using the Verhoeff algorithm, a dihedral group-based check digit method.</td></tr><tr><td align="center">Australian Medicare</td><td>Validates Australian Medicare card numbers.</td></tr></tbody></table>

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FmLqIxyp11ybb7M9ikslV%2Fimage.png?alt=media&amp;token=ef28044b-6478-4ec2-9262-468c74649903" alt="" width="480"><figcaption></figcaption></figure>
2. **Context Parameters for Regular Expressions:**
   1. **Masking:** Determines how much of the detected sensitive data is concealed in reports and dashboards. This protects the actual sensitive content while still showing that it was found. Select **Hide rule from Rule Violation screen** and choose a level from the drop-down:

      <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2Fgo74c94DoHaL9iRu5CxF%2Fimage.png?alt=media&amp;token=cec21b7d-068b-495a-8575-780f7131875a" alt="" width="563"><figcaption></figcaption></figure>

      \
      **None:** Complete data is visible (use with caution)\
      **1/4 Mask:** 25% of the data is hidden. Example: "EMP-2024-0001" becomes "EMP-2024-00\*\*"\
      **1/2 Mask:** 50% of the data is hidden. Example: "EMP-2024-0001" becomes "EMP-20\*\*-\*\*\*\*"\
      **3/4 Mask:** 75% of the data is hidden. Example: "EMP-2024-0001" becomes "EMP-\*\*\*\*-\*\*\*\*"
      {% endtab %}

{% tab title="Filename Expressions" %}
Use this method to identify sensitive data based on file naming patterns rather than file contents, such as files starting with `Confidential_`, `HR_`, or `Financial_Report`, files in specific directories with standard names, or document types where the filename itself indicates sensitivity. This is useful when your organisation uses specific naming conventions for confidential documents.

<figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2Fn0O3rVqVpJyKv0eid8gT%2Fimage.png?alt=media&amp;token=9f510203-e9d3-40d3-aeb3-54ea78897782" alt="" width="563"><figcaption></figcaption></figure>

In the **Add Expression** field, type or select a filename pattern using wildcards. Click the **(**<i class="fa-plus-large">:plus-large:</i>**) button** to add the expression to the list. You can add multiple filename expressions.\
\
**Common Filename Patterns:**

<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><em>.</em></td><td>Matches all files.</td></tr><tr><td>*.docx</td><td>Matches all Microsoft Word documents.</td></tr><tr><td>Tender*.xlsx</td><td>Matches all Excel files starting with “Tender”.</td></tr><tr><td>\192.168.1.1\folder*.*</td><td>Scans all files within the specified shared folder path.</td></tr><tr><td><em>Confidential</em>.pdf</td><td>Matches any PDF with "Confidential" in the filename: Report_Confidential_2024.pdf, Confidential_Contract.pdf, etc.</td></tr></tbody></table>

1. **Return File Content for Violated Rules:**\
   Select **On** if you want DISCOVER to show sensitive information inside the selected wildcard file. Otherwise, select **Off.**<br>

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2F0Sp9Y6ltAhiXMNPMMkNn%2Fimage.png?alt=media&amp;token=873987d1-e8d3-477f-998f-e283fc0704c4" alt="" width="434"><figcaption></figcaption></figure>
2. **Wildcard Reference:**\
   `*` (asterisk): Matches any number of any characters\
   `?` (question mark): Matches exactly one character.\
   \
   **Examples:** Report\_202?.docx matches Report\_2024.docx, Report\_2025.docx, but not Report\_2026.docx if the pattern is specifically looking for a single digit. `HR_????.xlsx` matches HR\_2024.xlsx, HR\_ABCD.xlsx (any 4 characters after HR\_).
   {% endtab %}
   {% endtabs %}
   {% endstep %}

{% step %}

### Complete General Information&#x20;

After selecting and configuring your Data Identifier (Sensitive Words, Regular Expressions, or Filename Expressions), complete the rest of the General Information section:

1. From the **Classification** drop-down, select which sensitivity level this data type belongs to (e.g., Public, Internal, Confidential, Secret). This determines how GuardWare prioritises and handles files containing this data type.
2. From the **Data Owner(s)** drop-down, select one or more people who should be notified when this data type is discovered. You can assign multiple data owners to a single data type; all assigned owners will receive alerts.

If you don't see the data owner you need, you must first create them in the [**Add Data Owner**](#add-data-owner) guide.
{% endstep %}

{% step %}

### Configure Subtypes (Optional)

Subtypes let you refine a data type's detection by combining it with other existing data types. This narrows results and reduces false positives by requiring additional criteria alongside the parent data type.

![](https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FSIZcM4aKbEHdkr8Ciecb%2FUnknown%20image?alt=media\&token=56d81965-99cf-4fc5-82d6-2133965d5712)

GuardWare offers two subtype conditions:

* **Subtype If Present**: Select existing data subtypes from the drop-down and press Enter to add each one. Reports will only be generated if all selected subtypes are found in the file, alongside the parent data type. This creates a strict detection rule.
* **Any Matching Subtype**: Select existing data subtypes from the drop-down and press Enter to add each one. Reports will be generated if any one of the selected subtypes is found in the file. This is a more permissive rule.

As you add subtypes, they appear on the right under two lists:

* **All Matching Subtypes** for subtypes added under **Subtype If Present**.
* **Any Matching Subtypes** for subtypes added under **If One or More Subtypes**.&#x20;

Each subtype appears as a tag; click **×** next to it to remove it.

1. Click **Save** to create the data type. The data type is now active and will be used in future scans.
   {% endstep %}

{% step %}

### Configure Context Parameters

{% endstep %}
{% endstepper %}

## Assign Data Classification

The Assign Data Classification feature allows you to assign a classification label to one or multiple data types.

1. Navigate to **DATA GOVERNANCE** > **Data Type**.
2. In the data types list, check the boxes next to one or more data types that should belong to the same classification.<br>

   <figure><img src="https://3428346635-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUWYzeE1fa6LGkJgqgik%2Fuploads%2FCvIZh0FGMXs7dvFF6bQx%2Fimage.png?alt=media&amp;token=b8e29bbe-4511-48bb-a4d9-044bc6beabcf" alt="" width="563"><figcaption></figcaption></figure>
3. Click **Assign Data Classification**.
4. From the drop-down menu, select the available classification you want to assign to the selected data types and click **Assign**.

## Edit Data Types

Update an existing data type to change how GuardWare detects it, correct a pattern that's producing false positives, adjust the classification or data owners, or refine detection by adding or removing subtypes, without having to recreate the data type from scratch.

1. Navigate to **DATA GOVERNANCE** > **Data Type**.
2. Click the edit icon <i class="fa-pencil">:pencil:</i> of the data type you want to modify.
3. Add or update the values, identifiers, or parameters.
4. Click **Save**.

## Delete Data Types

Remove a data type that's no longer needed, permanently deleting it from GuardWare's library so it's no longer used in future scans.

1. Navigate to **DATA GOVERNANCE** > **Data Type**.
2. Click the edit icon <i class="fa-pencil">:pencil:</i> of the data type you want to modify.
3. Add or update the values, identifiers, or parameters.
4. Click **Save**.

## Import/Export Data Types


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.guardware.com/documentation/management-console/data-governance/data-type.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
