Simulation@1
The Simulation@1
node is used to generate realistic test data using various simulators. It can generate everything from random numbers and addresses to complex energy metering data.
Adapter Prerequisites
- General availability: All adapters support this node type.
Node Configuration
transformations:
- type: Simulation@1
locale: "en" # Optional: Locale for data generation (default: "en")
simulations:
- targetPath: $.customer.firstName # Path where the generated value should be stored
simulatorKey: Person.FirstName # The simulator to use (see complete list below)
configuration: "{}" # Optional: JSON configuration for the simulator
- targetPath: $.customer.age
simulatorKey: Math.IntRandom
configuration: "{\"min\": 18, \"max\": 80}"
- targetPath: $.energy.meteringPoint
simulatorKey: Energy.MeteringPointNumber
configuration: "{\"length\": 33, \"countryCode\": \"AT\"}"
Configuration Properties
Property | Type | Required | Description |
---|---|---|---|
locale | string | No | Locale for data generation (default: "en"). Affects language-specific data like names, addresses |
simulations | array | Yes | List of simulation configurations |
simulations[].targetPath | string | Yes | JSONPath where the generated value should be stored |
simulations[].simulatorKey | string | Yes | Identifier for the simulator to use |
simulations[].configuration | string | No | JSON string with simulator-specific options (default: "") |
Available Simulators
This implementation is based on Bogus with additional custom generators.
Address Simulators
# Basic address components
- simulatorKey: Address.Country
- simulatorKey: Address.CountryCode
- simulatorKey: Address.ZipCode
- simulatorKey: Address.City
- simulatorKey: Address.StreetAddress
- simulatorKey: Address.StreetName
- simulatorKey: Address.BuildingNumber
Person Simulators
# Basic person data
- simulatorKey: Person.FirstName
- simulatorKey: Person.LastName
- simulatorKey: Person.FullName
- simulatorKey: Person.Email
- simulatorKey: Person.UserName
- simulatorKey: Person.Avatar
- simulatorKey: Person.Phone
- simulatorKey: Person.DateOfBirth
- simulatorKey: Person.Gender
# Company information (consistent per person instance)
- simulatorKey: Person.Company.Name
- simulatorKey: Person.Company.CatchPhrase
- simulatorKey: Person.Company.Bs
# Address information (consistent per person instance)
- simulatorKey: Person.Address.Street
- simulatorKey: Person.Address.State
- simulatorKey: Person.Address.Suite
- simulatorKey: Person.Address.City
- simulatorKey: Person.Address.ZipCode
- simulatorKey: Person.Address.Geo.Lat
- simulatorKey: Person.Address.Geo.Lng
Energy Simulators
# Metering point numbers for energy systems
- simulatorKey: Energy.MeteringPointNumber
configuration: |
{
"length": 33, # Total length of the number (default: 31)
"countryCode": "AT" # Country code prefix (default: "AT")
}
# Random timestamps for energy data
- simulatorKey: Energy.DateTime
configuration: |
{
"startDate": "2024-01-01T00:00:00.000Z", # Start date (ISO format)
"endDate": "2024-12-31T23:59:59.999Z" # End date (ISO format)
}
Math Simulators
# Sine wave generator
- simulatorKey: Math.Sinus
configuration: |
{
"amplitude": 1.0, # Wave amplitude (default: 1)
"frequency": 1.0 # Wave frequency (default: 1)
}
# Triangle wave generator
- simulatorKey: Math.Triangle
configuration: |
{
"amplitude": 1.0, # Wave amplitude (default: 1)
"frequency": 1.0 # Wave frequency (default: 1)
}
# Constant value generator
- simulatorKey: Math.Constant
configuration: |
{
"amplitude": 1 # Constant value to return (default: 1)
}
# Random integer generator
- simulatorKey: Math.IntRandom
configuration: |
{
"min": 1, # Minimum value (default: 1)
"max": 100 # Maximum value (default: 100)
}
# Random double generator
- simulatorKey: Math.DoubleRandom
configuration: |
{
"min": 1.0, # Minimum value (default: 1.0)
"max": 100.0 # Maximum value (default: 100.0)
}
Text Simulators
# Lorem ipsum word generator
- simulatorKey: Text.Lorem.Word
configuration: |
{
"count": 3 # Number of words to generate (default: 1)
}
Behavior Notes
- Person Data Consistency: Person-related simulators maintain consistency within a single node execution. If you generate
Person.FirstName
andPerson.LastName
in the same simulation node, they will belong to the same virtual person. - Wave Generators: Math.Sinus and Math.Triangle generators use the current system time to generate time-based wave patterns.
- Locale Support: The locale parameter affects language-specific data generation. Supported locales depend on the Bogus library.
- Energy Numbers: The Energy.MeteringPointNumber generator creates realistic metering point identifiers commonly used in European energy systems.
Example Use Cases
Complete Customer Profile
- type: Simulation@1
locale: "de"
simulations:
- targetPath: $.customer.firstName
simulatorKey: Person.FirstName
- targetPath: $.customer.lastName
simulatorKey: Person.LastName
- targetPath: $.customer.email
simulatorKey: Person.Email
- targetPath: $.customer.age
simulatorKey: Math.IntRandom
configuration: "{\"min\": 18, \"max\": 80}"
- targetPath: $.customer.address.street
simulatorKey: Person.Address.Street
- targetPath: $.customer.address.city
simulatorKey: Person.Address.City
- targetPath: $.customer.company
simulatorKey: Person.Company.Name
Energy Meter Data
- type: Simulation@1
simulations:
- targetPath: $.meter.meteringPointId
simulatorKey: Energy.MeteringPointNumber
configuration: "{\"length\": 33, \"countryCode\": \"AT\"}"
- targetPath: $.meter.timestamp
simulatorKey: Energy.DateTime
configuration: "{\"startDate\": \"2024-01-01T00:00:00.000Z\", \"endDate\": \"2024-12-31T23:59:59.999Z\"}"
- targetPath: $.meter.consumption
simulatorKey: Math.DoubleRandom
configuration: "{\"min\": 0.1, \"max\": 15.0}"
Time Series Data
- type: Simulation@1
simulations:
- targetPath: $.signal.sineWave
simulatorKey: Math.Sinus
configuration: "{\"amplitude\": 10, \"frequency\": 0.5}"
- targetPath: $.signal.triangleWave
simulatorKey: Math.Triangle
configuration: "{\"amplitude\": 5, \"frequency\": 1.0}"
- targetPath: $.signal.noise
simulatorKey: Math.DoubleRandom
configuration: "{\"min\": -0.5, \"max\": 0.5}"