@samebase/convex-hosting 0.7.0 → 0.9.0
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.
- package/CHANGELOG.md +28 -0
- package/README.md +138 -42
- package/dist/cli/convex.d.ts +7 -1
- package/dist/cli/convex.js +18 -0
- package/dist/cli/convex.js.map +1 -1
- package/dist/cli/files.js +5 -5
- package/dist/cli/files.js.map +1 -1
- package/dist/cli/main.js +11 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/client/index.d.ts +13 -16
- package/dist/client/index.js +32 -23
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +1 -0
- package/dist/component/lib.d.ts +7 -1
- package/dist/component/lib.js +25 -11
- package/dist/component/lib.js.map +1 -1
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/analytics.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/compatibility-flags.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/configuration.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/constants.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/handler.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/types.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/utils/base-path.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/utils/headers.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/utils/rules-engine.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/worker.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/base-path.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/constants.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/constructConfiguration.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/parseHeaders.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/parseRedirects.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/parseStaticRouting.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/types.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/configuration/validateURL.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/constants.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/helpers.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/responses.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/tracing.js.map +1 -0
- package/dist/workers-sdk/packages/workers-shared/utils/types.js.map +1 -0
- package/package.json +2 -1
- package/dist/workers-shared/asset-worker/src/analytics.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/compatibility-flags.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/configuration.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/constants.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/handler.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/types.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/utils/base-path.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/utils/headers.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/utils/rules-engine.js.map +0 -1
- package/dist/workers-shared/asset-worker/src/worker.js.map +0 -1
- package/dist/workers-shared/utils/base-path.js.map +0 -1
- package/dist/workers-shared/utils/configuration/constants.js.map +0 -1
- package/dist/workers-shared/utils/configuration/constructConfiguration.js.map +0 -1
- package/dist/workers-shared/utils/configuration/parseHeaders.js.map +0 -1
- package/dist/workers-shared/utils/configuration/parseRedirects.js.map +0 -1
- package/dist/workers-shared/utils/configuration/parseStaticRouting.js.map +0 -1
- package/dist/workers-shared/utils/configuration/types.js.map +0 -1
- package/dist/workers-shared/utils/configuration/validateURL.js.map +0 -1
- package/dist/workers-shared/utils/constants.js.map +0 -1
- package/dist/workers-shared/utils/helpers.js.map +0 -1
- package/dist/workers-shared/utils/responses.js.map +0 -1
- package/dist/workers-shared/utils/tracing.js.map +0 -1
- package/dist/workers-shared/utils/types.js.map +0 -1
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/analytics.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/analytics.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/compatibility-flags.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/compatibility-flags.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/configuration.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/configuration.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/constants.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/constants.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/handler.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/handler.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/types.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/types.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/base-path.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/base-path.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/headers.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/headers.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/rules-engine.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/utils/rules-engine.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/worker.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/asset-worker/src/worker.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/base-path.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/base-path.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/constants.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/constants.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/constructConfiguration.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/constructConfiguration.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseHeaders.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseHeaders.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseRedirects.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseRedirects.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseStaticRouting.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/parseStaticRouting.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/types.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/types.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/validateURL.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/configuration/validateURL.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/constants.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/constants.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/helpers.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/helpers.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/responses.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/responses.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/tracing.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/tracing.js +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/types.d.ts +0 -0
- /package/dist/{workers-shared → workers-sdk/packages/workers-shared}/utils/types.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
- `serveSite(component, versionId, worker?)` returns the handler of the site routes, so
|
|
6
|
+
`convex/http.ts` reads `httpAction(serveSite(components.hosting, versionId, server))`. The third
|
|
7
|
+
argument is the Worker script itself, the object with `fetch(request)` that the app's server entry
|
|
8
|
+
exports, in place of a `render` callback that closed over the request. Breaking: the old
|
|
9
|
+
`serveSite(ctx, component, request, versionId, render?)` is gone.
|
|
10
|
+
- `convex/http.ts` registers the handler for every method, as every request reaches a Cloudflare
|
|
11
|
+
Worker: a file answers 405 to any method but GET and HEAD, a miss goes to the Worker or answers
|
|
12
|
+
404 without one. The README and the examples show the loop; the package code is unchanged.
|
|
13
|
+
|
|
14
|
+
## 0.8.0
|
|
15
|
+
|
|
16
|
+
- `serveSite` without `render` routes like a Cloudflare Worker without a script:
|
|
17
|
+
`not_found_handling` applies to every request, not only to navigations. `curl`, uptime monitors,
|
|
18
|
+
and link-preview bots now get the single-page fallback or the 404 page where they got a bare 404,
|
|
19
|
+
and a missing hashed file on a single-page app gets the shell with 200. `serveSite` with `render`
|
|
20
|
+
keeps the routing of a Worker with a script. The component query `route` takes `hasUserWorker`,
|
|
21
|
+
which `serveSite` sets from the presence of `render`; the app sets nothing.
|
|
22
|
+
- Every 404 that the handler answers, including the custom 404 page, has `Cache-Control: no-store`.
|
|
23
|
+
- `deploy` prints the site URL when it ends, which it asks the deployment for (`CONVEX_SITE_URL`
|
|
24
|
+
through an inline query), and appends `url=<site URL>` to `$GITHUB_OUTPUT` when that is set. A
|
|
25
|
+
workflow reads it as `steps.<id>.outputs.url` and no longer needs to record it in the build
|
|
26
|
+
command.
|
|
27
|
+
- `serveAsset` is removed, and `serveSite` is the one entry. `render` is the code that runs on a
|
|
28
|
+
miss, with the request in its closure, so an app that called `serveAsset` and answered misses
|
|
29
|
+
itself passes that code as `render`.
|
|
30
|
+
|
|
3
31
|
## 0.7.0
|
|
4
32
|
|
|
5
33
|
- `convex-hosting init` is gone, with the placeholder `.convex-hosting/server.js` it wrote. On a
|
package/README.md
CHANGED
|
@@ -7,7 +7,8 @@ It works like
|
|
|
7
7
|
[Cloudflare Workers with static assets](https://developers.cloudflare.com/workers/static-assets/):
|
|
8
8
|
the same `_headers`, `_redirects`, and `.assetsignore` files, the same `html_handling` and
|
|
9
9
|
`not_found_handling` options, and the same responses, computed by Cloudflare's own asset-serving
|
|
10
|
-
code
|
|
10
|
+
code, checked against Cloudflare's own test cases for `html_handling` and path encoding, and against
|
|
11
|
+
its integration tests for a files-only site, run on a local deployment.
|
|
11
12
|
|
|
12
13
|
## Setup
|
|
13
14
|
|
|
@@ -31,7 +32,9 @@ Requires `convex` 1.46 or later.
|
|
|
31
32
|
export default app;
|
|
32
33
|
```
|
|
33
34
|
|
|
34
|
-
3. `convex/http.ts`
|
|
35
|
+
3. `convex/http.ts` sends every method to `serveSite`, as every request reaches a Cloudflare Worker:
|
|
36
|
+
a file answers GET, another method on a file answers 405, and Convex answers `HEAD` through the
|
|
37
|
+
GET handler.
|
|
35
38
|
|
|
36
39
|
```ts
|
|
37
40
|
import { httpRouter } from "convex/server";
|
|
@@ -42,11 +45,10 @@ Requires `convex` 1.46 or later.
|
|
|
42
45
|
|
|
43
46
|
const http = httpRouter();
|
|
44
47
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
});
|
|
48
|
+
const site = httpAction(serveSite(components.hosting, versionId));
|
|
49
|
+
for (const method of ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"] as const) {
|
|
50
|
+
http.route({ pathPrefix: "/", method, handler: site });
|
|
51
|
+
}
|
|
50
52
|
|
|
51
53
|
export default http;
|
|
52
54
|
```
|
|
@@ -72,7 +74,8 @@ Requires `convex` 1.46 or later.
|
|
|
72
74
|
```
|
|
73
75
|
|
|
74
76
|
An app set up this way: the
|
|
75
|
-
[SPA example](https://github.com/samebase/convex-hosting/tree/main/examples/tanstack-spa)
|
|
77
|
+
[SPA example](https://github.com/samebase/convex-hosting/tree/main/examples/tanstack-spa), live at
|
|
78
|
+
[quick-fish-630.convex.site](https://quick-fish-630.convex.site).
|
|
76
79
|
|
|
77
80
|
`convex-hosting` keeps its state in `.convex-hosting/` at the project root, next to `convex/`, like
|
|
78
81
|
Wrangler's `.wrangler/`. The folder has its own `.gitignore`, so git ignores it. The package
|
|
@@ -91,11 +94,11 @@ server-rendered app gets the type of its server build from the framework adapter
|
|
|
91
94
|
## Deploy
|
|
92
95
|
|
|
93
96
|
`deploy` runs `npx convex deploy` with your build and the upload of `--dist` as its `--cmd`. The
|
|
94
|
-
pushed code names the version it was built with, so the push switches the site
|
|
95
|
-
|
|
96
|
-
that
|
|
97
|
-
|
|
98
|
-
gets no request.
|
|
97
|
+
pushed code names the version it was built with, so the push switches the site. Then the command
|
|
98
|
+
prints the site URL, which it asks the deployment for (`CONVEX_SITE_URL`), and ends. The first
|
|
99
|
+
request that the new code serves marks its version live, which deletes the versions that were live
|
|
100
|
+
before it. A version that never becomes live, from a deploy that failed, is deleted when it is a day
|
|
101
|
+
old, with the stored files that no version uses. Nothing is deleted while a site gets no request.
|
|
99
102
|
|
|
100
103
|
`deploy` goes to production. `--preview-name <name>` sends it to that preview (with a login or a
|
|
101
104
|
project's preview deploy key; always pass the name with that key), and `--dev` to the development
|
|
@@ -112,15 +115,60 @@ queues them, with one `concurrency` group per deployment.
|
|
|
112
115
|
|
|
113
116
|
## Deploy tools and CI
|
|
114
117
|
|
|
118
|
+
- **The deploy keys** go into repository secrets. Create the production key with the Convex CLI and
|
|
119
|
+
hand it to `gh secret set` on standard input, which keeps it off the screen and out of process
|
|
120
|
+
arguments:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
key=$(npx convex deployment token create "<repository> deploy.yml" --prod) && printf '%s' "$key" | gh secret set CONVEX_DEPLOY_KEY
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The CLI cannot create a project's preview deploy key, so use the management API, with a personal
|
|
127
|
+
or team access token from the Convex dashboard in `CONVEX_TOKEN`:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
key=$(curl -s -X POST "https://api.convex.dev/v1/projects/<project id>/create_preview_deploy_key" \
|
|
131
|
+
-H "Authorization: Bearer $CONVEX_TOKEN" -H "Content-Type: application/json" \
|
|
132
|
+
-d '{"name": "<repository> preview.yml"}' | jq -er .previewDeployKey) && printf '%s' "$key" | gh secret set CONVEX_PREVIEW_DEPLOY_KEY
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
A failed first command stops before anything is stored.
|
|
136
|
+
|
|
115
137
|
- **A tool that runs `convex deploy` itself**, such as Alchemy's `Convex.Code`, has no place for the
|
|
116
138
|
upload, which must happen between the build and the push. Run `convex-hosting deploy` in place of
|
|
117
139
|
that tool's push step, with the deploy key in `CONVEX_DEPLOY_KEY`.
|
|
118
140
|
- **A deploy key limited to some actions** needs `deployment:deploy`,
|
|
119
141
|
`deployment:functions:runInternalQueries`, `deployment:functions:runInternalMutations`,
|
|
120
142
|
`deployment:functions:runInternalActions` (the upload calls one internal action), and
|
|
121
|
-
`deployment:functions:runTestQuery` (the first-install check
|
|
143
|
+
`deployment:functions:runTestQuery` (the first-install check and the site URL are inline queries).
|
|
122
144
|
- **Checks that must stop a release** run before `convex-hosting deploy`, because its push switches
|
|
123
145
|
the site. Checks that need the new functions run after it.
|
|
146
|
+
- **A re-run of an old workflow run** checks out its old commit, and its push puts older code over
|
|
147
|
+
newer code; a `concurrency` group orders runs but does not refuse a stale one. So the examples'
|
|
148
|
+
workflows check, right before the deploy, that the commit is still the head of `main`, or of the
|
|
149
|
+
pull request for a preview, and fail otherwise.
|
|
150
|
+
- **A step that needs the site URL**, such as a preview comment, reads it from the deploy step: when
|
|
151
|
+
`GITHUB_OUTPUT` is set, `deploy` appends `url=<site URL>` to it, so give the deploy step an `id`
|
|
152
|
+
and read `steps.<id>.outputs.url`.
|
|
153
|
+
|
|
154
|
+
## Your own domain
|
|
155
|
+
|
|
156
|
+
A custom domain needs the Convex Pro plan. Add it to the deployment in the dashboard, under
|
|
157
|
+
Deployment Settings, Custom Domains, with "HTTP Actions" as the destination, or with the management
|
|
158
|
+
API: `POST https://api.convex.dev/v1/deployments/<deployment>/create_custom_domain` with
|
|
159
|
+
`{"domain": "<domain>", "requestDestination": "convexSite"}`.
|
|
160
|
+
|
|
161
|
+
Then create the two records that the dashboard shows: a `CNAME` from the domain to `convex.domains`,
|
|
162
|
+
and a `TXT` record at `_convex_domains.<domain>` whose value is the deployment's name. On
|
|
163
|
+
Cloudflare, make the `CNAME` DNS only; Convex documents a proxied record as an
|
|
164
|
+
[advanced setup](https://docs.convex.dev/production/abuse-protection). Verification can take up to
|
|
165
|
+
30 minutes.
|
|
166
|
+
|
|
167
|
+
Do not choose the domain under "Override Environment Variables". That changes `CONVEX_SITE_URL`
|
|
168
|
+
everywhere in the app, and Convex Auth uses it as the token issuer and in its redirect URLs.
|
|
169
|
+
|
|
170
|
+
An apex domain, such as `example.com`, relies on Cloudflare's CNAME flattening and is not tested
|
|
171
|
+
yet.
|
|
124
172
|
|
|
125
173
|
## Development
|
|
126
174
|
|
|
@@ -192,33 +240,43 @@ files for a year, add a `_headers` rule:
|
|
|
192
240
|
|
|
193
241
|
## Routing
|
|
194
242
|
|
|
195
|
-
`serveSite`
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
-
|
|
216
|
-
|
|
243
|
+
`serveSite(component, versionId, worker?)` returns the handler of the site routes. It answers with
|
|
244
|
+
the file that matches, else with what `worker` answers (see
|
|
245
|
+
[Server-rendered pages](#server-rendered-pages)), else 404. Another method than GET or HEAD on a
|
|
246
|
+
path that has a file answers 405, as on Cloudflare; on any other path it goes to `worker`, else 404.
|
|
247
|
+
`worker` is the Worker script, an object with `fetch(request)`: the code that runs on a miss.
|
|
248
|
+
Everything it returns gets `Cache-Control: no-store`, and so does a 404, because the `*.convex.site`
|
|
249
|
+
front caches paths with an extension. The front keeps `no-store` for a path without an extension and
|
|
250
|
+
replaces it with a four-hour browser `max-age` for a path with one, so a browser that asks for a
|
|
251
|
+
script before its upload ended keeps the 404; the deploy order prevents that case, because no page
|
|
252
|
+
refers to a file that is not uploaded yet. When the version does not exist or is still uploading, it
|
|
253
|
+
answers 404 naming the version. At the first request for a new version, it marks the version live.
|
|
254
|
+
|
|
255
|
+
As on Cloudflare, the presence of code decides where `not_found_handling` (the single-page fallback
|
|
256
|
+
or the 404 page) applies:
|
|
257
|
+
|
|
258
|
+
- Without `worker`, the site is files only, like a Worker without a script: `not_found_handling`
|
|
259
|
+
applies to every request. `curl`, uptime monitors, and link-preview bots get what a browser gets.
|
|
260
|
+
- With `worker`, your code is the Worker: `not_found_handling` applies to navigation requests
|
|
261
|
+
(`Sec-Fetch-Mode: navigate`) only, and other requests that match no file reach your code. Browsers
|
|
262
|
+
send that header whenever they open a page. `curl`, `fetch` in scripts and tests, uptime monitors,
|
|
263
|
+
and link-preview bots do not. To test a deep link as a browser opens it, send the header:
|
|
264
|
+
`curl -H "Sec-Fetch-Mode: navigate"`, or `node:http` in Node, whose `fetch` refuses to set it.
|
|
265
|
+
|
|
266
|
+
On a files-only single-page app, a missing hashed file such as `/assets/old.js` gets the shell, with
|
|
267
|
+
200 and `text/html`, as on Cloudflare. A `_headers` rule for its path applies to it too, so with the
|
|
268
|
+
one-year rule above a browser keeps that HTML for a year; without a rule, the deployment's
|
|
269
|
+
Cloudflare front gives a path with an extension a four-hour browser `max-age`. Hashed names do not
|
|
270
|
+
come back.
|
|
271
|
+
|
|
272
|
+
One difference from Cloudflare follows from Convex's router: an exact route in `convex/http.ts` wins
|
|
273
|
+
over an asset at the same path.
|
|
217
274
|
|
|
218
275
|
## Open tabs after a deploy
|
|
219
276
|
|
|
220
|
-
A page opened before a deploy keeps asking for its hashed files, which
|
|
221
|
-
|
|
277
|
+
A page opened before a deploy keeps asking for its hashed files, which the new version does not
|
|
278
|
+
have, as on Cloudflare: they answer 404, or the shell on a files-only single-page app. To reload
|
|
279
|
+
open tabs on a new version, add a query that returns the bundled version:
|
|
222
280
|
|
|
223
281
|
```ts
|
|
224
282
|
// convex/siteVersion.ts
|
|
@@ -249,15 +307,53 @@ export function useReloadOnNewVersion() {
|
|
|
249
307
|
|
|
250
308
|
## Server-rendered pages
|
|
251
309
|
|
|
252
|
-
`serveSite` takes a
|
|
253
|
-
and calls it when no file matches. `convex/http.ts` imports the server build
|
|
254
|
-
`../dist/server/server.js` for TanStack Start, so `npx convex dev` bundles it only
|
|
255
|
-
a fresh clone, the first `deploy --dev` builds before the first push (see
|
|
310
|
+
`serveSite` takes a third argument, `worker`, the object with `fetch(request)` that the app's server
|
|
311
|
+
entry exports, and calls it when no file matches. `convex/http.ts` imports the server build
|
|
312
|
+
directly, such as `../dist/server/server.js` for TanStack Start, so `npx convex dev` bundles it only
|
|
313
|
+
after a build: on a fresh clone, the first `deploy --dev` builds before the first push (see
|
|
314
|
+
[Setup](#setup)).
|
|
256
315
|
[`@samebase/convex-hosting-tanstack-start`](https://github.com/samebase/convex-hosting/tree/main/packages/convex-hosting-tanstack-start)
|
|
257
316
|
renders TanStack Start pages in it. See the
|
|
258
317
|
[TanStack Start example](https://github.com/samebase/convex-hosting/tree/main/examples/tanstack-ssr),
|
|
259
318
|
live at [gallant-llama-40.convex.site](https://gallant-llama-40.convex.site).
|
|
260
319
|
|
|
320
|
+
## The same app on Cloudflare Workers
|
|
321
|
+
|
|
322
|
+
[`examples/tanstack-ssr-workers`](https://github.com/samebase/convex-hosting/tree/main/examples/tanstack-ssr-workers)
|
|
323
|
+
is the TanStack Start example deployed as a Cloudflare Worker with static assets, with Convex still
|
|
324
|
+
the backend. Live at
|
|
325
|
+
[convex-hosting-tanstack-ssr-workers.pfp.workers.dev](https://convex-hosting-tanstack-ssr-workers.pfp.workers.dev).
|
|
326
|
+
[`examples/tanstack-ssr-workers.patch`](https://github.com/samebase/convex-hosting/blob/main/examples/tanstack-ssr-workers.patch)
|
|
327
|
+
is the diff between the two folders, and so the definition of what convex-hosting adds to an app. CI
|
|
328
|
+
writes the patch again from the committed folders and fails when it differs from the committed file;
|
|
329
|
+
`pnpm run examples:diff` refreshes it. The patch covers:
|
|
330
|
+
|
|
331
|
+
- `convex/http.ts`: on Convex only. It serves the files and forwards every other request to
|
|
332
|
+
`src/server.ts`.
|
|
333
|
+
- `src/server.ts`: the same file on both hosts, the `/auth` routes and the session lines around the
|
|
334
|
+
server entry, but for two lines: the entry it wraps (the adapter's on Convex, TanStack Start's
|
|
335
|
+
default on the Worker) and `no-store` on rendered pages, which `serveSite` sets on Convex.
|
|
336
|
+
- `convex/convex.config.ts` and `convex/_generated/api.d.ts`: `app.use(hosting)` on Convex only.
|
|
337
|
+
- `vite.config.ts`: `convexSsr()` on Convex; Cloudflare's Vite plugin on the Worker.
|
|
338
|
+
- `package.json`: `@samebase/convex-hosting` and `convex-hosting deploy` on Convex; `wrangler`,
|
|
339
|
+
`@cloudflare/vite-plugin`, and the Workers Builds scripts on the Worker.
|
|
340
|
+
- `wrangler.jsonc`: on the Worker only.
|
|
341
|
+
- `README.md`.
|
|
342
|
+
|
|
343
|
+
Workers Builds deploys it. Once, in the Cloudflare dashboard, create a Worker from this repository
|
|
344
|
+
with:
|
|
345
|
+
|
|
346
|
+
- Root directory: `examples/tanstack-ssr-workers`.
|
|
347
|
+
- Build command: `pnpm run build`. Deploy command: `pnpm run deploy`. Builds for non-production
|
|
348
|
+
branches on, with the preview command `pnpm run deploy:preview`.
|
|
349
|
+
- Build variable `CONVEX_DEPLOY_KEY`: a production deploy key of the example's own Convex project in
|
|
350
|
+
the production build variables, and the project's preview deploy key in Previews Base.
|
|
351
|
+
- Build variables `NODE_VERSION` `24.21.0` and `PNPM_VERSION` `12.10.1`, the versions this
|
|
352
|
+
repository pins, in both. The Builds image defaults to Node 22.16.0, below the 22.18 that Vite+
|
|
353
|
+
needs, and to pnpm 10.11.1.
|
|
354
|
+
|
|
355
|
+
The example's README describes the Convex side: the signing keys of production and of previews.
|
|
356
|
+
|
|
261
357
|
## License
|
|
262
358
|
|
|
263
359
|
Apache-2.0, with the notices in
|
package/dist/cli/convex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FunctionArgs, type FunctionReference, type FunctionReturnType, type FunctionType } from "convex/server";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod";
|
|
3
3
|
/** The processes and network calls of the CLI. Tests pass fakes. */
|
|
4
4
|
export interface Cli {
|
|
5
5
|
/** The app's directory, with `convex/` and `.env.local`. */
|
|
@@ -55,6 +55,12 @@ export type Target = {
|
|
|
55
55
|
* is an inline query that reads nothing. Any other failure is an error.
|
|
56
56
|
*/
|
|
57
57
|
export declare function probeComponent(cli: Cli, target: Target): Promise<string | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* The site URL, as the deployment gives it to its own functions in `CONVEX_SITE_URL`: an inline
|
|
60
|
+
* query at the app's root, with the deploy's selector. So it is right for every kind of deployment,
|
|
61
|
+
* and it is the custom domain when the dashboard's "Override Environment Variables" sets one.
|
|
62
|
+
*/
|
|
63
|
+
export declare function siteUrl(cli: Cli, flags: string[]): Promise<string>;
|
|
58
64
|
/**
|
|
59
65
|
* Runs a function of the component with `npx convex run` and validates its result. The Convex CLI
|
|
60
66
|
* prints the result as JSON from another process, so `result` checks it at runtime; its type makes
|
package/dist/cli/convex.js
CHANGED
|
@@ -4,6 +4,7 @@ import { createRequire } from "node:module";
|
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { parseEnv } from "node:util";
|
|
6
6
|
import { getFunctionName, } from "convex/server";
|
|
7
|
+
import { z } from "zod";
|
|
7
8
|
/** The app's own Convex CLI, so the CLI version and the deployment settings match the app. */
|
|
8
9
|
function convexBin(cwd) {
|
|
9
10
|
const requireFromApp = createRequire(join(cwd, "package.json"));
|
|
@@ -85,6 +86,23 @@ export async function probeComponent(cli, target) {
|
|
|
85
86
|
return output;
|
|
86
87
|
throw new Error(stderr.trim() || stdout.trim() || `npx convex run exited with ${exitCode}.`);
|
|
87
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* The site URL, as the deployment gives it to its own functions in `CONVEX_SITE_URL`: an inline
|
|
91
|
+
* query at the app's root, with the deploy's selector. So it is right for every kind of deployment,
|
|
92
|
+
* and it is the custom domain when the dashboard's "Override Environment Variables" sets one.
|
|
93
|
+
*/
|
|
94
|
+
export async function siteUrl(cli, flags) {
|
|
95
|
+
const { exitCode, stdout, stderr } = await cli.convex([
|
|
96
|
+
"run",
|
|
97
|
+
"--inline-query",
|
|
98
|
+
"process.env.CONVEX_SITE_URL",
|
|
99
|
+
...flags,
|
|
100
|
+
]);
|
|
101
|
+
if (exitCode !== 0) {
|
|
102
|
+
throw new Error(stderr.trim() || stdout.trim() || `npx convex run exited with ${exitCode}.`);
|
|
103
|
+
}
|
|
104
|
+
return z.string().parse(JSON.parse(stdout));
|
|
105
|
+
}
|
|
88
106
|
/**
|
|
89
107
|
* Runs a function of the component with `npx convex run` and validates its result. The Convex CLI
|
|
90
108
|
* prints the result as JSON from another process, so `result` checks it at runtime; its type makes
|
package/dist/cli/convex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convex.js","sourceRoot":"","sources":["../../src/cli/convex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,eAAe,GAKhB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"convex.js","sourceRoot":"","sources":["../../src/cli/convex.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/files.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { existsSync, readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
|
|
3
3
|
import { join, relative } from "node:path";
|
|
4
|
-
import { constructHeaders, constructRedirects, } from "../workers-shared/utils/configuration/constructConfiguration.js";
|
|
5
|
-
import { parseHeaders } from "../workers-shared/utils/configuration/parseHeaders.js";
|
|
6
|
-
import { parseRedirects } from "../workers-shared/utils/configuration/parseRedirects.js";
|
|
7
|
-
import { HEADERS_FILENAME, MAX_ASSET_SIZE, REDIRECTS_FILENAME, } from "../workers-shared/utils/constants.js";
|
|
8
|
-
import { createAssetsIgnoreFunction, getContentType, maybeGetFile, normalizeFilePath, } from "../workers-shared/utils/helpers.js";
|
|
4
|
+
import { constructHeaders, constructRedirects, } from "../workers-sdk/packages/workers-shared/utils/configuration/constructConfiguration.js";
|
|
5
|
+
import { parseHeaders } from "../workers-sdk/packages/workers-shared/utils/configuration/parseHeaders.js";
|
|
6
|
+
import { parseRedirects } from "../workers-sdk/packages/workers-shared/utils/configuration/parseRedirects.js";
|
|
7
|
+
import { HEADERS_FILENAME, MAX_ASSET_SIZE, REDIRECTS_FILENAME, } from "../workers-sdk/packages/workers-shared/utils/constants.js";
|
|
8
|
+
import { createAssetsIgnoreFunction, getContentType, maybeGetFile, normalizeFilePath, } from "../workers-sdk/packages/workers-shared/utils/helpers.js";
|
|
9
9
|
/**
|
|
10
10
|
* Convex limits a document to 1 MiB. The version document holds the config next to two short
|
|
11
11
|
* fields, and the encoding needs room too.
|
package/dist/cli/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/main.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync, } from "node:fs";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { parseArgs } from "node:util";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { internal } from "../component/_generated/api.js";
|
|
8
|
-
import { AssetConfigSchema } from "../workers-shared/utils/types.js";
|
|
9
|
-
import { deploymentSelector, probeComponent, runComponent, } from "./convex.js";
|
|
8
|
+
import { AssetConfigSchema } from "../workers-sdk/packages/workers-shared/utils/types.js";
|
|
9
|
+
import { deploymentSelector, probeComponent, runComponent, siteUrl, } from "./convex.js";
|
|
10
10
|
import { readDist } from "./files.js";
|
|
11
11
|
const USAGE = `Usage:
|
|
12
12
|
convex-hosting deploy --build "<command>" --dist <dir> [options]
|
|
13
13
|
Builds, stores the site files, and pushes the functions. The push switches the site.
|
|
14
|
+
Prints the site URL, and appends url=<site URL> to $GITHUB_OUTPUT when it is set.
|
|
14
15
|
|
|
15
16
|
Options:
|
|
16
17
|
--dev the development deployment of this checkout, instead of production
|
|
@@ -131,8 +132,9 @@ function quote(arg) {
|
|
|
131
132
|
return process.platform === "win32" ? `"${arg}"` : `'${arg.replaceAll("'", `'\\''`)}'`;
|
|
132
133
|
}
|
|
133
134
|
/**
|
|
134
|
-
* Builds, uploads, writes the version file, and pushes. The push is the switch
|
|
135
|
-
*
|
|
135
|
+
* Builds, uploads, writes the version file, and pushes. The push is the switch: the first request
|
|
136
|
+
* that the new code serves marks its version live. Then it reports the site URL, for a person and,
|
|
137
|
+
* through `$GITHUB_OUTPUT`, for the next step of a GitHub Actions job.
|
|
136
138
|
*/
|
|
137
139
|
async function deploy(cli, options, build) {
|
|
138
140
|
const target = {
|
|
@@ -146,7 +148,10 @@ async function deploy(cli, options, build) {
|
|
|
146
148
|
else {
|
|
147
149
|
await deployWithConvexDeploy(cli, options, target, versionId, build);
|
|
148
150
|
}
|
|
149
|
-
cli.
|
|
151
|
+
const url = await siteUrl(cli, target.flags);
|
|
152
|
+
cli.log(`Deployed version ${versionId} to ${url}.`);
|
|
153
|
+
if (cli.env.GITHUB_OUTPUT)
|
|
154
|
+
appendFileSync(cli.env.GITHUB_OUTPUT, `url=${url}\n`);
|
|
150
155
|
}
|
|
151
156
|
/**
|
|
152
157
|
* The development deployment, in one process. The build runs as a child of this process in the
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import type { GenericActionCtx, GenericDataModel } from "convex/server";
|
|
2
2
|
import type { ComponentApi } from "../component/_generated/component.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* is
|
|
10
|
-
*/
|
|
11
|
-
export declare function serveSite(ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, component: ComponentApi, request: Request, versionId: string, render?: () => Promise<Response>): Promise<Response>;
|
|
12
|
-
/**
|
|
13
|
-
* Answers `request` with the asset of version `versionId` that Cloudflare's asset handler picks.
|
|
4
|
+
* The handler of the app's site routes, for every method: it answers a request with the file of
|
|
5
|
+
* version `versionId`, else with what `worker` answers, else 404. `worker` is the Worker script,
|
|
6
|
+
* the object with `fetch(request)` that the app's server entry exports: the code that runs on a
|
|
7
|
+
* miss. As on Cloudflare, the presence of code decides how `not_found_handling` applies: with
|
|
8
|
+
* `worker`, it applies to navigations only and `worker` answers the other misses; without it, the
|
|
9
|
+
* site is files only, so it applies to every request.
|
|
14
10
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* never marked.
|
|
11
|
+
* A page and a 404 answer `Cache-Control: no-store`. The deployment's Cloudflare front keeps that
|
|
12
|
+
* for a path without an extension and replaces it with a four-hour browser `max-age` for a path
|
|
13
|
+
* with one, so a browser that asks for a script before its upload ended keeps the 404; the deploy
|
|
14
|
+
* order prevents that case, because no page refers to a file that is not uploaded yet.
|
|
20
15
|
*/
|
|
21
|
-
export declare function
|
|
16
|
+
export declare function serveSite(component: ComponentApi, versionId: string, worker?: {
|
|
17
|
+
fetch(request: Request): Promise<Response>;
|
|
18
|
+
}): (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, request: Request) => Promise<Response>;
|