Your first schema
We will build a customer list: an id, a name, an email, a signup date, and a status - then make the ids unique and hand the whole thing to someone else.
In the application
- Add a column. It starts as a
Guidnamedcolumn1. Rename it tocustomer_id. - Change a type. Click the column's type to open the picker, search for
Full Name, and choose it for a second column namedname. - Open a column's settings. Some types take options - a
Pick Listneeds its values, aDatehas a range. The settings panel opens beside the column and stays open while you work. - Set the row count and seed at the top. Fix the seed: it is what makes the run repeatable.
- Generate. Choose an output path and format, and run it.
The preview beside each column shows what that column will produce, which is usually faster than generating to find out.
The same thing as a file
Output:
Path: customers.csv
Format: CSV
Schema:
RowCount: 1000
GlobalSeed: 20260822
Columns:
- Id: 7e57d004-2b97-0e7a-b45f-5387367791cd
Name: customer_id
Generator:
Type: Guid
- Id: 7e57d004-2b97-0e7a-b45f-5387367791ce
Name: name
Generator:
Type: Full Name
- Id: 7e57d004-2b97-0e7a-b45f-5387367791cf
Name: email
Generator:
Type: Email
- Id: 7e57d004-2b97-0e7a-b45f-5387367791d0
Name: signed_up
Generator:
Type: Date
Settings:
Min: 2023-01-01
Max: 2026-06-30
IncludeTime: false
- Id: 7e57d004-2b97-0e7a-b45f-5387367791d1
Name: status
Generator:
Type: Pick List
Settings:
ValueType: String
Values:
- Active
- Pending review
- Closedhippodatamus-cli --config customers.yamlMake the ids unique
Mark the column Unique in the application, or add a constraint to the file:
Schema:
UniqueConstraints:
- - 7e57d004-2b97-0e7a-b45f-5387367791cdUniqueness is checked before the run starts, against how many distinct values the column can actually produce. Ask for 1,000 unique values from a list of three and you are told immediately. See Uniqueness.
A column that helps but does not appear
Sometimes you need a value to build another value, but not in the output. Mark it excluded from output: it still generates, templates can still reference it, constraints still apply, and it simply is not written.
- Name: n
IsExcludedFromOutput: true
Generator:
Type: Sequential Id
- Name: account
Generator:
Type: Template
Settings:
Template: "ACC-{n:00000}"Hand it over
Send the .yaml. Not the seed - the file, because column ids take part in the seed.
If the schema reads an external spreadsheet, export a bundle instead and send that one file.