- veins → shunts rename - add cfg/standalone/ and cfg/<room>/ structure - remove old data/*.json (moved to cfg/<room>/data/) - update build.py and ctrl scripts
151 lines
4.0 KiB
Markdown
151 lines
4.0 KiB
Markdown
# Soleprint
|
|
|
|
> Cada paso deja huella / Each step leaves a mark
|
|
|
|
Development workflow platform. Run, test, and document everything in one place.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build standalone
|
|
python build.py dev
|
|
cd gen/standalone && .venv/bin/python run.py
|
|
|
|
# Build with room config
|
|
python build.py dev --cfg amar
|
|
cd gen/amar && .venv/bin/python run.py
|
|
|
|
# Visit http://localhost:12000
|
|
```
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
# Build
|
|
python build.py dev # → gen/standalone/
|
|
python build.py dev --cfg amar # → gen/amar/
|
|
python build.py dev --all # → both
|
|
|
|
# ctrl scripts
|
|
./ctrl/build.sh # Build standalone
|
|
./ctrl/build.sh amar # Build amar
|
|
./ctrl/build.sh --all # Build all
|
|
|
|
./ctrl/start.sh # Start standalone (Docker)
|
|
./ctrl/start.sh amar # Start amar
|
|
./ctrl/start.sh -d # Detached
|
|
./ctrl/stop.sh # Stop
|
|
./ctrl/logs.sh # View logs
|
|
```
|
|
|
|
## Adding a New Managed Room
|
|
|
|
1. Create room config directory:
|
|
```bash
|
|
mkdir -p cfg/clientx
|
|
```
|
|
|
|
2. Add required files:
|
|
```
|
|
cfg/clientx/
|
|
├── .env.example # Environment template
|
|
├── docker-compose.yml # Room services (optional)
|
|
├── databrowse/depot/ # Database schemas (optional)
|
|
├── tester/tests/ # Room-specific tests (optional)
|
|
├── monitors/ # Room-specific monitors (optional)
|
|
├── models/ # Room-specific models (optional)
|
|
└── data/ # Room-specific data files (optional)
|
|
├── depots.json # Doc depots for Atlas
|
|
└── shunts.json # Mock connectors
|
|
```
|
|
|
|
3. Build and run:
|
|
```bash
|
|
python build.py dev --cfg clientx
|
|
./ctrl/start.sh clientx
|
|
```
|
|
|
|
## Systems
|
|
|
|
| | System | What it does |
|
|
|---|--------|--------------|
|
|
| 👣 | **Soleprint** | Core coordinator, routing, landing page |
|
|
| 💉 | **Artery** | Connectors to external services (Jira, Slack, Google) |
|
|
| 🗺️ | **Atlas** | Actionable documentation (BDD, Gherkin, specs) |
|
|
| 🎛️ | **Station** | Tools (modelgen, tester) and monitors (databrowse) |
|
|
|
|
## Structure
|
|
|
|
```
|
|
spr/
|
|
├── build.py # Build tool
|
|
├── cfg/ # Room configurations
|
|
│ ├── soleprint.config.json
|
|
│ └── amar/ # AMAR room config
|
|
├── ctrl/ # Docker scripts
|
|
│
|
|
├── artery/ # Connectors
|
|
│ ├── veins/ # Jira, Slack, Google
|
|
│ ├── shunts/ # Fake connectors for testing
|
|
│ └── plexus/ # Full apps (backend + frontend)
|
|
│
|
|
├── atlas/ # Documentation
|
|
│ └── books/ # Soleprint docs only
|
|
│
|
|
├── station/ # Tools & monitors
|
|
│ ├── tools/ # modelgen, tester, datagen
|
|
│ └── monitors/ # databrowse
|
|
│
|
|
├── soleprint/ # Core (versioned)
|
|
│
|
|
├── gen/ # Built instances (gitignored)
|
|
│ ├── standalone/ # Base soleprint
|
|
│ └── amar/ # With amar config
|
|
│
|
|
└── mainroom/ # Orchestration with managed room
|
|
├── amar -> cfg/amar
|
|
├── soleprint/ # Soleprint Docker config
|
|
└── ctrl/ # start, stop, deploy scripts
|
|
```
|
|
|
|
## Artery Hierarchy
|
|
|
|
```
|
|
Vein ──► Pulse ──► Plexus
|
|
│ │ │
|
|
│ │ └── Full app (backend + frontend + DB)
|
|
│ └── Composed (Vein + Room + Depot)
|
|
└── Stateless API connector
|
|
|
|
Shunt ── Fake connector for testing
|
|
```
|
|
|
|
## Ports
|
|
|
|
| Service | Port |
|
|
|---------|------|
|
|
| Soleprint | 12000 |
|
|
| Amar Backend | 8000 |
|
|
| Amar Frontend | 3000 |
|
|
|
|
## Tools
|
|
|
|
| Tool | Purpose |
|
|
|------|---------|
|
|
| modelgen | Generate models from config |
|
|
| tester | BDD/playwright test runner |
|
|
| datagen | Test data generation |
|
|
| databrowse | SQL data browser |
|
|
|
|
## Veins
|
|
|
|
| Vein | Auth |
|
|
|------|------|
|
|
| jira | Token |
|
|
| slack | Token |
|
|
| google | OAuth2 |
|
|
|
|
---
|
|
|
|
*Built for small teams who need to move fast without breaking things.*
|