REST API for any Postgres database
db-pool-acquisition-timeout
configuration option, time in seconds to wait to acquire a connection. - @robxdb-pool-timeout
option, because this was removed upstream in hasql-pool. - @robxPrefer: params=multiple-objects
in the request. A function with a JSON array or object parameter should be used instead for a better performance.db-pool-acquisition-timeout
configuration option, time in seconds to wait to acquire a connection. - @robxdb-pool-timeout
. - @robxPrefer: params=multiple-objects
in the request. A function with a JSON array or object parameter should be used instead for a better performance.admin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislaAccept: application/geo+json
media type - @steve-chavez
Prefer: return=representation
.properties
keygeometry
key with the usual ?select
query parameter.Accept: application/vnd.pgrst.plan
header - @steve-chavez
db-plan-enabled
config is set to truefor
parameter: Accept: application/vnd.pgrst.plan; for="application/vnd.pgrst.object"
options
parameter: Accept: application/vnd.pgrst.plan; options=analyze|verbose|settings|buffers|wal
Accept: application/vnd.pgrst.plan+text
and Accept: application/vnd.pgrst.plan+json
.Database connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)db-pool-timeout
to 1 hour to prevent frequent high connection latency - @steve-chavezselect
- @steve-chavezlimit=0
in the request query to return an empty array - @gautam1168, @laurenceislalimit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowsmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
Prefer: return=representation
no longer returns a Location
header - @laurenceislaadmin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaAccept: application/geo+json
media type - @steve-chavez
Prefer: return=representation
.properties
keygeometry
key with the usual ?select
query parameter.Accept: application/vnd.pgrst.plan
header - @steve-chavez
db-plan-enabled
config is set to truefor
parameter: Accept: application/vnd.pgrst.plan; for="application/vnd.pgrst.object"
options
parameter: Accept: application/vnd.pgrst.plan; options=analyze|verbose|settings|buffers|wal
Accept: application/vnd.pgrst.plan+text
and Accept: application/vnd.pgrst.plan+json
.application/json
) but can be extended later to allow other representations.Accept: application/vnd.pgrst.plan+text
) and json(Accept: application/vnd.pgrst.plan+json
or Accept: application/vnd.pgrst.plan
) format.Database connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit
parameter - @steve-chavez, @laurenceisladb-pool-timeout
to 1 hour to prevent frequent high connection latency - @steve-chavezselect
- @steve-chavezlimit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowsmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.limit
parameter - @steve-chavez
PATCH /tbl
will now result in 0 rows updated, unless PATCH /tbl?limit=10&order=<pkcol>
is donePrefer: return=representation
no longer returns a Location
header - @laurenceislaadmin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaAccept: application/geo+json
media type - @steve-chavez
Prefer: return=representation
.properties
keygeometry
key with the usual ?select
query parameter.Database connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit
parameter - @steve-chavez, @laurenceisladb-pool-timeout
to 1 hour to prevent frequent high connection latency - @steve-chavezlimit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowslimit/offset
throws an error on views - @steve-chavezmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.limit
parameter - @steve-chavez
PATCH /tbl
will now result in 0 rows updated, unless PATCH /tbl?limit=10&order=<pkcol>
is donePrefer: return=representation
no longer returns a Location
header - @laurenceislaadmin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaAccept: application/geo+json
media type - @steve-chavez
Prefer: return=representation
.properties
keygeometry
key with the usual ?select
query parameter.Database connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit
parameter - @steve-chavez, @laurenceisladb-pool-timeout
to 1 hour to prevent frequent high connection latency - @steve-chavezlimit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowslimit/offset
throws an error on views - @steve-chavezmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.limit
parameter - @steve-chavez
PATCH /tbl
will now result in 0 rows updated, unless PATCH /tbl?limit=10&order=<pkcol>
is donePrefer: return=representation
no longer returns a Location
header - @laurenceislaadmin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaAccept: application/geo+json
media type - @steve-chavez
Prefer: return=representation
.properties
keygeometry
key with the usual ?select
query parameter.Database connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit
parameter - @steve-chavez, @laurenceisladb-pool-timeout
to 1 hour to prevent frequent high connection latency - @steve-chavezlimit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowslimit/offset
throws an error on views - @steve-chavezmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.limit
parameter - @steve-chavez
PATCH /tbl
will now result in 0 rows updated, unless PATCH /tbl?limit=10&order=<pkcol>
is donePrefer: return=representation
no longer returns a Location
header - @laurenceislaPrefer: tx=rollback
- @wolfgangwaltheris
not working with upper or mixed case values like NULL, TrUe, FaLsE
- @steve-chavez=
is present in value - @wolfgangwaltherContent-Type
headers for GET
requests when calling RPCs. - @laurenceisla
GET
without parameters, but with Content-Type: text/plain
or Content-Type: application/octet-stream
would fail with 404 Not Found
, even if a function without arguments was available.relationship
key looks like valid syntax - @laurenceislaadmin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaPrefer: tx=rollback
- @wolfgangwaltheris
not working with upper or mixed case values like NULL, TrUe, FaLsE
- @steve-chavezDatabase connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
=
is present in value - @wolfgangwaltherContent-Type
headers for GET
requests when calling RPCs. Previously, GET
without parameters, but with Content-Type: text/plain
or Content-Type: application/octet-stream
would fail with 404 Not Found
, even if a function without arguments was available.max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezrelationship
key looks like valid syntax - @laurenceislaselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowslimit/offset
throws an error on views - @steve-chavezmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.admin-server-port
config must be set explictly<host>:<admin_server_port>/live
endpoint is available for checking if postgrest is running on its port/socket. 200 OK = alive, 503 = dead.<host>:<admin_server_port>/ready
endpoint is available for checking a correct internal state(the database connection plus the schema cache). 200 OK = ready, 503 = not ready.db-uri
using libpq's PG environment variables to connect. - @wolfgangwaltherdb-schemas
, defaulting to db-schemas=public
. - @wolfgangwaltherdb-anon-role
disabling anonymous access. - @wolfgangwaltherlimit/offset
to UPDATE/DELETE to only affect a subset of rows - @steve-chavez
order
on a unique column(s)"PGRST"
prefix to the error response body to differentiate PostgREST errors from PostgreSQL errors - @laurenceisladetail
and hint
error fields with a null
value if they are empty - @laurenceislaSQLSTATE
now include the message and the code in the response body - @laurenceislalimit=0
in the request query to return an empty array - @gautam1168, @laurenceislaPrefer: tx=rollback
- @wolfgangwaltheris
not working with upper or mixed case values like NULL, TrUe, FaLsE
- @steve-chavezDatabase connection lost. Retrying the connection
to Could not query the database for the schema cache. Retrying.
=
is present in value - @wolfgangwaltherContent-Type
headers for GET
requests when calling RPCs. Previously, GET
without parameters, but with Content-Type: text/plain
or Content-Type: application/octet-stream
would fail with 404 Not Found
, even if a function without arguments was available.max-rows
on POST, PATCH, PUT and DELETE - @steve-chavezrelationship
key looks like valid syntax - @laurenceislaselect=oid_array::_int4
) - @steve-chavez/tbl?select=*,col-or-fk(*)
), only tables are now detected and views are not./view?select=*,col-or-fk(*)
)limit/offset
now limits the affected rows on UPDATE/DELETE - @steve-chavez
limit/offset
only limited the returned rows but not the actual updated rowslimit/offset
throws an error on views - @steve-chavezmax-rows
is no longer applied on POST/PATCH/PUT/DELETE returned rows - @steve-chavez
max-rows
, only the returned rows were limited/view?select=*,column(*)
) - @steve-chavez
/view?select=*,other_view!column(*)
.