A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries (and more).
PG_META_DB_HOST = ${PG_META_DB_HOST}
PG_META_DB_NAME = ${PG_META_DB_NAME}
PG_META_DB_USER = ${PG_META_DB_USER}
PG_META_DB_PASSWORD = ${PG_META_DB_PASSWORD}
PG_META_DB_PORT = ${PG_META_DB_PORT}
PG_META_PORT = ${PG_META_PORT}
https://supabase.github.io/postgres-meta/
Schema:
-
POST /query
(Execute 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
- GET
-
/generators
- GET
/openapi
: Generate Open API - GET
/typescript
: Generate Typescript types
- GET
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.
Why?
This servers as a light-weight connection pooler. It also normalises the Postgres system catalog into a more readable format. While it it a lot of reinventing 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.
- Start the database using
docker-compose up
- Run
npm run dev
- Run
npm test
while you work
Apache 2.0
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.