Admin Server

PostgREST provides an admin server that can be enabled by setting admin-server-port.

Health Check

You can enable a health check to verify if PostgREST is available for client requests. Also to check the status of its internal state.

Two endpoints live and ready will then be available.

Important

If you have a machine with multiple network interfaces and multiple PostgREST instances in the same port, you need to specify a unique hostname in the configuration of each PostgREST instance for the health check to work correctly. Don’t use the special values(!4, *, etc) in this case because the health check could report a false positive.

Live

The live endpoint verifies if PostgREST is running on its configured port. A request will return 200 OK if PostgREST is alive or 500 otherwise.

For instance, to verify if PostgREST is running while the admin-server-port is set to 3001:

curl -I "http://localhost:3001/live"
HTTP/1.1 200 OK

Ready

Additionally to the live check, the ready endpoint checks the state of the Connection Pool and the Schema Cache. A request will return 200 OK if both are good or 503 if not.

curl -I "http://localhost:3001/ready"
HTTP/1.1 200 OK

PostgREST will try to recover from the 503 state with Automatic Recovery.

Metrics

Provides Metrics.

Runtime Configuration

Provides a config endpoint that returns the runtime Configuration.

curl "http://localhost:3001/config"
db-aggregates-enabled = false
db-anon-role = "web_anon"
db-channel = "pgrst"
db-channel-enabled = false
...

Runtime Schema Cache

Provides the schema_cache endpoint that prints the runtime Schema Cache.

curl "http://localhost:3001/schema_cache"
{
  "dbMediaHandlers": ["..."],
  "dbRelationships": ["..."],
  "dbRepresentations": ["..."],
  "dbRoutines": ["..."],
  "dbTables": ["..."],
  "dbTimezones": ["..."]
}