Skip to content

A RESTful & GraphQL API to supercharge your database.

Notifications You must be signed in to change notification settings

kareemmahlees/meta-x

Repository files navigation

GitHub go.mod Go version (subdirectory of monorepo) Codecov GitHub Workflow Status (with event)

What does it introduce

MetaX introduces a RESTFull and GraphQL API that allows you to control your database through http requests programmatically, i.e creating tables and databases, adding columns and deleting columns, etc .

Installation

  • Download the binary

You can download the binary from the releases page.

Make sure you add the executable to your PATH environment variable.

  • With go install

    By running the following command:

    go install github.com/kareemmahlees/meta-x

Announcements 🎉

MetaX binary size is now 25% smaller 🔥

Running

Once you installed the binary, MetaX comes with subocommands to each you can supply your database connection parameters as command line flags.

You can find all about the commands by running with the --help flag:

meta-x --help

MetaX by default serves on port 5522, you can configure the port by passing the --port flag:

meta-x --port 4444

Documentation

The API is fully documented, the REST version is documented using Swagger Docs and is served on http://localhost:5522/swagger

Regarding the GraphQL version, you can run the application and then use the GraphQL endpoint http://localhost:5522/graphql to introspect the schema with your favorite tool, e.g postman, insomnia, hoppscotch.

Additionally, you can playaround with the GraphQL version by jumping into the playground at http://localhost:5522/playground

Progress Track

  • Databases
    • list databases
    • create database
  • Tables
    • list tables
    • table info
    • create table
    • delete table
    • update table
  • Queries
    • execute single query
    • execute multiple queries in transaction
  • Views
    • list views
    • create views
    • delete views
    • query by views
  • Config
    • get version

Contributing

We strongly encourage anyone who wants to contribute to go ahead, no matter what skill level your are.

Contributions can be as small as suggesting a feature, reporting a bug or enhancing the docs.

Want to contribute but don't know where to start?

Checkout our Codebase Overview section in CONTRIBUTING.md, then head to our issues section and pick an issue to work on 🚀.