Giter VIP home page Giter VIP logo

postgres-meta's Introduction

postgres-meta

A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries (and more).

Documentation

https://supabase.github.io/postgres-meta/

Progress

Schema:

  • POST /query (Execute SQL query)
    • POST /format (Format SQL query)
    • POST /parse (Parse SQL query into AST)
    • POST /explain (Explain SQL query)
  • /columns
    • GET (List)
    • POST (alter table add column)
    • PATCH (alter table alter/rename column)
    • DELETE (alter table drop column)
  • /extensions
    • GET (List)
    • POST (create extension)
    • PATCH (alter extension)
    • DELETE (drop extension)
  • /functions
    • GET (List)
    • POST (create function)
    • PATCH (alter function)
    • DELETE (drop function)
  • /publications
    • GET (List)
    • POST (create publication)
    • PATCH (alter publication)
    • DELETE (drop publication)
  • /roles
    • GET (List)
    • POST (create role)
    • PATCH (alter role)
    • DELETE (drop role)
  • /schemas
    • GET (List)
    • POST (create schema)
    • PATCH (alter schema)
    • DELETE (drop schema)
  • /tables
    • GET (List)
    • POST (create table)
    • PATCH (alter table)
    • DELETE (drop table)
  • /triggers
    • GET (List)
    • POST (create trigger)
    • PATCH (alter trigger)
    • DELETE (drop trigger)
  • /types
    • GET (List)
    • POST (create type)
    • PATCH (alter type)
    • DELETE (drop type)

Helpers:

  • /config
    • GET /version: Postgres version
  • /generators
    • GET /openapi: Generate Open API
    • GET /typescript: Generate Typescript types

Quickstart

Set the following ENV VARS:

PG_META_PORT=8080
PG_META_DB_HOST="postgres"
PG_META_DB_NAME="postgres"
PG_META_DB_USER="postgres"
PG_META_DB_PORT=5432
PG_META_DB_PASSWORD="postgres"

Then run any of the binaries in the releases.

FAQs

Why?

This serves as a light-weight connection pooler. It also normalises the Postgres system catalog into a more readable format. While there is a lot of re-inventing right now, this server will eventually provide helpers (such as type generators). The server is multi-tenant, so it can support multiple Postgres databases from a single server.

What security does this use?

None. Please don't use this as a standalone server. This should be used behind a proxy in a trusted environment, on your local machine, or using this internally with no access to the outside world.

Developers

To start developing, run npm run dev. It will set up the database with Docker for you. The server will restart on file change.

If you are fixing a bug, you should create a new test case. To test your changes, add the -u/--updateSnapshot flag to jest on the test:run script, run npm run test, and then review the git diff of the snapshots. Depending on your change, you may see id fields being changed - this is expected and you are free to commit it, as long as it passes the CI. Don't forget to remove the -u/--updateSnapshot flag when committing.

Licence

Apache 2.0

Sponsors

We are building the features of Firebase using enterprise-grade, open source products. We support existing communities wherever possible, and if the products don’t exist we build them and open source them ourselves.

New Sponsor

postgres-meta's People

Contributors

soedirgo avatar kiwicopple avatar dependabot[bot] avatar w3b6x9 avatar darora avatar i-pip avatar wasabigeek avatar thebengeu avatar inian avatar cpdeethree avatar 0xflotus avatar ftonato avatar dukemanh avatar fuergaosi233 avatar strift avatar ffabss avatar ykdojo avatar

Stargazers

Roman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.