FakeDataDSL REPL Quick Reference

Command Aliases

Alias Full Command Description
g gen Generate JSON records
t table Generate table-formatted output
d debug Step-through debug generation
i inspect Detailed record inspection
l list List loaded schemas
h help Show help
q quit Exit REPL

Common Commands

Loading Schemas

load schemas/              # Load all .dsl files from directory
load schemas/user.dsl     # Load single file

Generating Data

gen User                   # Generate 1 record (JSON)
gen User 10                # Generate 10 records (JSON)
g User 100                 # Using alias

table User                 # Generate 1 record (table view)
table User 5               # Generate 5 records (table view)
t User 20                  # Using alias

Debugging

debug User                 # Step through field generation
d Order                    # Using alias

Inspection

inspect User               # Detailed view with statistics
i User                     # Using alias

Configuration

seed 42                    # Set seed for reproducibility
mode edge                  # Set generation mode
mode hostile               # Security testing mode

Available modes: random, edge, invalid, hostile, mixed

Export to File

gen User 100 > users.json        # Export JSON
table User 10 > users.txt        # Export table
gen Order 50 > orders.json       # Any schema works

Tab Completion

  • Press Tab to auto-complete commands
  • Press Tab after command to complete schema names
  • Arrow keys navigate command history

Generation Modes

Mode Description
random Standard realistic data (default)
edge Boundary values and edge cases
invalid Invalid data for validation testing
hostile Security payloads (SQL injection, XSS, etc.)
mixed Combination: 80% random, 15% edge, 5% invalid

Example Session

fake_data_dsl> load schemas/
✅ Loaded 5 schema(s)

fake_data_dsl> l
Loaded schemas:
  - User
  - Order
  - Item
  - Payment
  - Address

fake_data_dsl> seed 42
✅ Seed set to 42

fake_data_dsl> g User
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "John Doe",
  "email": "john.doe@example.com",
  "age": 34
}

fake_data_dsl> t User 3
  id                                   │ name          │ email                    │ age
  ─────────────────────────────────────┼───────────────┼──────────────────────────┼─────
  550e8400-e29b-41d4-a716-446655440000 │ John Doe      │ john.doe@example.com     │ 34
  6ba7b810-9dad-11d1-80b4-00c04fd430c8 │ Jane Smith    │ jane.smith@example.com   │ 28
  6ba7b811-9dad-11d1-80b4-00c04fd430c8 │ Bob Wilson    │ bob.wilson@example.com   │ 45

fake_data_dsl> g User 100 > users.json
✅ Exported to users.json (12450 bytes)

fake_data_dsl> mode hostile
✅ Mode set to hostile

fake_data_dsl> g User
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "' OR '1'='1",
  "email": "<script>alert('XSS')</script>@test.com",
  "age": 2147483647
}

fake_data_dsl> q
Goodbye!

Tips

  1. Deterministic Output: Use seed <number> before generating to get reproducible results
  2. Quick Testing: Use t alias for fast visual inspection
  3. Bulk Export: Use > to save large datasets to files
  4. Security Testing: Use mode hostile to generate attack payloads
  5. Debug Issues: Use d to step through generation field-by-field

Error Recovery

If you mistype a command or schema name, the REPL will suggest corrections:

fake_data_dsl> gen Usr
❌ Schema 'Usr' not found
Did you mean: User?

fake_data_dsl> tabl User
Unknown command: tabl
Did you mean: table?