supabase/wrappers is a PostgreSQL extension that provides integrations with external sources so you can interact with third-party data using SQL.
_10select_10customer_id_10currency_10from_10stripe.customers;_10_10customer_id | currency_10--------------------+-----------_10cus_MJiBtCqOF1Bb3F | usd_10(1 row)
Before you get started, make sure the
wrappers extension is installed on your database:
_10create extension if not exists wrappers;
and then create the foreign data wrapper:
_10create foreign data wrapper stripe_wrapper_10handler stripe_fdw_handler_10validator stripe_fdw_validator;
Secure your credentials (optional)
By default, Postgres stores FDW credentials inide
pg_catalog.pg_foreign_server in plain text. Anyone with access to this table will be able to view these credentials. Wrappers is designed to work with Vault, which provides an additional level of security for storing credentials. We recommend using Vault to store your credentials.
_10-- Save your Stripe API key in Vault and retrieve the `key_id`_10insert into vault.secrets (name, secret)_10values (_10'stripe',_10'YOUR_SECRET'_10)_10returning key_id;
Connecting to Stripe
We need to provide Postgres with the credentials to connect to Stripe, and any additional options. We can do this using the
create server command:
_10create server stripe_server_10foreign data wrapper stripe_wrapper_10options (_10api_key_id '<key_ID>' -- The Key ID from above._10);
_10create server stripe_server_10foreign data wrapper stripe_wrapper_10options (_10api_key '<Stripe API Key>' -- Stripe API key, required_10);
Learn more on our docs page.