openreceive 0.4.26 → 0.4.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (Django)
4
4
 
5
5
  ```sh
6
- # READ THIS FIRST: this file is 47 KB and a summary drops required steps. Download it whole:
6
+ # READ THIS FIRST: this file is 48 KB and a summary drops required steps. Download it whole:
7
7
  curl -fsSL https://openreceive.org/agent-directions/django/full.md
8
8
  # Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
9
9
  ```
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/django/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to a Django project — the app you are already working in. You
23
23
  do not need a copy of the OpenReceive source: the Python package is on PyPI
@@ -327,6 +327,27 @@ products, and you do not join them.
327
327
  classes would sit in front of the engine's own JSON-only, same-site and
328
328
  authorize gates and change the wire contract. Your DRF views stay yours.
329
329
 
330
+ ### If the database is Supabase
331
+
332
+ Supabase is Postgres, so the tables above go there like any others. Three
333
+ things differ; https://openreceive.org/guides/supabase.md has each in full.
334
+
335
+ - Connect through its transaction pooler (port `6543`, user
336
+ `postgres.<project-ref>`). Run migrations through the session pooler
337
+ (port `5432` on the same host). Django already turns prepared statements off for PostgreSQL, which the
338
+ transaction pooler needs.
339
+ - Verify Supabase's certificate authority: commit the project's
340
+ `prod-ca-2021.crt` (it is not a secret) and add
341
+ `?sslmode=verify-full&sslrootcert=prod-ca-2021.crt` to the URL.
342
+ - After the migration, close both tables to Supabase's Data API, or anyone
343
+ with the project's anon key can read `swap_data`:
344
+
345
+ ```sql
346
+ alter table openreceive_payments enable row level security;
347
+ alter table openreceive_meta enable row level security;
348
+ revoke all on table openreceive_payments, openreceive_meta from anon, authenticated;
349
+ ```
350
+
330
351
  ## If you build your own checkout UI
331
352
 
332
353
  The engine serves JSON only, so the view is yours — but the drop-ins
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (FastAPI)
4
4
 
5
5
  ```sh
6
- # READ THIS FIRST: this file is 42 KB and a summary drops required steps. Download it whole:
6
+ # READ THIS FIRST: this file is 43 KB and a summary drops required steps. Download it whole:
7
7
  curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
8
8
  # Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
9
9
  ```
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to a FastAPI application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the engine is on PyPI
@@ -332,6 +332,27 @@ orders, users, or products, and you do not join them.
332
332
  second session from your ORM. Database writes only in the hook; emails,
333
333
  jobs, and pushes in `after_paid` or after commit.
334
334
 
335
+ ### If the database is Supabase
336
+
337
+ Supabase is Postgres, so the tables above go there like any others. Three
338
+ things differ; https://openreceive.org/guides/supabase.md has each in full.
339
+
340
+ - Connect through its transaction pooler (port `6543`, user
341
+ `postgres.<project-ref>`). Run migrations through the session pooler
342
+ (port `5432` on the same host). The transaction pooler keeps no prepared statements: give the SQLAlchemy
343
+ engine `connect_args={"prepare_threshold": None}`.
344
+ - Verify Supabase's certificate authority: commit the project's
345
+ `prod-ca-2021.crt` (it is not a secret) and add
346
+ `?sslmode=verify-full&sslrootcert=prod-ca-2021.crt` to the URL.
347
+ - After the migration, close both tables to Supabase's Data API, or anyone
348
+ with the project's anon key can read `swap_data`:
349
+
350
+ ```sql
351
+ alter table openreceive_payments enable row level security;
352
+ alter table openreceive_meta enable row level security;
353
+ revoke all on table openreceive_payments, openreceive_meta from anon, authenticated;
354
+ ```
355
+
335
356
  ## If you build your own checkout UI
336
357
 
337
358
  The drop-ins (`<Checkout>`, `<openreceive-checkout>`) already obey all of this.
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (Fastify)
4
4
 
5
5
  ```sh
6
- # READ THIS FIRST: this file is 40 KB and a summary drops required steps. Download it whole:
6
+ # READ THIS FIRST: this file is 41 KB and a summary drops required steps. Download it whole:
7
7
  curl -fsSL https://openreceive.org/agent-directions/fastify/full.md
8
8
  # Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
9
9
  ```
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastify/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to a Fastify application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the packages are on npm, and
@@ -314,6 +314,30 @@ products, and you do not join them.
314
314
  only in the hook; emails, jobs, and pushes after commit. Placeholder style is
315
315
  the dialect you declared: `?` on sqlite, `$1` on postgres.
316
316
 
