Open Source Dependencies
All major open source packages used in YmerFlow, organized by layer.
Frontend (npm)
Core Framework
| Package |
Purpose |
| react |
UI framework |
| react-dom |
React DOM renderer |
| react-router-dom |
Client-side routing and popout window support |
| vite |
Build tooling and dev server |
| react-scripts |
Build tooling (Create React App); still a dependency but no longer used by any npm script — vestigial from before the Vite migration |
Data Fetching & State
UI Components
Layout & Drag-and-Drop
Plugin System
Visualization
| Package |
Purpose |
| gladly-plot |
WebGL-based scientific plotting (primary plot library) |
| regl |
WebGL abstraction (used by gladly-plot and custom layers) |
| d3 |
Data utilities and scales |
| reactflow |
Interactive node graph for process flow view |
| leaflet |
Slippy map (tile layers) |
| react-leaflet |
React bindings for Leaflet |
Geo / Projection
| Package |
Purpose |
| proj4 |
Coordinate reference system transformations |
| projnames |
EPSG code → proj4 string lookup |
Utilities
Backend (Python / pip)
Web Framework
| Package |
Purpose |
| fastapi |
Async REST + WebSocket framework with auto OpenAPI docs |
| uvicorn |
ASGI server |
| watchfiles |
File watcher for uvicorn --reload |
| websockets |
WebSocket support |
| python-multipart |
Multipart form data parsing |
| fastapi-mcp |
Expose FastAPI routes as MCP tools |
| mcp |
MCP protocol SDK; pinned <2.0.0 — no fastapi-mcp release supports mcp 2.x yet |
Database & Migrations
| Package |
Purpose |
| sqlalchemy |
ORM and SQL toolkit (async via asyncio extra) |
| alembic |
Schema migrations |
| aiosqlite |
Async SQLite driver (development) |
| asyncpg |
Async PostgreSQL driver (production) |
| psycopg2-binary |
Sync PostgreSQL driver (Alembic offline mode) |
Security & Auth
| Package |
Purpose |
| python-jose |
JWT encoding / decoding |
| passlib |
Password hashing abstraction |
| bcrypt |
bcrypt hashing algorithm for passlib |
| PyJWT |
Lightweight JWT library |
Storage
| Package |
Purpose |
| fsspec |
Unified filesystem abstraction |
| s3fs |
S3-compatible fsspec backend (MinIO / AWS S3 / GCS via S3 compat) |
| minio |
MinIO Python client (bucket/policy management) |
Kubernetes
| Package |
Purpose |
| libaarhusxyz |
AEM (airborne EM) XYZ/MagData format handling |
| msgpack-numpy |
NumPy array MessagePack codec |
| projnames |
EPSG code → proj4 string lookup (shared with frontend) |
Configuration & Utilities
| Package |
Purpose |
| pydantic-settings |
Environment-based settings with validation |
| python-dotenv |
.env file loading |
| click |
CLI framework (management commands) |
| aiosmtplib |
Async SMTP for email notifications |
| setuptools |
Package management; used for process-type entrypoint discovery |
| packaging |
Version parsing/comparison utilities |
| PyYAML |
YAML parsing (Kubernetes manifests, config) |
| ymerflow-plugin-build |
Frontend-plugin build harness (git dependency); used by backend/services/job_orchestrator.py and the build_frontend_plugin process type |
Infrastructure
| Component |
Purpose |
| Kubernetes |
Container orchestration — runs process jobs |
| Kueue |
Job queuing and resource quota management |
| Minikube |
Local Kubernetes cluster for development |
| Docker |
Container image builds |
| MinIO |
S3-compatible object storage (development) |
| PostgreSQL |
Production relational database |