- Notifications
You must be signed in to change notification settings - Fork0
A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries
License
owaisahmad-dev/postgres-meta
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries (and more).
https://supabase.github.io/postgres-meta/
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
- GET
/generators
- GET
/openapi
: Generate Open API - GET
/typescript
: Generate Typescript types
- GET
Set the following ENV VARS:
PG_META_HOST="0.0.0.0"PG_META_PORT=8080PG_META_DB_HOST="postgres"PG_META_DB_NAME="postgres"PG_META_DB_USER="postgres"PG_META_DB_PORT=5432PG_META_DB_PASSWORD="postgres"
Then run any of the binaries in the releases.
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.
To start developing, runnpm 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 tojest
on thetest:run
script, runnpm run test
, and then review the git diff of the snapshots. Depending on your change, you may seeid
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.
To make changes to the TypeScript type generation, runnpm run gen:types:typescript
while you havenpm run dev
running.To use your own database connection string instead of the provided test database, run:PG_META_DB_URL=postgresql://postgres:postgres@localhost:5432/postgres npm run gen:types:typescript
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.
About
A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- TypeScript99.1%
- Other0.9%