Bridgo is a modern data virtualization platform that enables seamless access to multiple data sources without the need for data movement. Built with Go and powered by DuckDB as a metadata store, Bridgo provides a unified interface to query and manage data across different database systems.
- Multi-Database Connectivity: Connect to PostgreSQL, MySQL, and other popular databases
- Data Virtualization: Access and query data from multiple sources without moving the data
- Web Interface: Intuitive web-based interface for easy access and management
graph TD
A[Web UI<br/>- Dashboard<br/>- DB Connections<br/>- Virtual Views] <--> B[REST API<br/>- Auth Handlers<br/>- DataSource API<br/>- VirtualView API]
B <--> C[Core Services<br/>- DataSource<br/>- VirtualView<br/>- Connection]
C --> D[Metadata Store DuckDB<br/>- User Management<br/>- Data Source Configurations<br/>- Schema Information<br/>- Virtual View Definitions]
D --> E[External Data Sources<br/>- PostgreSQL<br/>- MySQL<br/>- Others]
- Go 1.19+
- DuckDB (automatically managed)
- Access to target databases (PostgreSQL, MySQL, etc.)
-
Clone the repository:
git clone <repository-url> cd bridgo
-
Install dependencies:
go mod tidy
-
Build the application:
go build -o bin/bridgo cmd/app/main.go
-
Run the application:
./bin/bridgo
-
Access the web interface: Open your browser and navigate to
http://localhost:18080
oryour-server-ip:18080
For development purposes, the following admin account is automatically created:
- Username:
admin
- Password:
admin
- Navigate to DB Connections in the dashboard
- Click "Add New Connection"
- Fill in your database connection details:
- Source Name: A friendly name for your connection
- Database Type: PostgreSQL, MySQL, etc.
- Host & Port: Database server details
- Credentials: Username and password
- Test the connection and save
- Go to Virtual Views section
- Select a configured data source
- Choose a table from the available schema
- Select specific columns you want to include
- Provide a name and description for your virtual view
- Save the virtual BaseView
- Schema Preview: View column information, data types, and constraints
- Sample Data: Preview first 5 rows of data from your virtual views
If you encounter issues:
- Ensure your internet browser using old cache. (Try clearing cache or using incognito mode)
- Manually delete local DuckDB metadata file if it becomes corrupted:
rm -f ./bridgo_meta.db ./bridgo_meta.db.wal
Currently supported database systems:
Database | Status | Features |
---|---|---|
PostgreSQL | β Full Support | Schema discovery, querying, virtual views |
MySQL | β Full Support | Schema discovery, querying, virtual views |
Others | π Planned | Coming soon |
bridgo/
βββ cmd/app/ # Application entry point
βββ internal/
β βββ auth/ # Authentication & JWT handling
β βββ core/ # Core business logic services
β βββ metadata/ # DuckDB metadata management
β βββ models/ # Data models and structures
β βββ server/ # HTTP server configuration
β βββ users/ # User management service
β βββ web/ # HTTP handlers and routing
βββ web/ui/ # Frontend assets
β βββ css/ # Stylesheets
β βββ js/ # JavaScript modules
β βββ *.html # HTML templates
βββ go.mod # Go modules
βββ README.md # This file
This project is currently in early development stage.
- Multi-database connectivity (PostgreSQL, MySQL)
- Schema discovery and metadata storage
- Virtual BaseView creation and management
- Web-based dashboard interface
- Sample data preview
- Real-time connection testing
- Advanced virtual view combinations
- RESTful API endpoints
- Refactor codebase for better modularity
- Support for more database types (SQLite, Oracle, SQL Server)
- Data transformation capabilities
- Scheduled data synchronization
- Role-based access control
- API rate limiting
- Docker containerization
welcome any contributions! If you have ideas for improvements or new features, please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE and NOTICES files for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information