Gap
Generator types are defined as enums (NAME, EMAIL, PHONE, ADDRESS, SSN, CREDIT_CARD, DATE, UUID, CONSTANT, NULL, CUSTOM) but there is no execution logic that transforms data.
No GeneratorService, GeneratorExecutor, or equivalent class exists.
JobService fetches generators from the database but never applies them:
val generators = columnGeneratorRepository.findByTableConfigurationId(tableConfig.id)
val data = sourceConnector.fetchData(tableConfig.tableName, ...)
addLog(jobId, "Masking ${data.size} rows ... with ${generators.size} generator(s)", LogLevel.INFO)
// ← no actual masking/generation happens
Affected files:
backend/src/main/kotlin/com/opendatamask/model/ColumnGenerator.kt
backend/src/main/kotlin/com/opendatamask/service/JobService.kt
Required Work
- Create a
GeneratorService (or GeneratorExecutor) that applies each GeneratorType to column values.
- Integrate a faker / data-generation library (e.g. datafaker) for realistic synthetic data.
- Implement each generator type:
NAME, EMAIL, PHONE, ADDRESS, SSN, CREDIT_CARD, DATE, UUID, CONSTANT, NULL, CUSTOM.
- Support
generatorParams (JSON configuration per column) for customization.
- Wire
GeneratorService into JobService.processTable() so masked/generated rows are produced before writing to the destination.
Gap
Generator types are defined as enums (
NAME,EMAIL,PHONE,ADDRESS,SSN,CREDIT_CARD,DATE,UUID,CONSTANT,NULL,CUSTOM) but there is no execution logic that transforms data.No
GeneratorService,GeneratorExecutor, or equivalent class exists.JobServicefetches generators from the database but never applies them:Affected files:
backend/src/main/kotlin/com/opendatamask/model/ColumnGenerator.ktbackend/src/main/kotlin/com/opendatamask/service/JobService.ktRequired Work
GeneratorService(orGeneratorExecutor) that applies eachGeneratorTypeto column values.NAME,EMAIL,PHONE,ADDRESS,SSN,CREDIT_CARD,DATE,UUID,CONSTANT,NULL,CUSTOM.generatorParams(JSON configuration per column) for customization.GeneratorServiceintoJobService.processTable()so masked/generated rows are produced before writing to the destination.