Skip to content

Bridgo-data/Bridgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bridgo - Data Bridge With Go

Bridgo Image Go Version License

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.

Features

Core Capabilities

  • 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

Architecture

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]
Loading

Prerequisites

  • Go 1.19+
  • DuckDB (automatically managed)
  • Access to target databases (PostgreSQL, MySQL, etc.)

Installation

Quick Start

  1. Clone the repository:

    git clone <repository-url>
    cd bridgo
  2. Install dependencies:

    go mod tidy
  3. Build the application:

    go build -o bin/bridgo cmd/app/main.go
  4. Run the application:

    ./bin/bridgo
  5. Access the web interface: Open your browser and navigate to http://localhost:18080 or your-server-ip:18080

Default Credentials

For development purposes, the following admin account is automatically created:

  • Username: admin
  • Password: admin

Usage

1. Setting Up Data Sources

  1. Navigate to DB Connections in the dashboard
  2. Click "Add New Connection"
  3. 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
  4. Test the connection and save

2. Creating Virtual BaseViews

  1. Go to Virtual Views section
  2. Select a configured data source
  3. Choose a table from the available schema
  4. Select specific columns you want to include
  5. Provide a name and description for your virtual view
  6. Save the virtual BaseView

3. Querying Data

  • Schema Preview: View column information, data types, and constraints
  • Sample Data: Preview first 5 rows of data from your virtual views

Troubleshooting

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

Database Support

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

Project Structure

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

Development Status

This project is currently in early development stage.

Completed Features

  • 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

In Progress

  • Advanced virtual view combinations
  • RESTful API endpoints
  • Refactor codebase for better modularity

Planned Features

  • Support for more database types (SQLite, Oracle, SQL Server)
  • Data transformation capabilities
  • Scheduled data synchronization
  • Role-based access control
  • API rate limiting
  • Docker containerization

Contributing

welcome any contributions! If you have ideas for improvements or new features, please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE and NOTICES files for details.

Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information

About

Data Virtualization Platform Written in Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published