Docs: realtime self-hosted (#9843)

* Adds a generated folder

* Adds a realtime section

* docs: add Realtime v0 self-host parameters (#9915)

Co-authored-by: Wen Bo Xie <5532241+w3b6x9@users.noreply.github.com>
This commit is contained in:
CoppleandWen Bo Xie authored and GitHub committed 2022-10-28 13:35:46 +02:00
1 parent ef0b8726fe
commit 42ea5eeaad
15 files changed
+375 -22

No files matched your search

Whitespace-only changes.
+58
View File
@@ -0,0 +1,58 @@
---
slug: /
sidebar_position: 1
sidebar_label: Realtime Server
---
# Supabase Realtime Server
Supabase Realtime is a server built with Elixir using the [Phoenix Framework](https://www.phoenixframework.org) that allows you to listen to changes in your PostgreSQL database via logical replication and then broadcast those changes via WebSockets.
There are two versions of this server: `Realtime` and `Realtime RLS`.
`Realtime` server works by:
1. listening to PostgreSQL's replication functionality (using PostgreSQL's logical decoding)
2. converting the byte stream into JSON
3. broadcasting to all connected clients over WebSockets
`Realtime RLS` server works by:
1. polling PostgreSQL's replication functionality (using PostgreSQL's logical decoding and [wal2json](https://github.com/eulerto/wal2json) output plugin)
2. passing database changes to a [Write Ahead Log Realtime Unified Security (WALRUS)](https://github.com/supabase/walrus) PostgresSQL function and receiving a list of authorized subscribers depending on Row Level Security (RLS) policies
3. converting the changes into JSON
4. broadcasting to authorized subscribers over WebSockets
### Why not just use PostgreSQL's `NOTIFY`?
A few reasons:
1. You don't have to set up triggers on every table.
2. `NOTIFY` has a payload limit of 8000 bytes and will fail for anything larger. The usual solution is to send an ID and then fetch the record, but that's heavy on the database.
3. `Realtime` server consumes two connections to the database, then you can connect many clients to this server. Easier on your database, and to scale up you just add additional `Realtime` servers.
### Benefits
1. The beauty of listening to the replication functionality is that you can make changes to your database from anywhere - your API, directly in the DB, via a console, etc. - and you will still receive the changes via WebSockets.
2. Decoupling. For example, if you want to send a new slack message every time someone makes a new purchase you might build that functionality directly into your API. This allows you to decouple your async functionality from your API.
3. This is built with Phoenix, an [extremely scalable Elixir framework](https://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections).
### Does this server guarantee delivery of every data change?
Not yet! Due to the following limitations:
1. Postgres database runs out of disk space due to Write-Ahead Logging (WAL) buildup, which can crash the database and prevent Realtime server from receiving and broadcasting changes. This can be mitigated in the Realtime RLS version of this server by setting the Postgres config `max_slot_wal_keep_size` to a reasonable size.
2. Realtime server can crash due to a larger replication lag than available memory, forcing the creation of a new replication slot and resetting replication to read from the latest WAL data.
3. When Realtime server falls too far behind for any reason, for example disconnecting from database as WAL continues to build up, then database can delete WAL segments the server still needs to read from, for example after reconnecting.
## Client libraries
- [JavaScript](https://github.com/supabase/realtime-js)
- [Dart](https://github.com/supabase/realtime-dart)
## Additional Links
- [Source Code](https://github.com/supabase/storage-api)
- [Known bugs and issues](https://github.com/supabase/storage-js/issues)
- [Storage Guides](https://supabase.com/docs/guides/storage)
- [OpenAPI Docs](https://supabase.github.io/storage-api/)
@@ -0,0 +1,7 @@
---
id: release-notes
---
# Release Notes
All release notes can be found in the [GitHub Releases](https://github.com/supabase/realtime/releases) page.
Whitespace-only changes.
Whitespace-only changes.
+10
View File
@@ -58,6 +58,16 @@ Reference documentation for self-hosting Supabase features.
/>
</div>
{/* */}
<div class="col col--6">
<ButtonCard
class="card"
to={useBaseUrl('/reference/realtime')}
style={{ height: '100%' }}
title={'Realtime'}
description="Build multiplayer applications and listen to your database changes via websockets."
/>
</div>
{/* */}
<div class="col col--6">
<ButtonCard
class="card"
+12
View File
@@ -81,6 +81,18 @@ const config = {
'https://github.com/supabase/supabase/edit/master/apps/reference/',
},
],
[
'@docusaurus/plugin-content-docs',
{
id: '_realtime',
path: '_realtime',
routeBasePath: '/reference/realtime',
sidebarPath: require.resolve('./nav/realtime_sidebars.js'),
breadcrumbs: false,
editUrl:
'https://github.com/supabase/supabase/edit/master/apps/reference/',
},
],
[
'@docusaurus/plugin-content-docs',
{
+1
View File
@@ -312,6 +312,7 @@ const sidebars = {
collapsed: false,
items: [
{ type: 'link', label: 'Auth Server', href: '/reference/auth' },
{ type: 'link', label: 'Realtime Server', href: '/reference/realtime' },
{ type: 'link', label: 'Storage Server', href: '/reference/storage' },
],
},
+31
View File
@@ -0,0 +1,31 @@
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
// tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
sidebar: [
'intro',
'generated/config',
'release-notes',
// {
// type: "category",
// label: "Release Notes",
// items: ["release-notes"],
// },
],
}
module.exports = sidebars
+4 -2
View File
@@ -18,7 +18,7 @@
"storage:version": "docusaurus docs:version:_storage",
"supabase-js:version": "docusaurus docs:version:_supabase_js",
"supabase-dart:version": "docusaurus docs:version:_supabase_dart",
"generate:all": "npm-run-all --parallel gen:api gen:cli gen:gotrue gen:storage gen:supabase-dart:v0 gen:supabase-dart:v1 gen:supabase-js:v1 gen:supabase-js:v2",
"generate:all": "npm-run-all --parallel gen:api gen:cli gen:gotrue gen:storage gen:supabase-dart:v0 gen:supabase-dart:v1 gen:supabase-js:v1 gen:supabase-js:v2 gen:realtime",
"gen:api": "npm-run-all gen:api:usage",
"gen:api:usage": "ts-node ./generator/index.ts gen --type api --url https://api.supabase.com --input ../../spec/transforms/api_v0_openapi_deparsed.json --output ./_api/usage.mdx",
"gen:cli": "npm-run-all gen:cli:commands gen:cli:config",
@@ -37,7 +37,9 @@
"gen:supabase-js:v1": "npm-run-all gen:supabase-js:v1:ref",
"gen:supabase-js:v1:ref": "ts-node ./generator/index.ts gen --type legacy --input ../../spec/supabase_js_v1.yml --output ./_supabase_js_versioned_docs/version-v1/generated",
"gen:supabase-js:v2": "npm-run-all gen:supabase-js:v2:ref",
"gen:supabase-js:v2:ref": "ts-node ./generator/index.ts gen --type legacy --input ../../spec/supabase_js_v2.yml --output ./_supabase_js/generated"
"gen:supabase-js:v2:ref": "ts-node ./generator/index.ts gen --type legacy --input ../../spec/supabase_js_v2.yml --output ./_supabase_js/generated",
"gen:realtime": "npm-run-all gen:realtime:config",
"gen:realtime:config": "ts-node ./generator/index.ts gen --type config --input ../../spec/realtime_v0_config.yaml --output ./_realtime/generated/config.mdx"
},
"dependencies": {
"@docusaurus/core": "^2.0.1",
@@ -10,6 +10,7 @@ const subNavRoutes = [
`/${baseUrl}/reference/cli`,
`/${baseUrl}/reference/auth`,
`/${baseUrl}/reference/storage`,
`/${baseUrl}/reference/realtime`,
`/${baseUrl}/reference/javascript`,
`/${baseUrl}/reference/dart`,
]
@@ -26,6 +27,9 @@ const headerNames = {
auth: {
name: 'Auth',
},
realtime: {
name: 'Realtime',
},
storage: {
name: 'Storage',
},
+1 -1
View File
@@ -39,7 +39,7 @@ info:
# This section is an array of public functions which a user might need to execute.
parameters:
- id: 'project_id' # {string} A unique identifier for this param.
title: 'project_id' # {string} Any a name.
title: 'project_id' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
required: true
# default: '5432'
+1 -1
View File
@@ -24,7 +24,7 @@ info:
# This section is an array of public functions which a user might need to execute.
parameters:
- id: 'project_id' # {string} A unique identifier for this param.
title: 'project_id' # {string} Any a name.
title: 'project_id' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
required: true
# default: '5432'
+228
View File
@@ -0,0 +1,228 @@
configspec: '001'
# This section outlines the general information for the tool.
info:
id: 'storage' # {string} A unique ID for this tool.
version: 'next' # {string} The current version number of the tool.
title: 'Storage' # {string} A readable name.
source: 'https://github.com/supabase/realtime' # {string} Where developers can find the source code.
bugs: 'https://github.com/supabase/realtime/issues' # {string} Where developers can file bugs.
spec: 'https://github.com/supabase/supabase/blob/master/spec/realtime_v0_config.yml' # {string} Where developers can find this spec (to link directly in the docs).
description: |
You can use Environment Variables to configure your Realtime Server.
tags:
- id: general
title: General Settings
description: General server settings.
- id: database
title: Database Settings
description: Connecting to your database.
# This section is an array of public functions which a user might need to execute.
parameters:
- id: 'PORT' # {string} A unique identifier for this param.
title: 'PORT' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '4000'
description: |
Port which you can connect your client/listeners
- id: 'DB_HOST' # {string} A unique identifier for this param.
title: 'DB_HOST' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'localhost'
description: |
Database host URL
- id: 'DB_NAME' # {string} A unique identifier for this param.
title: 'DB_NAME' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'postgres'
description: |
Database name
- id: 'DB_USER' # {string} A unique identifier for this param.
title: 'DB_USER' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'postgres'
description: |
Database user
- id: 'DB_PASSWORD' # {string} A unique identifier for this param.
title: 'DB_PASSWORD' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'postgres'
description: |
Database password
- id: 'DB_PORT' # {string} A unique identifier for this param.
title: 'DB_PORT' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '5432'
description: |
Database port
- id: 'DB_SSL' # {string} A unique identifier for this param.
title: 'DB_SSL' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'true'
description: |
Database SSL connection
- id: 'DB_IP_VERSION' # {string} A unique identifier for this param.
title: 'DB_IP_VERSION' # {string} Any name.
tags: ['database'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'IPv4'
description: |
Connect to database via either IPv4 or IPv6. Disregarded if database host is an IP address (e.g. '127.0.0.1') and recommended if database host is a name (e.g. 'db.abcd.supabase.co') to prevent potential non-existent domain (NXDOMAIN) errors.
- id: 'REPLICATION_MODE' # {string} A unique identifier for this param.
title: 'REPLICATION_MODE' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'RLS'
description: |
Connect to database via either IPv4 or IPv6. Disregarded if database host is an IP address (e.g. '127.0.0.1') and recommended if database host is a name (e.g. 'db.abcd.supabase.co') to prevent potential non-existent domain (NXDOMAIN) errors.
- id: 'SLOT_NAME' # {string} A unique identifier for this param.
title: 'SLOT_NAME' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'realtime_rls'
description: |
A unique name for Postgres to track the Write-Ahead Logging (WAL). If the Realtime server dies then this slot can keep the changes since the last commited position.
- id: 'TEMPORARY_SLOT' # {string} A unique identifier for this param.
title: 'TEMPORARY_SLOT' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'false'
description: |
Start logical replication slot as either temporary or permanent
- id: 'REALTIME_IP_VERSION' # {string} A unique identifier for this param.
title: 'REALTIME_IP_VERSION' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'IPV6'
description: |
Bind realtime via either IPv4 or IPv6
- id: 'PUBLICATIONS' # {string} A unique identifier for this param.
title: 'PUBLICATIONS' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '[\"supabase_realtime\"]'
description: |
JSON encoded array of publication names. Realtime RLS currently accepts one publication.
- id: 'SECURE_CHANNELS' # {string} A unique identifier for this param.
title: 'SECURE_CHANNELS' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'true'
description: |
Enable/Disable channels authorization via JWT verification
- id: 'JWT_SECRET' # {string} A unique identifier for this param.
title: 'JWT_SECRET' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '""'
description: |
HS algorithm octet key (e.g. "95x0oR8jq9unl9pOIx")
- id: 'JWT_CLAIM_VALIDATORS' # {string} A unique identifier for this param.
title: 'JWT_CLAIM_VALIDATORS' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '{}'
description: |
Expected claim key/value pairs compared to JWT claims via equality checks in order to validate JWT. e.g. '{"iss": "Issuer", "nbf": 1610078130}'.
- id: 'EXPOSE_METRICS' # {string} A unique identifier for this param.
title: 'EXPOSE_METRICS' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: 'false'
description: |
Expose Prometheus metrics at '/metrics' endpoint.
- id: 'DB_RECONNECT_BACKOFF_MIN' # {string} A unique identifier for this param.
title: 'DB_RECONNECT_BACKOFF_MIN' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '100'
description: |
Specify the minimum amount of time to wait before reconnecting to database
- id: 'DB_RECONNECT_BACKOFF_MAX' # {string} A unique identifier for this param.
title: 'DB_RECONNECT_BACKOFF_MAX' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '120000'
description: |
Specify the maximum amount of time to wait before reconnecting to database
- id: 'REPLICATION_POLL_INTERVAL' # {string} A unique identifier for this param.
title: 'REPLICATION_POLL_INTERVAL' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '300'
description: |
Specify how often Realtime RLS should poll the replication slot for changes
- id: 'SUBSCRIPTION_SYNC_INTERVAL' # {string} A unique identifier for this param.
title: 'SUBSCRIPTION_SYNC_INTERVAL' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '60000'
description: |
Specify how often Realtime RLS should confirm connected subscribers and the tables they're listening to
- id: 'MAX_CHANGES' # {string} A unique identifier for this param.
title: 'MAX_CHANGES' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '100'
description: |
Soft limit for the number of database changes to fetch per replication poll
- id: 'MAX_RECORD_BYTES' # {string} A unique identifier for this param.
title: 'MAX_RECORD_BYTES' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
default: '1048576' # bytes or 1MB
description: |
Controls the maximum size of a WAL record
+18 -18
View File
@@ -23,7 +23,7 @@ info:
# This section is an array of public functions which a user might need to execute.
parameters:
- id: 'ANON_KEY' # {string} A unique identifier for this param.
title: 'ANON_KEY' # {string} Any a name.
title: 'ANON_KEY' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -32,7 +32,7 @@ parameters:
A long-lived JWT with anonymous Postgres privileges.
- id: 'SERVICE_KEY' # {string} A unique identifier for this param.
title: 'SERVICE_KEY' # {string} Any a name.
title: 'SERVICE_KEY' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -41,7 +41,7 @@ parameters:
A long-lived JWT with Postgres privileges to bypass Row Level Security.
- id: 'TENANT_ID' # {string} A unique identifier for this param.
title: 'TENANT_ID' # {string} Any a name.
title: 'TENANT_ID' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -50,7 +50,7 @@ parameters:
The ID of a Storage tenant.
- id: 'REGION' # {string} A unique identifier for this param.
title: 'REGION' # {string} Any a name.
title: 'REGION' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -59,7 +59,7 @@ parameters:
Region of your S3 bucket.
- id: 'GLOBAL_S3_BUCKET' # {string} A unique identifier for this param.
title: 'GLOBAL_S3_BUCKET' # {string} Any a name.
title: 'GLOBAL_S3_BUCKET' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -68,7 +68,7 @@ parameters:
Name of your S3 bucket.
- id: 'POSTGREST_URL' # {string} A unique identifier for this param.
title: 'POSTGREST_URL' # {string} Any a name.
title: 'POSTGREST_URL' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -77,7 +77,7 @@ parameters:
The URL of your PostgREST server.
- id: 'PGRST_JWT_SECRET' # {string} A unique identifier for this param.
title: 'PGRST_JWT_SECRET' # {string} Any a name.
title: 'PGRST_JWT_SECRET' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -86,7 +86,7 @@ parameters:
A JWT Secret for the PostgREST database.
- id: 'DATABASE_URL' # {string} A unique identifier for this param.
title: 'DATABASE_URL' # {string} Any a name.
title: 'DATABASE_URL' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -95,7 +95,7 @@ parameters:
The URL of your Postgres database.
- id: 'PGOPTIONS' # {string} A unique identifier for this param.
title: 'PGOPTIONS' # {string} Any a name.
title: 'PGOPTIONS' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -104,7 +104,7 @@ parameters:
Additional configuration parameters for Postgres startup.
- id: 'FILE_SIZE_LIMIT' # {string} A unique identifier for this param.
title: 'FILE_SIZE_LIMIT' # {string} Any a name.
title: 'FILE_SIZE_LIMIT' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -113,7 +113,7 @@ parameters:
The maximum file size allowed.
- id: 'STORAGE_BACKEND' # {string} A unique identifier for this param.
title: 'STORAGE_BACKEND' # {string} Any a name.
title: 'STORAGE_BACKEND' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -122,7 +122,7 @@ parameters:
The storage provider.
- id: 'FILE_STORAGE_BACKEND_PATH' # {string} A unique identifier for this param.
title: 'FILE_STORAGE_BACKEND_PATH' # {string} Any a name.
title: 'FILE_STORAGE_BACKEND_PATH' # {string} Any name.
tags: ['general'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -131,7 +131,7 @@ parameters:
The location storage when the "STORAGE_BACKEND" is set to "file".
- id: 'IS_MULTITENANT' # {string} A unique identifier for this param.
title: 'IS_MULTITENANT' # {string} Any a name.
title: 'IS_MULTITENANT' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -140,7 +140,7 @@ parameters:
Operate across multiple tenants.
- id: 'MULTITENANT_DATABASE_URL' # {string} A unique identifier for this param.
title: 'MULTITENANT_DATABASE_URL' # {string} Any a name.
title: 'MULTITENANT_DATABASE_URL' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -149,7 +149,7 @@ parameters:
The URL of the multitenant Postgres database.
- id: 'X_FORWARDED_HOST_REGEXP' # {string} A unique identifier for this param.
title: 'X_FORWARDED_HOST_REGEXP' # {string} Any a name.
title: 'X_FORWARDED_HOST_REGEXP' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -158,7 +158,7 @@ parameters:
TBD.
- id: 'POSTGREST_URL_SUFFIX' # {string} A unique identifier for this param.
title: 'POSTGREST_URL_SUFFIX' # {string} Any a name.
title: 'POSTGREST_URL_SUFFIX' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -167,7 +167,7 @@ parameters:
The suffix for the PostgREST instance.
- id: 'ADMIN_API_KEYS' # {string} A unique identifier for this param.
title: 'ADMIN_API_KEYS' # {string} Any a name.
title: 'ADMIN_API_KEYS' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true
@@ -176,7 +176,7 @@ parameters:
Secure API key for administrative endpoints.
- id: 'ENCRYPTION_KEY' # {string} A unique identifier for this param.
title: 'ENCRYPTION_KEY' # {string} Any a name.
title: 'ENCRYPTION_KEY' # {string} Any name.
tags: ['multitenant'] # {string[]} These tags are useful for grouping parameters
links: [] # {string[]} These tags are useful for grouping parameters
required: true