mirror of
https://github.com/logseq/logseq.git
synced 2026-05-01 17:36:33 +00:00
47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
## Cloudflare Publish Worker (Skeleton)
|
|
|
|
This worker accepts publish payloads and stores transit blobs in R2 while keeping
|
|
metadata in a Durable Object backed by SQLite.
|
|
|
|
### Bindings
|
|
|
|
- `PUBLISH_META_DO`: Durable Object namespace
|
|
- `PUBLISH_R2`: R2 bucket
|
|
- `R2_ACCOUNT_ID`: Cloudflare account id for signing
|
|
- `R2_BUCKET`: R2 bucket name for signing
|
|
- `R2_ACCESS_KEY_ID`: R2 access key for signing
|
|
- `R2_SECRET_ACCESS_KEY`: R2 secret key for signing
|
|
- `COGNITO_JWKS_URL`: JWKS URL for Cognito user pool
|
|
- `COGNITO_ISSUER`: Cognito issuer URL
|
|
- `COGNITO_CLIENT_ID`: Cognito client ID
|
|
- `DEV_SKIP_AUTH`: set to `true` to bypass JWT verification in local dev
|
|
|
|
### Routes
|
|
|
|
- `GET /p/:graph-uuid/:page-uuid`
|
|
- Returns server-rendered HTML for the page
|
|
- `POST /pages`
|
|
- Requires `Authorization: Bearer <JWT>`
|
|
- Requires `x-publish-meta` header (JSON)
|
|
- Body is transit payload (stored in R2 as-is)
|
|
- `GET /pages/:graph-uuid/:page-uuid`
|
|
- Returns metadata for the page
|
|
- `GET /pages/:graph-uuid/:page-uuid/transit`
|
|
- Returns JSON with a signed R2 URL and `etag`
|
|
- `DELETE /pages/:graph-uuid/:page-uuid`
|
|
- Deletes a published page
|
|
- `DELETE /pages/:graph-uuid`
|
|
- Deletes all pages for a graph
|
|
- `GET /pages`
|
|
- Lists metadata entries (from the index DO)
|
|
|
|
### Notes
|
|
|
|
- This is a starter implementation. Integrate with your deployment tooling
|
|
(wrangler, etc.) as needed.
|
|
- For local testing, run `wrangler dev` and use `deps/publish/worker/scripts/dev_test.sh`.
|
|
- If you switch schema versions, clear local DO state with
|
|
`deps/publish/worker/scripts/clear_dev_state.sh`.
|
|
- Build the worker bundle with `clojure -M:cljs release publish-worker` before running the worker.
|
|
- For dev, you can run `clojure -M:cljs watch publish-worker` in one terminal.
|