Table of Contents

Configuration

Universal Data Generator takes two inputs: the catalog and a run configuration. The catalog is the menu you choose from. The run configuration is the order you place.

The catalog

The catalog is JSON embedded in UniDataGen.Configuration, with no dependency on a spreadsheet. CatalogStore.Load() builds the catalog from these embedded resources:

Resource Contents
industries.json The industries you can select.
source-types.json The source-system types (code, type, description).
storage.json The storage target names.
entities.json The entities (schema area, name, display name, description, base entity).
attributes.json.gz The full attribute schema per entity (datatype, purpose, nullability), gzip-compressed.

The attributes.json data drives value generation: each attribute's CDM datatype and purpose decide whether the engine stamps the field or asks Foundry for it. The catalog is built once and cached.

Note: The attribute schema is large (over one hundred thousand attributes), so it ships gzip-compressed and is decompressed on first access.

To change the catalog, edit the JSON resources under src/UniDataGen.Configuration/Resources and rebuild. The industry and entity lists are also surfaced by ReferenceCatalog and used by the configuration editor as validated dropdowns.

The run configuration

The run configuration is a JSON document with three parts: the run header, the entity profiles, and the targets. See Run configuration for the full reference, and samples/run-config.sample.json for a complete example.

The run header names one industry and one source type. The loader validates them against the catalog, so a typo fails at load rather than mid-run.

Environment variables

Variable Used by Purpose
APPLICATIONINSIGHTS_CONNECTION_STRING All hosts Routes logs to Application Insights.
DATAGEN_CONFIG Functions host Path to the run configuration.
DATAGEN_OFFLINE Functions host Set to true to skip Foundry and use placeholder values.

Next steps