From 272355f679669dec5a5b9e940d9b8aef1eb5c6ff Mon Sep 17 00:00:00 2001 From: Paul Copplestone Date: Wed, 17 Mar 2021 16:44:44 +0800 Subject: [PATCH] Adds a bunch of extensions --- web/docs/guides/database.mdx | 29 +- web/src/components/Extensions.js | 66 ++++ web/src/data/extensions.json | 506 +++++++++++++++++++++++++++++++ 3 files changed, 593 insertions(+), 8 deletions(-) create mode 100644 web/src/components/Extensions.js create mode 100644 web/src/data/extensions.json diff --git a/web/docs/guides/database.mdx b/web/docs/guides/database.mdx index c6c4541f947..75159fe7ee1 100644 --- a/web/docs/guides/database.mdx +++ b/web/docs/guides/database.mdx @@ -4,6 +4,8 @@ title: Database description: Use Supabase to manage your data. --- +import ExtensionsComponent from '../../src/components/Extensions' + Supabase is built on top of [Postgres](/docs/postgres/server/about), an extremely scalable Relational Database. ## Features @@ -33,14 +35,6 @@ You can duplicate your tables, just like you would inside a spreadsheet. -### Enable and disable extensions - -Extensions are one of the best things about Postgres. You can enable Postgres extensions with the click of a button. - - - ### The SQL Editor @@ -58,6 +52,25 @@ Supabase comes with a SQL Editor. You can also save your favorite queries to run - Managed backups - Supabase handles all your database backups. - Data imports - import directly from a CSV or excel spreadsheet. +## Extensions + + +### Enable and disable extensions + +Postgres is extensible, allowing Supabase to provide some amazing functionality immediately . Enable Postgres extensions with the click of a button. +You can enable Postgres extensions with the click of a button. + + + + +### Full list of extensions + +Supabase is pre-configured with over 50 extensions. You can also install your own SQL extensions directly into the database through our SQL editor. + + + ## Tips diff --git a/web/src/components/Extensions.js b/web/src/components/Extensions.js new file mode 100644 index 00000000000..2ea6f2eaa86 --- /dev/null +++ b/web/src/components/Extensions.js @@ -0,0 +1,66 @@ +import React, { useState } from 'react' +import extensions from '../data/extensions.json' + +export default function Extensions() { + const [filter, setFilter] = useState('') + return ( + <> +
+ setFilter(e.target.value)} + /> +
+
+ {extensions + .filter((x) => x.name.indexOf(filter) >= 0) + .map((extension) => ( +
+
+

+ {extension.name} +

+

{extension.comment}

+
+
+ ))} +
+ + ) +} + +const styles = { + inputContainer: { + marginBottom: '15px', + }, + input: { + border: '1px solid var(--ifm-panel-border-color)', + borderRadius: 4, + backgroundColor: 'var(--custom-background-color-diff)', + color: 'var(--ifm-font-color-base)', + margin: 0, + padding: '6px 8px', + width: 300, + }, + column: { + margin: '5px 0px', + padding: '0px 5px', + }, + card: { + border: '1px solid var(--ifm-panel-border-color)', + borderRadius: 5, + padding: 8, + }, + title: { + margin: 0, + fontSize: '0.9rem', + border: '1px solid var(--ifm-panel-border-color)', + }, + description: { + textTransform: 'capitalize', + fontSize: '0.8rem', + margin: 0, + }, +} diff --git a/web/src/data/extensions.json b/web/src/data/extensions.json new file mode 100644 index 00000000000..f0201a70055 --- /dev/null +++ b/web/src/data/extensions.json @@ -0,0 +1,506 @@ +[ + { + "name": "address_standardizer", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "Used to parse an address into constituent elements. Generally used to support geocoding address normalization step." + }, + { + "name": "address_standardizer-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "Used to parse an address into constituent elements. Generally used to support geocoding address normalization step." + }, + { + "name": "address_standardizer_data_us", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "Address Standardizer US dataset example" + }, + { + "name": "address_standardizer_data_us-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "Address Standardizer US dataset example" + }, + { + "name": "adminpack", + "schema": null, + "default_version": "2.0", + "installed_version": null, + "comment": "administrative functions for PostgreSQL" + }, + { + "name": "amcheck", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "functions for verifying relation integrity" + }, + { + "name": "autoinc", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "functions for autoincrementing fields" + }, + { + "name": "bloom", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "bloom access method - signature file based index" + }, + { + "name": "btree_gin", + "schema": null, + "default_version": "1.3", + "installed_version": null, + "comment": "support for indexing common datatypes in GIN" + }, + { + "name": "btree_gist", + "schema": null, + "default_version": "1.5", + "installed_version": null, + "comment": "support for indexing common datatypes in GiST" + }, + { + "name": "citext", + "schema": null, + "default_version": "1.6", + "installed_version": null, + "comment": "data type for case-insensitive character strings" + }, + { + "name": "cube", + "schema": null, + "default_version": "1.4", + "installed_version": null, + "comment": "data type for multidimensional cubes" + }, + { + "name": "dblink", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "connect to other PostgreSQL databases from within a database" + }, + { + "name": "dict_int", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "text search dictionary template for integers" + }, + { + "name": "dict_xsyn", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "text search dictionary template for extended synonym processing" + }, + { + "name": "earthdistance", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "calculate great-circle distances on the surface of the Earth" + }, + { + "name": "file_fdw", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "foreign-data wrapper for flat file access" + }, + { + "name": "fuzzystrmatch", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "determine similarities and distance between strings" + }, + { + "name": "hstore", + "schema": null, + "default_version": "1.6", + "installed_version": null, + "comment": "data type for storing sets of (key, value) pairs" + }, + { + "name": "hstore_plpython3u", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "transform between hstore and plpython3u" + }, + { + "name": "http", + "schema": "extensions", + "default_version": "1.3", + "installed_version": "1.3", + "comment": "HTTP client for PostgreSQL, allows web page retrieval inside the database." + }, + { + "name": "insert_username", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "functions for tracking who changed a table" + }, + { + "name": "intagg", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "integer aggregator and enumerator (obsolete)" + }, + { + "name": "intarray", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "functions, operators, and index support for 1-D arrays of integers" + }, + { + "name": "isn", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "data types for international product numbering standards" + }, + { + "name": "jsonb_plpython3u", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "transform between jsonb and plpython3u" + }, + { + "name": "lo", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "Large Object maintenance" + }, + { + "name": "ltree", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "data type for hierarchical tree-like structures" + }, + { + "name": "ltree_plpython3u", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "transform between ltree and plpython3u" + }, + { + "name": "moddatetime", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "functions for tracking last modification time" + }, + { + "name": "pageinspect", + "schema": null, + "default_version": "1.7", + "installed_version": null, + "comment": "inspect the contents of database pages at a low level" + }, + { + "name": "pg_buffercache", + "schema": null, + "default_version": "1.3", + "installed_version": null, + "comment": "examine the shared buffer cache" + }, + { + "name": "pg_cron", + "schema": "extensions", + "default_version": "1.3", + "installed_version": "1.3", + "comment": "Job scheduler for PostgreSQL" + }, + { + "name": "pg_freespacemap", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "examine the free space map (FSM)" + }, + { + "name": "pg_prewarm", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "prewarm relation data" + }, + { + "name": "pg_stat_statements", + "schema": null, + "default_version": "1.7", + "installed_version": null, + "comment": "track execution statistics of all SQL statements executed" + }, + { + "name": "pg_trgm", + "schema": null, + "default_version": "1.4", + "installed_version": null, + "comment": "text similarity measurement and index searching based on trigrams" + }, + { + "name": "pg_visibility", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "examine the visibility map (VM) and page-level visibility info" + }, + { + "name": "pgaudit", + "schema": null, + "default_version": "1.4", + "installed_version": null, + "comment": "provides auditing functionality" + }, + { + "name": "pgcrypto", + "schema": "extensions", + "default_version": "1.3", + "installed_version": "1.3", + "comment": "cryptographic functions" + }, + { + "name": "pgjwt", + "schema": "extensions", + "default_version": "0.1.0", + "installed_version": "0.1.0", + "comment": "JSON Web Token API for Postgresql" + }, + { + "name": "pgrowlocks", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "show row-level locking information" + }, + { + "name": "pgstattuple", + "schema": null, + "default_version": "1.5", + "installed_version": null, + "comment": "show tuple-level statistics" + }, + { + "name": "pgtap", + "schema": null, + "default_version": "1.1.0", + "installed_version": null, + "comment": "Unit testing for PostgreSQL" + }, + { + "name": "plcoffee", + "schema": null, + "default_version": "3.0alpha", + "installed_version": null, + "comment": "PL/CoffeeScript (v8) trusted procedural language" + }, + { + "name": "pljava", + "schema": null, + "default_version": "1.6.0", + "installed_version": null, + "comment": "PL/Java procedural language (https://tada.github.io/pljava/)" + }, + { + "name": "plls", + "schema": null, + "default_version": "3.0alpha", + "installed_version": null, + "comment": "PL/LiveScript (v8) trusted procedural language" + }, + { + "name": "plpgsql", + "schema": "pg_catalog", + "default_version": "1.0", + "installed_version": "1.0", + "comment": "PL/pgSQL procedural language" + }, + { + "name": "plpgsql_check", + "schema": null, + "default_version": "1.11", + "installed_version": null, + "comment": "extended check for plpgsql functions" + }, + { + "name": "plpython3u", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "PL/Python3U untrusted procedural language" + }, + { + "name": "plv8", + "schema": null, + "default_version": "3.0alpha", + "installed_version": null, + "comment": "PL/JavaScript (v8) trusted procedural language" + }, + { + "name": "postgis", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS geometry and geography spatial types and functions" + }, + { + "name": "postgis-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS geometry and geography spatial types and functions" + }, + { + "name": "postgis_raster", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS raster types and functions" + }, + { + "name": "postgis_raster-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS raster types and functions" + }, + { + "name": "postgis_sfcgal", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS SFCGAL functions" + }, + { + "name": "postgis_sfcgal-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS SFCGAL functions" + }, + { + "name": "postgis_tiger_geocoder", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS tiger geocoder and reverse geocoder" + }, + { + "name": "postgis_tiger_geocoder-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS tiger geocoder and reverse geocoder" + }, + { + "name": "postgis_topology", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS topology spatial types and functions" + }, + { + "name": "postgis_topology-3", + "schema": null, + "default_version": "3.1.1", + "installed_version": null, + "comment": "PostGIS topology spatial types and functions" + }, + { + "name": "postgres_fdw", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "foreign-data wrapper for remote PostgreSQL servers" + }, + { + "name": "refint", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "functions for implementing referential integrity (obsolete)" + }, + { + "name": "seg", + "schema": null, + "default_version": "1.3", + "installed_version": null, + "comment": "data type for representing line segments or floating-point intervals" + }, + { + "name": "sslinfo", + "schema": null, + "default_version": "1.2", + "installed_version": null, + "comment": "information about SSL certificates" + }, + { + "name": "tablefunc", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "functions that manipulate whole tables, including crosstab" + }, + { + "name": "tcn", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "Triggered change notifications" + }, + { + "name": "tsm_system_rows", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "TABLESAMPLE method which accepts number of rows as a limit" + }, + { + "name": "tsm_system_time", + "schema": null, + "default_version": "1.0", + "installed_version": null, + "comment": "TABLESAMPLE method which accepts time in milliseconds as a limit" + }, + { + "name": "unaccent", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "text search dictionary that removes accents" + }, + { + "name": "uuid-ossp", + "schema": "extensions", + "default_version": "1.1", + "installed_version": "1.1", + "comment": "generate universally unique identifiers (UUIDs)" + }, + { + "name": "xml2", + "schema": null, + "default_version": "1.1", + "installed_version": null, + "comment": "XPath querying and XSLT" + } +] \ No newline at end of file