Fix spelling to satisfy postgrest-docs-spellcheck

This commit is contained in:
Wolfgang Walther
2020-11-29 23:54:48 +01:00
committed by Wolfgang Walther
parent 84e5597091
commit 634a0c70b7
14 changed files with 118 additions and 83 deletions
+3 -3
View File
@@ -145,7 +145,7 @@ The PostgREST server logs basic request information to stdout, including the req
HTTP Requests
-------------
A great way to inspect incoming HTTP requests including headers and query params is to sniff the network traffic on the port where PostgREST is running. For instance on a development server bound to port 3000 on localhost, run this:
A great way to inspect incoming HTTP requests including headers and query parameters is to sniff the network traffic on the port where PostgREST is running. For instance on a development server bound to port 3000 on localhost, run this:
.. code:: bash
@@ -250,7 +250,7 @@ Now, whenever the structure of the database schema changes, PostgreSQL will noti
Daemonizing
===========
For linux distros that use **systemd** (ubuntu, debian, archlinux) you can create a daemon in the following way.
For Linux distributions that use **systemd** (Ubuntu, Debian, Archlinux) you can create a daemon in the following way.
First, create postgrest configuration in ``/etc/postgrest/config``
@@ -271,7 +271,7 @@ Then create the systemd service file in ``/etc/systemd/system/postgrest.service`
.. code-block:: ini
[Unit]
Description=REST API for any Postgres database
Description=REST API for any PostgreSQL database
After=postgresql.service
[Service]
+25 -25
View File
@@ -255,7 +255,7 @@ A full-text search on the computed column:
GET /people?full_name=fts.Beckett HTTP/1.1
As mentioned, computed columns do not appear in the output by default. However you can include them by listing them in the vertical filtering :code:`select` param:
As mentioned, computed columns do not appear in the output by default. However you can include them by listing them in the vertical filtering :code:`select` parameter:
.. code-block:: HTTP
@@ -314,7 +314,7 @@ Here ``information.cpe`` is a column name.
.. note::
Some http libraries might encode URLs automatically(e.g. :code:`axios`). In these cases you should use double quotes
Some HTTP libraries might encode URLs automatically(e.g. :code:`axios`). In these cases you should use double quotes
:code:`""` directly instead of :code:`%22`.
Ordering
@@ -332,7 +332,7 @@ If no direction is specified it defaults to ascending order:
GET /people?order=age HTTP/1.1
If you care where nulls are sorted, add nullsfirst or nullslast:
If you care where nulls are sorted, add ``nullsfirst`` or ``nullslast``:
.. code-block:: http
@@ -359,7 +359,7 @@ PostgREST uses HTTP range headers to describe the size of results. Every respons
Here items zero through fourteen are returned. This information is available in every response and can help you render pagination controls on the client. This is an RFC7233-compliant solution that keeps the response JSON cleaner.
There are two ways to apply a limit and offset rows: through request headers or query params. When using headers you specify the range of rows desired. This request gets the first twenty people.
There are two ways to apply a limit and offset rows: through request headers or query parameters. When using headers you specify the range of rows desired. This request gets the first twenty people.
.. code-block:: http
@@ -443,7 +443,7 @@ To help with these cases, PostgREST can get the exact count up until a threshold
that threshold is surpassed. To use this behavior, you can specify the ``Prefer: count=estimated`` header. The **threshold** is
defined by :ref:`max-rows`.
Here's an example. Suppose we set ``max-rows=1000`` and *smalltable* has 321 rows, then we'll get the exact count:
Here's an example. Suppose we set ``max-rows=1000`` and ``smalltable`` has 321 rows, then we'll get the exact count:
.. code-block:: http
@@ -455,7 +455,7 @@ Here's an example. Suppose we set ``max-rows=1000`` and *smalltable* has 321 row
HTTP/1.1 206 Partial Content
Content-Range: 0-24/321
If we make a similar request on *bigtable*, which has 3573458 rows, we would get the planned count:
If we make a similar request on ``bigtable``, which has 3573458 rows, we would get the planned count:
.. code-block:: http
@@ -481,13 +481,13 @@ Use the Accept request header to specify the acceptable format (or formats) for
GET /people HTTP/1.1
Accept: application/json
The current possibilities are
The current possibilities are:
* \*/\*
* text/csv
* application/json
* application/openapi+json
* application/octet-stream
* ``*/*``
* ``text/csv``
* ``application/json``
* ``application/openapi+json``
* ``application/octet-stream``
The server will default to JSON for API endpoints and OpenAPI on the root.
@@ -776,7 +776,7 @@ Embedding Disambiguation
------------------------
For doing resource embedding, PostgREST infers the relationship between two tables based on a foreign key between them.
However, in cases where there's more than one foreign key between two tables, it's not possible to infer the relationship unambiguosly
However, in cases where there's more than one foreign key between two tables, it's not possible to infer the relationship unambiguously
by just specifying the tables names.
Target Disambiguation
@@ -850,7 +850,7 @@ Hint Disambiguation
~~~~~~~~~~~~~~~~~~~
If specifying the **target** is not enough for unambiguous embedding, you can add a **hint**. For example, let's assume we create
two VIEWs of ``addresses``: ``central_addresses`` and ``eastern_addresses``.
two views of ``addresses``: ``central_addresses`` and ``eastern_addresses``.
Since PostgREST supports :ref:`embedding_views` by detecting **source foreign keys** in the views, embedding with the foreign key
as the **target** will not be enough for an unambiguous embed:
@@ -914,7 +914,7 @@ URL encoded payloads can be posted with ``Content-Type: application/x-www-form-u
No
"{ \"a\": 1, \"b\": 2 }"
Some javascript libraries will post the data incorrectly if you're not careful. For best results try one of the :ref:`clientside_libraries` built for PostgREST.
Some JavaScript libraries will post the data incorrectly if you're not careful. For best results try one of the :ref:`clientside_libraries` built for PostgREST.
To update a row or rows in a table, use the PATCH verb. Use :ref:`h_filter` to specify which record(s) to update. Here is an example query setting the :code:`category` column to child for all people below a certain age.
@@ -1150,7 +1150,7 @@ PostgreSQL has four procedural languages that are part of the core distribution:
.. note::
Why the `/rpc` prefix? One reason is to avoid name collisions between views and procedures. It also helps emphasize to API consumers that these functions are not normal restful things. The functions can have arbitrary and surprising behavior, not the standard "post creates a resource" thing that users expect from the other routes.
Why the ``/rpc`` prefix? One reason is to avoid name collisions between views and procedures. It also helps emphasize to API consumers that these functions are not normal restful things. The functions can have arbitrary and surprising behavior, not the standard "post creates a resource" thing that users expect from the other routes.
Immutable and stable functions
------------------------------
@@ -1171,10 +1171,10 @@ Because ``add_them`` is ``IMMUTABLE``, we can alternately call the function with
The function parameter names match the JSON object keys in the POST case, for the GET case they match the query parameters ``?a=1&b=2``.
Calling functions with a single json parameter
Calling functions with a single JSON parameter
----------------------------------------------
You can also call a function that takes a single parameter of type json by sending the header :code:`Prefer: params=single-object` with your request. That way the JSON request body will be used as the single argument.
You can also call a function that takes a single parameter of type JSON by sending the header :code:`Prefer: params=single-object` with your request. That way the JSON request body will be used as the single argument.
.. code-block:: plpgsql
@@ -1220,7 +1220,7 @@ as in ``{1,2,3,4}``. Note that the curly brackets have to be urlencoded(``{`` is
.. code-block:: http
GET /rpc/plus_one?arr=%7B1,2,3,4%7D' HTTP/1.1
GET /rpc/plus_one?arr=%7B1,2,3,4%7D' HTTP/1.1
.. note::
@@ -1232,14 +1232,14 @@ as in ``{1,2,3,4}``. Note that the curly brackets have to be urlencoded(``{`` is
{ "arr": "{1,2,3,4}" }
In these versions we recommend using function parameters of type json to accept arrays from the client.
In these versions we recommend using function parameters of type JSON to accept arrays from the client.
.. _s_procs_variadic:
Calling variadic functions
--------------------------
You can call a variadic function by passing a json array in a POST request:
You can call a variadic function by passing a JSON array in a POST request:
.. code-block:: postgres
@@ -1299,7 +1299,7 @@ PostgREST will detect if the function is scalar or table-valued and will shape t
Bulk Call
---------
It's possible to call a function in a bulk way, analoguosly to :ref:`bulk_insert`. To do this, you need to add the
It's possible to call a function in a bulk way, analogously to :ref:`bulk_insert`. To do this, you need to add the
``Prefer: params=multiple-objects`` header to your request.
.. code-block:: http
@@ -1316,7 +1316,7 @@ It's possible to call a function in a bulk way, analoguosly to :ref:`bulk_insert
[ 3, 7 ]
If you have large payloads to process, it's preferrable you instead use a function with an :ref:`array parameter <s_procs_array>` or json parameter, as this will be more efficient.
If you have large payloads to process, it's preferable you instead use a function with an :ref:`array parameter <s_procs_array>` or JSON parameter, as this will be more efficient.
It's also possible to :ref:`Specify Columns <specify_columns>` on functions calls.
@@ -1489,7 +1489,7 @@ HTTP Logic
Accessing Request Headers, Cookies and JWT claims
-------------------------------------------------
You can access request headers, cookies and jwt claims by reading GUC variables set by PostgREST per request. They are named :code:`request.header.XYZ`, :code:`request.cookie.XYZ` and :code:`request.jwt.claim.XYZ`.
You can access request headers, cookies and JWT claims by reading GUC variables set by PostgREST per request. They are named :code:`request.header.XYZ`, :code:`request.cookie.XYZ` and :code:`request.jwt.claim.XYZ`.
.. code-block:: postgresql
@@ -1707,7 +1707,7 @@ PostgREST translates `PostgreSQL error codes <https://www.postgresql.org/docs/cu
+--------------------------+-------------------------+---------------------------------+
| 58* | 500 | system error |
+--------------------------+-------------------------+---------------------------------+
| F0* | 500 | conf file error |
| F0* | 500 | config file error |
+--------------------------+-------------------------+---------------------------------+
| HV* | 500 | foreign data wrapper error |
+--------------------------+-------------------------+---------------------------------+
+1 -1
View File
@@ -182,7 +182,7 @@ Next write a stored procedure that returns the token. The one below returns a to
) r;
$$ LANGUAGE sql;
PostgREST exposes this function to clients via a POST request to `/rpc/jwt_test`.
PostgREST exposes this function to clients via a POST request to ``/rpc/jwt_test``.
.. note::
+7 -7
View File
@@ -30,9 +30,9 @@ The user specified in the db-uri is also known as the authenticator role. For mo
Here is the full list of configuration parameters.
======================== ====== ========= ========
======================== ======= ========= ========
Name Type Default Required
======================== ====== ========= ========
======================== ======= ========= ========
db-uri String Y
db-schema String Y
db-anon-role String Y
@@ -43,16 +43,16 @@ server-host String !4
server-port Int 3000
server-unix-socket String
server-unix-socket-mode String 660
openapi-server-proxy-uri String
openapi-server-proxy-uri String
jwt-secret String
jwt-aud String
secret-is-base64 Bool False
secret-is-base64 Boolean False
max-rows Int ∞
pre-request String
app.settings.* String
role-claim-key String .role
raw-media-types String
======================== ====== ========= ========
======================== ======= ========= ========
.. _db-uri:
@@ -266,8 +266,8 @@ raw-media-types
These media types can be requested by following the same rules as the ones defined in :ref:`binary_output`.
As an example, the below config would allow you to request an **image** and an **xml** by doing a request with ``Accept: image/png``
and a request with ``Accept: text/xml``, respectively.
As an example, the below config would allow you to request an **image** and a **XML** file by doing a request with ``Accept: image/png``
or ``Accept: text/xml``, respectively.
.. code:: bash
+4 -4
View File
@@ -41,18 +41,18 @@ To help with development, you'll need to build from source. `Stack <https://gith
Running the Test Suite
======================
To properly run the test suite, you need a Postgres database that the tests can run against. There are several ways to set up this database.
To properly run the test suite, you need a PostgreSQL database that the tests can run against. There are several ways to set up this database.
Testing with a temporary database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have Postgres installed locally (:code:`initdb`, :code:`pg_ctl` and :code:`psql` should be on your PATH, no server needs to be running), you can run the test suite against a temporary database:
If you have PostgreSQL installed locally (:code:`initdb`, :code:`pg_ctl` and :code:`psql` should be on your PATH, no server needs to be running), you can run the test suite against a temporary database:
.. code:: bash
test/with_tmp_db stack test
The :code:`with_tmp_db` script will set up a new Postgres cluster in a temporary directory, set the required environment variables and run the command that you passed it as an argument, :code:`stack test` in the example above. When the command is done, the temporary database is torn down and deleted again.
The :code:`with_tmp_db` script will set up a new PostgreSQL cluster in a temporary directory, set the required environment variables and run the command that you passed it as an argument, :code:`stack test` in the example above. When the command is done, the temporary database is torn down and deleted again.
Manually creating the Test Database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -84,7 +84,7 @@ Running the Tests with the manually created database
To run the tests, one must supply the database uri in the environment variable :code:`POSTGREST_TEST_CONNECTION`.
Typically, one would create the database and run the test in the same command line, using the `postgres` superuser:
Typically, one would create the database and run the test in the same command line, using the ``postgres`` superuser:
.. code:: bash
+10 -10
View File
@@ -6,7 +6,7 @@ Community Tutorials
* `Building a Contacts List with PostgREST and Vue.js <https://www.youtube.com/watch?v=iHtsALtD5-U>`_ -
In this video series, DigitalOcean shows how to build and deploy an Nginx + PostgREST(using a managed PostgreSQL database) + Vue.js webapp in an Ubuntu server droplet.
* `PostgREST + Auth0: Create REST API in mintutes, and add social login using Auth0 <https://samkhawase.com/blog/postgrest/>`_ - A step-by-step tutorial to show how to Dockerize and integrate Auth0 to PostgREST service.
* `PostgREST + Auth0: Create REST API in mintutes, and add social login using Auth0 <https://samkhawase.com/blog/postgrest/>`_ - A step-by-step tutorial to show how to dockerize and integrate Auth0 to PostgREST service.
* `PostgREST + PostGIS API tutorial in 5 minutes <https://gis-ops.com/postgrest-postgis-api-tutorial-geospatial-api-in-5-minutes/>`_ -
In this tutorial, GIS • OPS shows how to perform PostGIS calculations through PostgREST :ref:`s_procs` interface.
@@ -23,10 +23,10 @@ Example Apps
* `tatut/postgrest-ui <https://github.com/tatut/postgrest-ui>`_ - ClojureScript UI components for PostgREST
* `priyank-purohit/PostGUI <https://github.com/priyank-purohit/PostGUI>`_ - React Material UI admin panel
* `Qu4tro/pgrst-dev-setup <https://github.com/Qu4tro/pgrst-dev-setup>`_ - docker-compose and tmuxp setup for experimentation.
* `subzerocloud/postgrest-starter-kit <https://github.com/subzerocloud/postgrest-starter-kit>`_ - Boilerplate for new project
* `NikolayS/postgrest-google-translate <https://github.com/NikolayS/postgrest-google-translate>`_ - Calling to external translation service
* `subzerocloud/postgrest-starter-kit <https://github.com/subzerocloud/postgrest-starter-kit>`_ - boilerplate for new project
* `NikolayS/postgrest-google-translate <https://github.com/NikolayS/postgrest-google-translate>`_ - calling to external translation service
* `CodeforAustralia/heritage-near-me <https://github.com/CodeforAustralia/heritage-near-me>`_ - Elm and PostgREST with PostGIS
* `timwis/handsontable-postgrest <https://github.com/timwis/handsontable-postgrest>`_ - An excel-like database table editor
* `timwis/handsontable-postgrest <https://github.com/timwis/handsontable-postgrest>`_ - an excel-like database table editor
* `Recmo/PostgrestSkeleton <https://github.com/Recmo/PostgrestSkeleton>`_ - Docker Compose, PostgREST, Nginx and Auth0
* `benoror/ember-postgrest-dynamic-ui <https://github.com/benoror/ember-postgrest-dynamic-ui>`_ - generating Ember forms to edit data
* `ruslantalpa/blogdemo <https://github.com/ruslantalpa/blogdemo>`_ - blog api demo in a vagrant image
@@ -39,7 +39,7 @@ Example Apps
* `SMRxT/postgrest-demo <https://github.com/SMRxT/postgrest-demo>`_ - multi-tenant logging system
* `PierreRochard/postgrest-boilerplate <https://github.com/PierreRochard/postgrest-boilerplate>`_ - example auth back-end
* `marmelab/ng-admin-postgrest <https://github.com/marmelab/ng-admin-postgrest>`_ - automatic database admin panel
* `seveibar/postgrest-vercel <https://github.com/seveibar/postgrest-vercel>`_ - Run postgrest on Vercel (Serverless/AWS Lambda)
* `seveibar/postgrest-vercel <https://github.com/seveibar/postgrest-vercel>`_ - run PostgREST on Vercel (Serverless/AWS Lambda)
.. _eco_external_notification:
@@ -48,7 +48,7 @@ External Notification
These are PostgreSQL bridges that propagate LISTEN/NOTIFY to external queues for further processing. This allows stored procedures to initiate actions outside the database such as sending emails.
* `vbalasu/pg-notify-webhook <https://pypi.org/project/pg-notify-webhook/>`_ - Trigger webhooks from postgres LISTEN/NOTIFY
* `vbalasu/pg-notify-webhook <https://pypi.org/project/pg-notify-webhook/>`_ - trigger webhooks from PostgreSQL's LISTEN/NOTIFY
* `diogob/postgres-websockets <https://github.com/diogob/postgres-websockets>`_ - expose web sockets for PostgreSQL's LISTEN/NOTIFY
* `frafra/postgresql2websocket <https://github.com/frafra/postgresql2websocket>`_ - Websockets
* `matthewmueller/pg-bridge <https://github.com/matthewmueller/pg-bridge>`_ - Amazon SNS
@@ -63,14 +63,14 @@ These are PostgreSQL bridges that propagate LISTEN/NOTIFY to external queues for
Extensions
----------
* `pg-safeupdate <https://github.com/eradman/pg-safeupdate>`_ - Prevent full-table updates or deletes
* `pg-safeupdate <https://github.com/eradman/pg-safeupdate>`_ - prevent full-table updates or deletes
* `srid/spas <https://github.com/srid/spas>`_ - allow file uploads and basic auth
* `svmnotn/postgrest-auth <https://github.com/svmnotn/postgrest-auth>`_ - OAuth2-inspired external auth server
* `wildsurfer/postgrest-oauth-server <https://github.com/wildsurfer/postgrest-oauth-server>`_ - OAuth2 server
* `nblumoe/postgrest-oauth <https://github.com/nblumoe/postgrest-oauth>`_ - OAuth2 WAI middleware
* `criles25/postgrest-auth <https://github.com/criles25/postgrest-auth>`_ - email based auth/signup
* `ppKrauss/PostgREST-writeAPI <https://github.com/ppKrauss/PostgREST-writeAPI>`_ - generate Nginx rewrite rules to fit an OpenAPI spec
* `seveibar/postgrest-node <https://github.com/seveibar/postgrest-node>`_ - Run a postgrest server in NodeJS via an npm module
* `ppKrauss/PostgREST-writeAPI <https://github.com/ppKrauss/PostgREST-writeAPI>`_ - generate nginx rewrite rules to fit an OpenAPI spec
* `seveibar/postgrest-node <https://github.com/seveibar/postgrest-node>`_ - Run a PostgREST server in Node.js via npm module
* `Exahilosys/aiodata <https://github.com/Exahilosys/aiodata>`_ - Python, event-based proxy and caching client.
.. _clientside_libraries:
@@ -95,7 +95,7 @@ Client-Side Libraries
* `clesiemo3/postgrestR <https://github.com/clesiemo3/postgrestR>`_ - R
* `PierreRochard/postgrest-angular <https://github.com/PierreRochard/postgrest-angular>`_ - TypeScript, generate UI from API description
* `thejettdurham/postgrest-sharp-client <https://github.com/thejettdurham/postgrest-sharp-client>`_ (needs maintainer) - C#, RestSharp
* `team142/ng-postgrest <https://github.com/team142/ng-postgrest>`_ - Angular app for browsing, editing data exposed over Postgrest.
* `team142/ng-postgrest <https://github.com/team142/ng-postgrest>`_ - Angular app for browsing, editing data exposed over PostgREST.
* `andytango/redux-postgrest <https://github.com/andytango/redux-postgrest>`_ - TypeScript/JS, client integrated with (React) Redux.
.. _eco_commercial:
+3 -3
View File
@@ -80,12 +80,12 @@ The result now is:
}
]
You can use the same idea for creating custom CASTs for different types.
You can use the same idea for creating custom casts for different types.
.. note::
If you don't want to modify CASTs for built-in types, an option would be to `create a custom type <https://www.postgresql.org/docs/current/sql-createtype.html>`_
for your own ``tsrange`` and add its own CAST.
If you don't want to modify casts for built-in types, an option would be to `create a custom type <https://www.postgresql.org/docs/current/sql-createtype.html>`_
for your own ``tsrange`` and add its own cast.
.. code-block:: postgres
+3 -3
View File
@@ -1,11 +1,11 @@
.. _providing_img:
Providing images for <img>
==========================
Providing images for ``<img>``
==============================
:author: `pkel <https://github.com/pkel>`_
In this how-to, you will learn how to create an endpoint for providing images to HTML :code:`<img>` tags without client side javascript.
In this how-to, you will learn how to create an endpoint for providing images to HTML :code:`<img>` tags without client side JavaScript.
The resulting HTML might look like this:
.. code-block:: html
+1 -1
View File
@@ -238,7 +238,7 @@ Testimonials
-- Louis Brauer
"I really enjoyed the fact that all of a sudden I was writing
microservices in SQL DDL (and v8 javascript functions). I dodged so
microservices in SQL DDL (and v8 JavaScript functions). I dodged so
much boilerplate. The next thing I knew, we pulled out a full rewrite
of a Spring+MySQL legacy app in 6 months. Literally 10x faster, and
code was super concise. The old one took 3 years and a team of 4
+2 -2
View File
@@ -51,7 +51,7 @@ If you downloaded PostgREST from the release page, first extract the compressed
# On Windows you should unzip the file
Now you can run postgrest with the :code:`--help` flag to see usage instructions:
Now you can run PostgREST with the :code:`--help` flag to see usage instructions:
.. code-block:: bash
@@ -218,7 +218,7 @@ Assuming your making modifications locally and then pushing to GitHub, it's easy
1. Create a new app on Heroku
2. In Settings add the following buildpack :code:`https://github.com/PostgREST/postgrest-heroku`
3. Add the require Config Vars in Heroku (see https://github.com/PostgREST/postgrest/blob/master/app.json#L7-L57 for more details)
4. Modify your postgrest.conf file as required to match your Config Vars in Heroku
4. Modify your ``postgrest.conf`` file as required to match your Config Vars in Heroku
5. Create your :code:`Procfile` and add :code:`./env-to-config ./postgrest postgrest.conf`
6. Push your changes to GitHub
7. Set Heroku to automatically deploy from Master and then manually deploy the branch for the first build
+48 -13
View File
@@ -1,24 +1,35 @@
personal_ws-1.1 en 0 utf-8
Adossi
AMQP
api
API's
Archlinux
aud
Auth
auth
authenticator
balancer
Bool
Beles
Bouscal
buildpack
cd
centric
conf
changelog
ClojureScript
config
cryptographically
CSV
csv
Daemonizing
DDL
DiBiase
disjoined
dockerize
DoS
eq
Fenko
Fernandes
filename
FreeBSD
fts
GHC
Github
@@ -27,23 +38,24 @@ grantor
GraphQL
gte
GUC
Gumbs
Haskell
Heroku
HMAC
Homebrew
http
HTTPS
HV
ILIKE
ilike
io
IP
JS
js
JSON
json
JWK
JWT
jwt
Kinesis
Kofi
localhost
login
Logins
@@ -51,31 +63,36 @@ logins
lon
lt
lte
macOS
middleware
misprediction
Mithril
multi
MVCC
namespace
namespaced
neq
NGINX
Nginx
nginx
ngrep
nullsfirst
nullslast
nixpkgs
npm
nxl
nxr
OAuth
onwards
OpenAPI
openapi
ORM
ov
param
params
passphrase
Pelletier
Petr
pgcrypto
pgjwt
pgSQL
phfts
phraseto
plainto
plfts
PostGIS
PostgreSQL
@@ -84,18 +101,24 @@ PostgREST
postgrest
PostgREST's
pre
psql
Qin
RabbitMQ
Rafaj
RDS
reallyreallyreallyreallyverysafe
Redux
refactor
requester's
RESTful
RestSharp
RLS
RPC
RSA
savepoint
schemas
Sencha
Serverless
SHA
signup
SIGUSR
@@ -108,23 +131,35 @@ sr
SSL
stateful
stdout
Stolarz
SuperAgent
syslog
systemd
Tcl
tmuxp
todo
todos
Tsingson
tsquery
TypeScript
UI
ui
unicode
unix
UPSERT
Upsert
uri
url
urls
variadic
Vercel
verifier
versioning
Vondra
Vue
WAI
webhooks
websearch
Websockets
webuser
wfts
ZeroMQ
+2 -2
View File
@@ -10,7 +10,7 @@ These are changes yet unreleased. If you'd like to try them out before a new off
Added
-----
* Allow http status override through the :ref:`response.status <guc_resp_status>` GUC.
* Allow HTTP status override through the :ref:`response.status <guc_resp_status>` GUC.
|br| -- `@steve-chavez <https://github.com/steve-chavez>`_
* Allow :ref:`s_procs_variadic`.
|br| -- `@wolfgangwalther <https://github.com/wolfgangwalther>`_
@@ -24,6 +24,6 @@ Fixed
Changed
-------
* Docker images are now optimized to be built from the scratch image. This reduces the compressed image size from over 30mb to about 4mb.
* Docker images are now optimized to be built from the scratch image. This reduces the compressed image size from over 30 MB to about 4 MB.
For more details, see `Docker image built with Nix <https://github.com/PostgREST/postgrest/tree/master/nix/docker#docker-image-built-with-nix>`_.
|br| -- `@monacoremo <https://github.com/monacoremo>`_
+2 -2
View File
@@ -5,7 +5,7 @@
v7.0.0
======
You can donwload this release at the `PostgREST v7.0.0 release page <https://github.com/PostgREST/postgrest/releases/tag/v7.0.0>`_.
You can download this release at the `PostgREST v7.0.0 release page <https://github.com/PostgREST/postgrest/releases/tag/v7.0.0>`_.
Added
-----
@@ -45,7 +45,7 @@ Added
Fixed
-----
* Allow embedding a VIEW when its source table foreign key is UNIQUE
* Allow embedding a view when its source table foreign key is UNIQUE
|br| -- `@bwbroersma <https://github.com/bwbroersma>`_
* ``Accept: application/vnd.pgrst.object+json`` behavior is now enforced for POST/PATCH/DELETE regardless of ``Prefer: return=minimal``
+7 -7
View File
@@ -20,7 +20,7 @@ This allows you to change the internals of your schema and maintain backwards co
Functions
=========
By default, when a function is created, the privilege to execute it is not restricted by role. The function access is PUBLIC—executable by all roles (more details at `PostgreSQL Privileges page <https://www.postgresql.org/docs/12/ddl-priv.html>`_). This is not ideal for an API schema. To disable this behavior, you can run the following SQL statement:
By default, when a function is created, the privilege to execute it is not restricted by role. The function access is ``PUBLIC``executable by all roles (more details at `PostgreSQL Privileges page <https://www.postgresql.org/docs/12/ddl-priv.html>`_). This is not ideal for an API schema. To disable this behavior, you can run the following SQL statement:
.. code-block:: postgres
@@ -55,7 +55,7 @@ Security definer
----------------
A function is executed with the privileges of the user who calls it. This means that the user has to have all permissions to do the operations the procedure performs.
If the function accesses private database objects, your :ref:`API roles <roles>` won't be able to succesfully execute the function.
If the function accesses private database objects, your :ref:`API roles <roles>` won't be able to successfully execute the function.
Another option is to define the function with the :code:`SECURITY DEFINER` option. Then only one permission check will take place, the permission to call the function, and the operations in the function will have the authority of the user who owns the function itself.
@@ -84,13 +84,13 @@ For changing this, we can create a non-SUPERUSER role and make this role the vie
.. code-block:: postgres
CREATE ROLE api_views_owner NOINHERIT;
ALTER VIEW sample_view OWNER TO api_views_owner;
CREATE ROLE api_views_owner NOINHERIT;
ALTER VIEW sample_view OWNER TO api_views_owner;
Rules
-----
Insertion on VIEWs with complex `RULEs <https://www.postgresql.org/docs/11/sql-createrule.html>`_ might not work out of the box with PostgREST.
It's recommended that you `use triggers instead of RULEs <https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_rules>`_.
If you want to keep using RULEs, a workaround is to wrap the VIEW insertion in a stored procedure and call it through the :ref:`s_procs` interface.
Insertion on views with complex `rules <https://www.postgresql.org/docs/11/sql-createrule.html>`_ might not work out of the box with PostgREST.
It's recommended that you `use triggers instead of rules <https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_rules>`_.
If you want to keep using rules, a workaround is to wrap the view insertion in a stored procedure and call it through the :ref:`s_procs` interface.
For more details, see this `github issue <https://github.com/PostgREST/postgrest/issues/1283>`_.