DAAV is an open-source platform for Data Alignment, Aggregation and Vectorisation built with modern web technologies. It provides a comprehensive solution for data processing, alignment, aggregation, vectorisation, and visualization through a web-based interface with visual workflow capabilities.
DAAV enables you to:
- Design visual workflows: Create data processing pipelines with an intuitive graphical interface
- Process multiple formats: Native support for CSV, Parquet, Excel, JSON and more
- Analyze in real-time: Interactive data exploration with integrated tools
- Connect multiple sources: REST APIs, databases, local files
- Visualize results: Integrated charts and tables for analysis
- Frontend: Angular 17 with Ionic 8 components and Rete.js for workflow design
- Backend: High-performance FastAPI with async support
- Database: MongoDB 7.0 for scalable storage
- Workflow Engine: Custom engine for data pipeline execution
git clone https://github.com/Prometheus-X-association/daav.git
cd daav
docker-compose up -dAccess:
- Application: http://localhost:8080
- API Documentation: http://localhost:8081/docs
- MongoDB Admin (optional): http://localhost:8083
| Service | Port | Description |
|---|---|---|
| Frontend | 8080 | Angular/Nginx user interface |
| Backend | 8081 | FastAPI REST API |
| MongoDB | 27017 | Database |
| Mongo Express | 8083 | Database admin (optional) |
# Start with MongoDB admin interface
docker-compose --profile admin up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down
# Rebuild and restart
docker-compose up -d --buildπ§ For advanced configuration and troubleshooting: Docker Deployment Guide
Prerequisites: Node.js 18+, Python 3.10+, MongoDB (optional)
cd frontendApp
npm install
npm start # http://localhost:4200cd backendApi
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Configure your variables
uvicorn app.main:app --reload --port 8000On first launch the backend create a default admin user. Username: admin, Password: Admin123! Change this immediatly with frontend or API.
API Documentation: http://localhost:8000/docs
- Workflow Designer: Visual interface for creating workflows with Rete.js
- Data Processing: Support for CSV, Parquet, Excel, JSON
- Interactive Analysis: Real-time data exploration
- Complete REST API: Automatic documentation with Swagger
- Multiple Connectors: Databases, external APIs, files
- Integrated Visualizations: Dynamic charts and tables
daav/
βββ frontendApp/ # Angular frontend application
β βββ src/app/ # Application source code
β βββ package.json # Node.js dependencies
βββ backendApi/ # FastAPI backend application
β βββ app/ # Application source code
β β βββ main.py # FastAPI entry point
β β βββ core/ # Main workflow engine
β β βββ models/ # Pydantic models
β β βββ routes/ # API endpoints
β β βββ services/ # Business logic
β βββ requirements.txt # Python dependencies
β βββ .env.example # Environment variables template
βββ docker-compose.yml # Docker configuration
βββ docs/ # Documentation
Configuration is done via environment variables. Copy .env.example to .env in the backendApi/ folder:
# MongoDB Configuration
MONGODB_URL=mongodb://localhost:27017
DATABASE_NAME=daav_datasets
# Server Configuration
HOST=0.0.0.0
PORT=8000
# File Upload
MAX_FILE_SIZE=100MB
UPLOAD_DIR=uploads
# Logging
LOG_LEVEL=INFOThe backend includes comprehensive unit tests for security, data processing, and API endpoints.
Run all tests:
cd backendApi
source .venv/bin/activate # Windows: .venv\Scripts\activate
pytestRun tests with coverage:
pytest --cov=app --cov-report=htmlRun specific test files:
# Security tests
pytest tests/security/test_path_security.py -v
# API tests
pytest tests/test_api.py -vRun tests by category:
# Run only unit tests
pytest -m unit
# Run only integration tests
pytest -m integrationThe backend test suite includes comprehensive coverage of all critical functionality:
test_path_security.py: Path traversal protection, dangerous pattern detection, Unix/Windows path attack prevention, null byte injection protectiontest_security_middleware.py: Rate limiting enforcement, request validation, suspicious pattern detection, IP blocking
test_user_service.py: User CRUD operations, permission management, resource ownership, password changes, duplicate username/email validation, admin enforcement, dataset/workflow sharingtest_auth_service.py: User authentication, JWT token management (access/refresh), password reset flow, admin verification, inactive account handlingtest_workflow_service.py: Workflow CRUD operations, workflow validation, timestamp management, ownership checks, database error handlingtest_dataset_service.py: Dataset operations (File, MySQL, PTX), PDC chain context management, file format support (CSV, JSON, Parquet), pagination, user isolationtest_pdc_service.py: PDC API integration, contract/ecosystem/participant fetching, service offering management, HTTP error handling, timeout/connection errorstest_email_service.py: Email sending (plain text/HTML), password reset emails, SMTP configuration, authentication errors, multipart message structuretest_migration_service.py: Config migration from INI files, dataset/workflow migration, validation errors, backup creation, mixed results handling
test_filter_transform.py: DataFrame filtering with AND/OR conditions, rule validation, Parquet supporttest_merge_transform.py: DataFrame merging from multiple sources, column mapping, Parquet file merging, data alignmenttest_flatten_transform.py: JSON flattening (nested objects and arrays), hierarchical data transformation, column naming conventions
test_workflow.py: Workflow execution engine, node execution order, workflow validationtest_execution_context.py: Execution context isolation, user/workflow context management, async context propagation, context cleanuptest_node.py: Base node execution, input/output handling, error states, validation
test_utils.py: File size conversion, folder operations, pandas schema generation, data slicing, base64 decoding, file type detection, DataFrame filtering with DuckDB, route access verification
cd frontendApp
npm testRun with coverage:
npm test -- --code-coverageWork in progress
- Docker Deployment Guide - Advanced Docker configuration and troubleshooting
- Project Overview - Detailed technical architecture
- Plugin Development Guide - Create custom nodes for the platform
Contributions to the Prometheus-X Daav are welcome! If you would like to contribute, please follow these steps:
- Fork the repository on GitHub.
- Create a new branch for your feature or bug fix.
- Make the necessary code changes, adhering to the project's coding style and guidelines.
- Write appropriate tests to ensure code integrity.
- Commit your changes and push the branch to your forked repository.
- Submit a pull request to the main repository, describing your changes in detail.
Please ensure that your contributions align with the project's coding standards, have proper test coverage, and include necessary documentation or updates to existing documentation.
The Prometheus-X Daav is released under the MIT License. You are free to use, modify, and distribute the software as per the terms specified in the license.
If you encounter any issues or have questions regarding the Prometheus-X Daav, feel free to open an issue on the GitHub repository. The project maintainers and community members will be happy to assist you.