spr migrated books, and tester
This commit is contained in:
152
README.md
152
README.md
@@ -2,19 +2,19 @@
|
||||
|
||||
> Cada paso deja huella / Each step leaves a mark
|
||||
|
||||
Development workflow and documentation platform. Run, test, and document everything in one place.
|
||||
Development workflow platform. Run, test, and document everything in one place.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Build dev environment
|
||||
python build.py dev
|
||||
# Build
|
||||
python build.py dev --cfg amar
|
||||
|
||||
# Run
|
||||
cd gen
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
.venv/bin/python run.py # Single-port bare-metal dev
|
||||
# Run standalone (Docker)
|
||||
./ctrl/start.sh
|
||||
|
||||
# Or bare-metal
|
||||
cd gen && .venv/bin/python run.py
|
||||
# Visit http://localhost:12000
|
||||
```
|
||||
|
||||
@@ -23,73 +23,72 @@ python3 -m venv .venv
|
||||
| | System | What it does |
|
||||
|---|--------|--------------|
|
||||
| 👣 | **Soleprint** | Core coordinator, routing, landing page |
|
||||
| 💉 | **Artery** | Connectors to external services (Jira, Slack, APIs) |
|
||||
| 💉 | **Artery** | Connectors to external services (Jira, Slack, Google) |
|
||||
| 🗺️ | **Atlas** | Actionable documentation (BDD, Gherkin, specs) |
|
||||
| 🎛️ | **Station** | Tools, environments, test runners |
|
||||
| 🎛️ | **Station** | Tools (modelgen, tester) and monitors (databrowse) |
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
spr/
|
||||
├── schema.json # Model definitions (source of truth)
|
||||
├── cfg/ # Framework configuration
|
||||
├── build.py # Build tool
|
||||
├── cfg/ # Room configurations
|
||||
│ ├── soleprint.config.json
|
||||
│ └── amar/ # Room-specific configs
|
||||
│ └── amar/ # AMAR room (docker-compose, tests, models)
|
||||
├── ctrl/ # Standalone Docker scripts
|
||||
│
|
||||
├── soleprint/ # Core coordinator (versioned)
|
||||
│ ├── main.py # Multi-port entry point
|
||||
│ ├── run.py # Single-port bare-metal dev
|
||||
│ └── dataloader/
|
||||
├── artery/ # Connectors
|
||||
│ ├── veins/ # Jira, Slack, Google
|
||||
│ ├── shunts/ # Fake connectors for testing
|
||||
│ └── plexuses/ # Full apps (backend + frontend)
|
||||
│
|
||||
├── artery/ # Connectors (versioned)
|
||||
├── atlas/ # Documentation (versioned)
|
||||
├── station/ # Tools (versioned)
|
||||
│ └── tools/
|
||||
│ ├── modelgen/ # Generates models from config
|
||||
│ ├── datagen/ # Test data generation
|
||||
│ └── tester/ # BDD/contract test runner
|
||||
├── atlas/ # Documentation
|
||||
│ └── book/ # Gherkin samples, feature docs
|
||||
│
|
||||
├── data/ # JSON content
|
||||
├── gen/ # Runnable instance (symlinks + generated)
|
||||
├── station/ # Tools & monitors
|
||||
│ ├── tools/ # modelgen, tester, datagen
|
||||
│ └── monitors/ # databrowse
|
||||
│
|
||||
└── mainroom/ # Orchestration: soleprint ↔ managed room
|
||||
├── ctrl/ # Orchestration commands
|
||||
├── soleprint/ # Core (versioned)
|
||||
├── gen/ # Built instance (gitignored)
|
||||
│
|
||||
└── mainroom/ # Orchestration with managed room
|
||||
├── amar -> cfg/amar
|
||||
├── soleprint/ # Soleprint Docker config
|
||||
├── sbwrapper/ # Sidebar wrapper UI
|
||||
└── soleprint/ # Docker configs
|
||||
└── ctrl/ # start, stop, deploy scripts
|
||||
```
|
||||
|
||||
## Components
|
||||
## Artery Hierarchy
|
||||
|
||||
**Shared:**
|
||||
- **Room** - Environment configuration
|
||||
- **Depot** - Data storage
|
||||
```
|
||||
Vein ──► Pulse ──► Plexus
|
||||
│ │ │
|
||||
│ │ └── Full app (backend + frontend + DB)
|
||||
│ └── Composed (Vein + Room + Depot)
|
||||
└── Stateless API connector
|
||||
|
||||
**System-specific:**
|
||||
- **Vein** (Artery) - Single connector
|
||||
- **Template** (Atlas) - Doc pattern
|
||||
- **Tool** (Station) - Utility
|
||||
|
||||
**Composed:**
|
||||
- **Pulse** = Vein + Room + Depot
|
||||
- **Book** = Template + Depot
|
||||
- **Desk** = Cabinet + Room + Depots
|
||||
|
||||
## Development
|
||||
|
||||
### Build and run
|
||||
```bash
|
||||
python build.py dev # Soleprint only
|
||||
python build.py dev --cfg amar # With amar room config
|
||||
|
||||
cd gen
|
||||
.venv/bin/python run.py # Bare-metal single-port
|
||||
.venv/bin/python main.py # Multi-port (production-like)
|
||||
Shunt ── Fake connector for testing
|
||||
```
|
||||
|
||||
### Run with Docker (via mainroom)
|
||||
## Usage
|
||||
|
||||
### Standalone (soleprint only)
|
||||
```bash
|
||||
cd mainroom/soleprint
|
||||
docker compose up -d
|
||||
python build.py dev
|
||||
./ctrl/start.sh # Docker
|
||||
./ctrl/stop.sh
|
||||
```
|
||||
|
||||
### With Managed Room (amar + soleprint)
|
||||
```bash
|
||||
python build.py dev --cfg amar
|
||||
docker network create soleprint_network
|
||||
|
||||
cd mainroom/ctrl
|
||||
./start.sh -d # Start detached
|
||||
./stop.sh # Stop all
|
||||
./deploy.sh # Deploy to AWS
|
||||
```
|
||||
|
||||
## Ports
|
||||
@@ -97,36 +96,25 @@ docker compose up -d
|
||||
| Service | Port |
|
||||
|---------|------|
|
||||
| Soleprint | 12000 |
|
||||
| Artery | 12001 |
|
||||
| Atlas | 12002 |
|
||||
| Station | 12003 |
|
||||
| Amar Backend | 8000 |
|
||||
| Amar Frontend | 3000 |
|
||||
|
||||
## Architecture
|
||||
## Tools
|
||||
|
||||
```
|
||||
soleprint/ → Versioned core files (main.py, run.py, dataloader)
|
||||
gen/ → Runnable instance (symlinks to soleprint/ + systems)
|
||||
gen/models/ → Generated once per client (like install)
|
||||
cfg/ → Configuration (copied to gen/cfg/)
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| modelgen | Generate models from config |
|
||||
| tester | BDD/playwright test runner |
|
||||
| datagen | Test data generation |
|
||||
| databrowse | SQL data browser |
|
||||
|
||||
mainroom/ → Orchestration layer
|
||||
├── sbwrapper → UI overlay for managed apps
|
||||
└── soleprint → Docker for soleprint services
|
||||
```
|
||||
## Veins
|
||||
|
||||
## Background
|
||||
|
||||
Born from the friction of:
|
||||
- Testing requiring PRs on small teams
|
||||
- Documentation scattered across tools
|
||||
- Quick API connectors taking too long to set up
|
||||
- No self-contained environment to experiment freely
|
||||
|
||||
Soleprint lets you run everything in isolation while building reusable pieces.
|
||||
|
||||
## License
|
||||
|
||||
TBD
|
||||
| Vein | Auth |
|
||||
|------|------|
|
||||
| jira | Token |
|
||||
| slack | Token |
|
||||
| google | OAuth2 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user