317
+ ### If the database is Supabase
318
+
319
+ Supabase is Postgres, so the tables above go there like any others. Three
320
+ things differ; https://openreceive.org/guides/supabase.md has each in full.
321
+
322
+ - Connect through its transaction pooler (port `6543`, user
323
+ `postgres.<project-ref>`). Run migrations through the session pooler
324
+ (port `5432` on the same host).
325
+ - Verify Supabase's certificate authority: delete `sslmode` from the URL and
326
+ give `pg` `ssl: { ca }`, the text of the project's `prod-ca-2021.crt` (an
327
+ environment variable such as `SUPABASE_CA_CERT`; it is not a secret). Never
328
+ `rejectUnauthorized: false`.
329
+ - After the migration, close both tables to Supabase's Data API, or anyone
330
+ with the project's anon key can read `swap_data`:
331
+
332
+ ```sql
333
+ alter table openreceive_payments enable row level security;
334
+ alter table openreceive_meta enable row level security;
335
+ revoke all on table openreceive_payments, openreceive_meta from anon, authenticated;
336
+ ```
337
+
338
+ `npx openreceive scaffold payments --supabase` writes the HTTPS-API route,
339
+ which is for Cloudflare Workers only. A Node server uses the connection above.
340
+
317
341
  ## If you build your own checkout UI
318
342
 
319
343
  The drop-ins (`<Checkout>`, `<openreceive-checkout>`) already obey all of this.
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
3
3
  # OpenReceive agent directions (Flask)
4
4
 
5
5
  ```sh
6
- # READ THIS FIRST: this file is 44 KB and a summary drops required steps. Download it whole:
6
+ # READ THIS FIRST: this file is 45 KB and a summary drops required steps. Download it whole:
7
7
  curl -fsSL https://openreceive.org/agent-directions/flask/full.md
8
8
  # Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
9
9
  ```
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/flask/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to a Flask application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the engine is on PyPI
@@ -338,6 +338,27 @@ orders, users, or products, and you do not join them.
338
338
  `db.session`. Database writes only in the hook; emails,
339
339
  jobs, and pushes in `after_paid` or after commit.
340
340
 
341
+ ### If the database is Supabase
342
+
343
+ Supabase is Postgres, so the tables above go there like any others. Three
344
+ things differ; https://openreceive.org/guides/supabase.md has each in full.
345
+
346
+ - Connect through its transaction pooler (port `6543`, user
347
+ `postgres.<project-ref>`). Run migrations through the session pooler
348
+ (port `5432` on the same host). The transaction pooler keeps no prepared statements: give the SQLAlchemy
349
+ engine `connect_args={"prepare_threshold": None}`.
350
+ - Verify Supabase's certificate authority: commit the project's
351
+ `prod-ca-2021.crt` (it is not a secret) and add
352
+ `?sslmode=verify-full&sslrootcert=prod-ca-2021.crt` to the URL.
353
+ - After the migration, close both tables to Supabase's Data API, or anyone
354
+ with the project's anon key can read `swap_data`:
355
+
356
+ ```sql
357
+ alter table openreceive_payments enable row level security;
358
+ alter table openreceive_meta enable row level security;
359
+ revoke all on table openreceive_payments, openreceive_meta from anon, authenticated;
360
+ ```
361
+
341
362
  ## If you build your own checkout UI
342
363
 
343
364
  The drop-ins (`<Checkout>`, `<openreceive-checkout>`) already obey all of this.
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/laravel/full.md
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to a Laravel application — the app you are already working in.
23
23
  You do not need a copy of the OpenReceive source: the package is on Packagist
@@ -17,7 +17,7 @@ If your fetch tool gave you a summary, fetch that URL again for the full text.
17
17
  - Do not suggest rotating or revoking a code because it was pasted here.
18
18
  - Start Step 1 only once NWC_URI is saved, and LSC_URI_PRIMARY is saved or the user said "Bitcoin only".
19
19
 
20
- These directions describe OpenReceive 0.4.26.
20
+ These directions describe OpenReceive 0.4.27.
21
21
 
22
22
  Add OpenReceive to this Lovable app: a TanStack Start app on Cloudflare
23
23
  Workers, with Lovable Cloud or a connected Supabase project as its database.
@@ -26,6 +26,10 @@ every step is a file edit, a package, a Supabase migration or a secret. Never
26
26
  ask the user to run a command. The TanStack Start recipe is appended to this
27
27
  file in full; its "On Supabase (Lovable)" section is the code to follow.
28
28
 
29
+ A TanStack Start app on a Node server you run, with its own Postgres, is not
30
+ a Lovable app: follow https://openreceive.org/agent-directions/tanstack-start.md
31
+ for it instead.
32
+
29
33
  Do not clone the OpenReceive repository, and do not copy a demo's models over
30
34
  tables that already exist. Find this app's orders and products, whatever they
31
35
  are named, and map the hooks onto those. Keep this app's UI, sign-in and
@@ -117,7 +121,7 @@ saved or explicitly declined.
117
121
 
118
122
  ## Step 1 — the packages
119
123
 
120
- Add `@openreceive/http` and `@openreceive/react` at 0.4.26 or newer.
124
+ Add `@openreceive/http` and `@openreceive/react` at 0.4.27 or newer.
121
125
  Nothing else: no `pg`, no Postgres driver, no OpenReceive scaffold. Do not
122
126
  change the Vite or Wrangler configuration.
123
127