All Versions
34
Latest Version
Avg Release Cycle
90 days
Latest Release
89 days ago

Changelog History
Page 1

  • v8.0.0 Changes

    July 25, 2021

    โž• Added

    • #1525, Allow http status override through response.status guc - @steve-chavez
    • #1512, Allow schema cache reloading with NOTIFY - @steve-chavez
    • #1119, Allow config file reloading with SIGUSR2 - @steve-chavez
    • #1558, Allow 'Bearer' with and without capitalization as authentication schema - @wolfgangwalther
    • #1470, Allow calling RPC with variadic argument by passing repeated params - @wolfgangwalther
    • #1559, No downtime when reloading the schema cache with SIGUSR1 - @steve-chavez
    • #504, Add log-level config option. The admitted levels are: crit, error, warn and info - @steve-chavez
    • #1607, Enable embedding through multiple views recursively - @wolfgangwalther
    • #1598, Allow rollback of the transaction with Prefer tx=rollback - @wolfgangwalther
    • #1633, Enable prepared statements for GET filters. When behind a connection pooler, you can disable preparing with db-prepared-statements=false
      • This increases throughput by around 30% for simple GET queries(no embedding, with filters applied).
    • #1729, #1760, Get configuration parameters from the db and allow reloading config with NOTIFY - @steve-chavez
    • #1824, Allow OPTIONS to generate certain HTTP methods for a DB view - @laurenceisla
    • #1872, Show timestamps in startup/worker logs - @steve-chavez
    • #1881, Add openapi-mode config option that allows ignoring roles privileges when showing the OpenAPI output - @steve-chavez
    • CLI options(for debugging):
      • #1678, Add --dump-config CLI option that prints loaded config and exits - @wolfgangwalther
      • #1691, Add --example CLI option to show example config file - @wolfgangwalther
      • #1697, #1723, Add --dump-schema CLI option for debugging purposes - @monacoremo, @wolfgangwalther
    • #1794, (Experimental) Add request.spec GUC for db-root-spec - @steve-chavez

    ๐Ÿ›  Fixed

    • #1592, Removed single column restriction to allow composite foreign keys in join tables - @goteguru
    • #1530, Fix how the PostgREST version is shown in the help text when the .git directory is not available - @monacoremo
    • #1094, Fix expired JWTs starting an empty transaction on the db - @steve-chavez
    • #1162, Fix location header for POST request with select= without PK - @wolfgangwalther
    • #1585, Fix error messages on connection failure for localized postgres on Windows - @wolfgangwalther
    • #1636, Fix application/octet-stream appending charset=utf-8 - @steve-chavez
    • #1469, #1638 Fix overloading of functions with unnamed arguments - @wolfgangwalther
    • #1560, Return 405 Method not Allowed for GET of volatile RPC instead of 500 - @wolfgangwalther
    • #1584, Fix RPC return type handling and embedding for domains with composite base type (#1615) - @wolfgangwalther
    • #1608, #1635, Fix embedding through views that have COALESCE with subselect - @wolfgangwalther
    • #1572, Fix parsing of boolean config values for Docker environment variables, now it accepts double quoted truth values ("true", "false") and numbers("1", "0") - @wolfgangwalther
    • #1624, Fix using app.settings.xxx config options in Docker, now they can be used as PGRST_APP_SETTINGS_xxx - @wolfgangwalther
    • #1814, Fix panic when attempting to run with unix socket on non-unix host and properly close unix domain socket on exit - @monacoremo
    • #1825, Disregard internal junction(in non-exposed schema) when embedding - @steve-chavez
    • #1846, Fix requests for overloaded functions from html forms to no longer hang (#1848) - @laurenceisla
    • #1858, Add a hint and clarification to the no relationship found error - @laurenceisla
    • #1841, Show comprehensive error when an RPC is not found in a stale schema cache - @laurenceisla
    • #1875, Fix Location headers in headers only representation for null PK inserts on views - @laurenceisla

    ๐Ÿ”„ Changed

    • #1522, #1528, #1535, Docker images are now built from scratch based on a the static PostgREST executable (#1494) and with Nix instead of a Dockerfile. This reduces the compressed image size from over 30mb to about 4mb - @monacoremo
    • #1461, Location header for POST request is only included when PK is available on the table - @wolfgangwalther
    • #1560, Volatile RPC called with GET now returns 405 Method not Allowed instead of 500 - @wolfgangwalther
    • #1584, #1849 Functions that declare returns composite_type no longer return a single object array by default, only functions with returns setof composite_type return an array of objects - @wolfgangwalther
    • #1604, Change the default logging level to log-level=error. Only requests with a status greater or equal than 500 will be logged. If you wish to go back to the previous behaviour and log all the requests, use log-level=info - @steve-chavez
      • Because currently there's no buffering for logging, defaulting to the error level(minimum logging) increases throughput by around 15% for simple GET queries(no embedding, with filters applied).
    • #1617, Dropped support for PostgreSQL 9.4 - @wolfgangwalther
    • #1679, Renamed config settings with fallback aliases. e.g. max-rows is now db-max-rows, but max-rows is still accepted - @wolfgangwalther
    • #1656, Allow Prefer=headers-only on POST requests and change default to minimal (#1813) - @laurenceisla
    • #1854, Dropped undocumented support for gzip compression (which was surprisingly slow and easily enabled by mistake). In some use-cases this makes Postgres up to 3x faster - @aljungberg
    • #1872, Send startup/worker logs to stderr to differentiate from access logs on stdout - @steve-chavez
  • v7.0.1 Changes

    May 18, 2020

    ๐Ÿ›  Fixed

  • v7.0.0 Changes

    April 03, 2020

    โž• Added

    • #1417, Accept: application/vnd.pgrst.object+json behavior is now enforced for POST/PATCH/DELETE regardless of Prefer: return=representation/minimal - @dwagin
    • ๐Ÿ‘ #1415, Add support for user defined socket permission via server-unix-socket-mode config option - @Dansvidania
    • ๐Ÿ‘ #1383, Add support for HEAD request - @steve-chavez
    • ๐Ÿ‘ #1378, Add support for Prefer: count=planned and Prefer: count=estimated on GET /table - @steve-chavez, @LorenzHenk
    • ๐Ÿ‘ #1327, Add support for optional query parameter on_conflict to upsert with specified keys for POST - @ykst
    • #1430, Allow specifying the foreign key constraint name(/source?select=fk_constraint(*)) to disambiguate an embedding - @steve-chavez
    • #1168, Allow access to the Authorization header through the request.header.authorization GUC - @steve-chavez
    • #1435, Add request.method and request.path GUCs - @steve-chavez
    • #1088, Allow adding headers to GET/POST/PATCH/PUT/DELETE responses through the response.headers GUC - @steve-chavez
    • #1427, Allow overriding provided headers(Location, Content-Type, etc) through the response.headers GUC - @steve-chavez
    • #1450, Allow multiple schemas to be exposed in one instance. The schema to use can be selected through the headers Accept-Profile for GET/HEAD and Content-Profile for POST/PATCH/PUT/DELETE - @steve-chavez, @mahmoudkassem

    ๐Ÿ›  Fixed

    ๐Ÿ”„ Changed

    • #1385, bulk RPC call now should be done by specifying a Prefer: params=multiple-objects header - @steve-chavez
    • #1401, resource embedding now outputs an error when multiple relationships between two tables are found - @steve-chavez
    • 0๏ธโƒฃ #1423, default Unix Socket file mode from 755 to 660 - @dwagin
    • ๐Ÿšš #1430, Remove embedding with duck typed column names GET /projects?select=client(*)- @steve-chavez
      • You can rename the foreign key to client to make this request work in the new version: alter table projects rename constraint projects_client_id_fkey to client
    • #1413, Change server-proxy-uri config option to openapi-server-proxy-uri - @steve-chavez
  • v6.0.2 Changes

    August 22, 2019

    ๐Ÿ›  Fixed

    • #1369, Change raw-media-types to accept a string of comma separated MIME types - @Dansvidania
    • #1368, Fix long column descriptions being truncated at 63 characters in PostgreSQL 12 - @amedeedaboville
    • 0๏ธโƒฃ #1348, Go back to converting plus "+" to space " " in querystrings by default - @steve-chavez

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ #1348, Deprecate . symbol for disambiguating resource embedding(added in #918). The url-safe '!' should be used instead. We refrained from using + as part of our syntax because it conflicts with some http clients and proxies.
  • v6.0.1 Changes

    July 30, 2019

    โž• Added

    ๐Ÿ›  Fixed

    • โœ… #1336, Error when testing on Chrome/Firefox: text/html requested but a single column was not selected - @Dansvidania
    • ๐Ÿ #1334, Unable to compile v6.0.0 on windows - @steve-chavez
  • v6.0.0 Changes

    June 21, 2019

    โž• Added

    • ๐Ÿ‘ #1186, Add support for user defined unix socket via server-unix-socket config option - @Dansvidania
    • ๐Ÿ›ฐ #690, Add ?columns query parameter for faster bulk inserts, also ignores unspecified json keys in a payload - @steve-chavez
    • ๐Ÿ‘ #1239, Add support for resource embedding on materialized views - @vitorbaptista
    • ๐Ÿ‘ #1264, Add support for bulk RPC call - @steve-chavez
    • โฑ #1278, Add db-pool-timeout config option - @Qu4tro
    • #1285, Abort on wrong database password - @Qu4tro
    • #790, Allow override of OpenAPI spec through root-spec config option - @steve-chavez
    • #1308, Accept text/plain and text/html for raw output - @steve-chavez

    ๐Ÿ›  Fixed

    • #1223, Fix incorrect OpenAPI externalDocs url - @steve-chavez
    • #1221, Fix embedding other resources when having a self join - @steve-chavez
    • #1242, Fix embedding a view having a select in a where - @steve-chavez
    • #1238, Fix PostgreSQL to OpenAPI type mappings for numeric and character types - @fpusch
    • #1265, Fix query generated on bulk upsert with an empty array - @Qu4tro
    • 0๏ธโƒฃ #1273, Fix RPC ignoring unknown arguments by default - @steve-chavez
    • #1257, Fix incorrect status when a PATCH request doesn't find rows to change - @Qu4tro

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ #1288, Change server-host default of 127.0.0.1 to !4

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ #1288, Deprecate . symbol for disambiguating resource embedding(added in #918). '+' should be used instead. Though '+' is url safe, certain clients might need to encode it to '%2B'.

    โœ‚ Removed

    • ๐Ÿšš #1288, Removed support for schema reloading with SIGHUP, SIGUSR1 should be used instead - @steve-chavez
  • v5.2.0 Changes

    December 12, 2018

    โž• Added

    • ๐Ÿ“œ #1205, Add support for parsing JSON Web Key Sets - @russelldavies
    • ๐Ÿ‘ #1203, Add support for reading db-uri from a separate file - @zhoufeng1989
    • #1200, Add db-extra-search-path config for adding schemas to the search_path, solves issues related to extensions created on the public schema - @steve-chavez
    • #1219, Add ability to quote column names on filters - @steve-chavez

    ๐Ÿ›  Fixed

  • v5.1.0 Changes

    August 31, 2018

    โž• Added

    ๐Ÿ›  Fixed

    ๐Ÿ”„ Changed

    • #1099, Numbers in json path ?select=data->1->>key now get treated as json array indexes instead of keys - @steve-chavez
    • #1128, Allow finishing a json path with a single arrow ->. Now a json can be obtained without resorting to casting, Previously: /json_arr?select=data->>2::json, now: /json_arr?select=data->2 - @steve-chavez
    • 0๏ธโƒฃ #724, Change server-host default of *4 to 127.0.0.1

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ #724, SIGHUP deprecated, SIGUSR1 should be used instead
  • v0.5.0.0 Changes

    May 14, 2018

    โž• Added

    • The configuration (e.g. postgrest.conf) now accepts arbitrary settings that will be passed through as session-local database settings. This can be used to pass in secret keys directly as strings, or via OS environment variables. For instance: app.settings.jwt_secret = "$(MYAPP_JWT_SECRET)" will take MYAPP_JWT_SECRET from the environment and make it available to postgresql functions as current_setting('app.settings.jwt_secret'). Only app.settings.* values in the configuration file are treated in this way. - @canadaduane
    • ๐Ÿ‘ #256, Add support for bulk UPSERT with POST and single UPSERT with PUT - @steve-chavez
    • #1078, Add ability to specify source column in embed - @steve-chavez
    • #821, Allow embeds alias to be used in filters - @steve-chavez
    • ๐Ÿ”ง #906, Add jspath configurable role-claim-key - @steve-chavez
    • #1061, Add foreign tables to OpenAPI output - @rhyamada

    ๐Ÿ›  Fixed

    ๐Ÿ”„ Changed

    • #828, A SET SCHEMA <db-schema> is done on each request, this has the following implications:
    • To use RPC now the json_to_record/json_to_recordset functions are needed, these are available starting from PostgreSQL 9.4 - @steve-chavez
    • Overloaded functions now depend on the dbStructure, restart/sighup may be needed for their correct functioning - @steve-chavez
    • ๐Ÿšš #1098, Removed support for:
      • curly braces {} in embeds, i.e. /clients?select=*,projects{*} can no longer be used, from now on parens () should be used /clients?select=*,projects(*) - @steve-chavez
      • "in" operator without parens, i.e. /clients?id=in.1,2,3 no longer supported, /clients?id=in.(1,2,3) should be used - @steve-chavez
      • "@@", "@>" and "<@" operators, from now on their mnemonic equivalents should be used "fts", "cs" and "cd" respectively - @steve-chavez--replace
  • v0.4.4.0 Changes

    January 08, 2018

    โž• Added

    ๐Ÿ›  Fixed