Files
soleprint/docs/data/en/station.md
2026-04-14 10:32:05 -03:00

2.4 KiB

Station

Station is the execution system. It runs tools, monitors environments, and bundles them into composable desks.

Centro de control -- the control center.


Hierarchy

Station components scale from single-purpose to composed:

Tool ──────► Desk
│            │
│            └── Composed: Cabinet + Room + Depots
│
└── Standalone executable (tester, datagen, modelgen, graphgen)

Monitor ─── Long-running observer (databrowse)

Tool -- a standalone executable that does one job. Generates data, runs tests, produces models. Each tool works independently and can be invoked via web UI or CLI.

Monitor -- a long-running observer. Connects to a data source and provides a browsing or query interface. Always on, not invoked per-task.

Desk -- a composed execution bundle. Combines a cabinet (tool configuration), a room, and depots (data sources) into a ready-to-run environment.

Tools

Tool Status Description
Tester live HTTP contract test runner, multi-environment, BDD/Gherkin
Datagen live Test data generator using faker
Modelgen dev Generate models from JSON Schema (Pydantic, Django, Prisma)
Graphgen planned Supabase-style interactive DB schema visualization

Monitors

Monitor Status Description
Databrowse ready SQL data browser

Structure

station/
├── tools/
│   ├── tester/        # HTTP contract testing
│   ├── datagen/       # Test data generation
│   ├── modelgen/      # Model generation from schema
│   └── graphgen/      # Schema visualization (planned)
├── monitors/
│   └── databrowse/    # SQL data browser
└── desks/             # Composed execution bundles

Room Configuration

Tools and monitors follow the same split as all soleprint systems. Core logic lives in soleprint/station/. Room-specific configuration lives in cfg/<room>/soleprint/station/.

cfg/<room>/soleprint/station/
├── tools/
│   ├── tester/tests/      # Room-specific test cases
│   └── datagen/           # Room-specific data generators
└── monitors/
    └── databrowse/depot/  # Room-specific schema and views

The build merges both into gen/<room>/.