Documentation Index

Fetch the complete documentation index at: https://knowledge.curiositysoftware.ie/llms.txt

Use this file to discover all available pages before exploring further.

Masking EDI Files

Prev Next

This guide describes the end-to-end process for masking sensitive information inside EDI files using Curiosity Test Data Management (TDM). It is intended for technical users who already have a working knowledge of the platform — navigating projects, data lists, and activities.

Overview

EDI file masking in Curiosity TDM is driven by two artefacts working together:

  • A masking rules data list that defines, per transaction type and per element, which masking function to apply.

  • The Mask EDI Files pipeline activity, which reads source EDI files, applies the rules from the data list, and writes the masked output to the configured folder.

In practice the workflow has two phases: configure (or extend) the masking rules in the data list, then run the pipeline against a specific transaction type and EDI file.

Key Concepts

The masking rules data list

Each row in the data list represents a single rule and is keyed by the columns shown below. When the pipeline encounters a matching segment in an EDI file, it applies the function named in the csi_function column to the targeted element.

Column

Purpose

transaction_type

EDI transaction set the rule applies to (e.g. EDI_834, EDI_820, EDI_276).

loop_segment_id / loop_qualifier

Identifies the loop the target segment lives in. Empty when the rule applies to a top-level segment.

segment_id

Segment containing the value to mask (NM1, DMG, ISA, REF, N3, …).

qualifier

Qualifier that disambiguates the segment, e.g. IL (insured), QC (patient), 03 (dependent).

position

1-based index of the element within the segment.

element

EDI element identifier targeted (NM103, NM104, NM105, DMG02, ISA15, …).

algorithm_reference_name

Internal reference to the masking algorithms imported

csi_function

The function actually executed at runtime. This is the value most commonly edited when extending the rules — see the function reference below.

Common csi_function values

Function

Behaviour

ReplaceAlphanum

Replaces the element with a randomly generated alphanumeric value of equivalent length and shape. Used for generic identifiers (REF02, N3xx numeric globals).

FirstName

Replaces the element with a realistic first name. Typical target: NM104 on member/dependent NM1 loops.

LastName

Replaces the element with a realistic last name. Typical target: NM103.

AddRandomPeriodToDate

Shifts a date by a random interval while preserving format. Typical target: DMG02 (date of birth).

UPPER

Forces the element to upper case. Typical target: ISA15 (usage indicator).

Phase 1 — Configure the Masking Rules Data List

The data list lives under Modelling > Data Lists. The example in this guide uses the EDI Masking rules list.

1. Open the masking rules data list

  1. Navigate to Modelling > Data Lists and open the EDI Masking rules list

  2. Confirm the Contents pane shows the existing rule columns: transaction_type, loop_segment_id, loop_qualifier, segment_id, qualifier, position, element, algorithm_reference_name, csi_function.

A screenshot of a computer  AI-generated content may be incorrect.

2. Upload a CSV of rules for the transaction type

  1. Click Upload (top right of the Contents pane).

A screenshot of a computer  AI-generated content may be incorrect.

  1. In the Choose CSV to Upload dialog, click Choose file and select the rules CSV (e.g. EDI_834.csv).

A screenshot of a computer  AI-generated content may be incorrect.

  1. Choose the merge mode:

    • Append List — adds the new rows alongside existing rules. Use this when extending coverage to an additional transaction type.

  2. Click OK to commit the upload. The new rows appear in the Contents pane and are tagged with the relevant transaction_type.

3. Apply masking functions to the new rows

Newly uploaded rows will normally have algorithm_reference_name populated but csi_function empty. The csi_function value drives runtime behaviour, so each new row must be assigned a function.

Procedure (repeat for each function in your new rows):

  1. Locate an existing row whose algorithm_reference_name matches the new row

A screenshot of a computer  AI-generated content may be incorrect.

  1. Click the cell in the csi_function column and press Ctrl+C.

  2. Click the empty csi_function cell on the new row and press Ctrl+V.

  3. Repeat for every empty csi_function cell in the new rows.

  4. Once every new row has a csi_function value, the data list is ready to drive a pipeline run.

Phase 2 — Run the Mask EDI Files Pipeline

1. Open the activity

  1. In the left navigation, expand Enterprise Test Data > Data Activities and click Activity Explorer.

  2. In the Context tree, drill into the location where Mask EDI Files pipeline is present.

Click "Mask EDI Files"

  1. On the Details pane, click on the blue Execute button under Actions for the Pipeline Model (In this scenario at the bottom of the components)

2. Trigger a run

  1. From the pipeline graph view, click the green Run button in the top toolbar.

  2. In the Submit form dialog, leave the form selected as Mask EDI Files and click OK.

Click run

3. Configure the masking run

The Mask EDI Files form (General EDI Masking Utility, 5 fields) captures the run-time parameters:

Field

Value / notes

The Transaction Type in the Masking Configuration

Pick the transaction set you are masking, e.g. EDI_834. The dropdown is populated from the transaction_type values present in the rules data list.

EDI Folder Path

Filesystem path containing the source EDI files. Defaults to C:\VIPWork\EDI\EDIMask. Adjust if your environment uses a different location.

Search Pattern

Glob applied within the folder. Defaults to *.edi. Use a more specific pattern (e.g. T834*.edi) if you need to scope the run.

Or Upload an EDI File

Use this when you want to mask a single file uploaded ad-hoc, bypassing the folder/pattern. Click Choose file and select the source .edi file

Override Run ID

Optional. Set when you need to correlate this execution with an external job ID; leave blank to auto-generate.

Remove any Internal Data after the Mask

Leave checked (default) so that intermediate scratch data is cleaned up after the run. Uncheck only when debugging the pipeline itself.

SeaTunnel Folder Containing Scripts

Defaults to C:\VIPWork\SeaTunnelTemplates\EDILists\. This is the location of the SeaTunnel job templates the pipeline orchestrates; change only if your install uses a custom path.

Click this text field.

  1. Click OK to execute.

  2. Monitor progress on the Runs tab of the activity. Masked output is written back to the EDI Folder Path (or the SeaTunnel-configured output sub-folder, depending on your template).

Verifying the Output

  • Open one of the masked .edi files and confirm that values targeted by the rules have been replaced (names, dates, ISA15 usage indicator, numeric identifiers).

  • Confirm that segments and elements not covered by any rule remain unchanged — this is the easiest way to catch a missing rule.

  • Check the run log for any WARN or ERROR entries. Common causes are missing csi_function values (the rule is silently skipped) and inaccessible EDI / SeaTunnel folders.

Troubleshooting

Symptom

Likely cause / fix

Run completes but a known field is not masked

The rule row exists but csi_function is empty. Open the data list and paste the appropriate function value into the cell.

Transaction type missing from the dropdown

No rows in the rules data list have that transaction_type. Upload the CSV for that transaction type (Phase 1, step 2).

Run fails immediately

EDI Folder Path or SeaTunnel folder does not exist on the host. Verify the paths and that the TDM service account has read/write access.

Dates masked to invalid values

DMG02 rule is using ReplaceAlphanum instead of AddRandomPeriodToDate. Correct the csi_function value on that row.

Pipeline appears to do nothing

Search Pattern does not match any file in the EDI Folder Path, or the uploaded ad-hoc file was discarded. Re-check the pattern, or use Or Upload an EDI File to bypass the folder scan.