@sanoma-ai/connector-cloudflare 0.1.5 → 0.1.6

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/README.md CHANGED
@@ -37,16 +37,16 @@ export const host = cloudflare.container({
37
37
  export const wakeup = cloudflare.alarm({ host });
38
38
  ```
39
39
 
40
- | Field | What it is |
41
- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
42
- | `name` | The company's name, its identity: lowercase letters, digits and dashes, up to 56; the Worker and its application are `sanoma-<name>` |
43
- | `image` | The Sanoma runtime image, pinned to a tag or digest, never `latest`: any registry's, which apply copies into the account's ([The image](#the-image)) |
44
- | `source` | The company repository: a clone URL, or a declared `github.repository` |
45
- | `ref` | The branch it runs, never a commit: apply resolves it and sets the hidden `revision`, so a merge is drift on the container |
46
- | `port` | The port the runtime listens on in the container (its `PORT`) |
47
- | `secrets` | Environment variables, each a `secret(...)`: the Worker's secret bindings, write-only, never in an output, the ledger or a checkpoint |
48
- | `domains` | Optional: a public site's domain, by site name, passed as `SANOMA_DOMAINS`; routing a domain to the Worker is not done here yet |
49
- | `id`, `url`, `healthy` | Cloudflare's: the application's id, the Worker's workers.dev URL, and whether it answers |
40
+ | Field | What it is |
41
+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
+ | `name` | The company's name, its identity: lowercase letters, digits and dashes, up to 56; the Worker and its application are `sanoma-<name>` |
43
+ | `image` | The Sanoma runtime image, pinned to a tag or digest, never `latest`: any registry's, which apply copies into the account's and pins by digest ([The image](#the-image)) |
44
+ | `source` | The company repository: a clone URL, or a declared `github.repository` |
45
+ | `ref` | The branch it runs, never a commit: apply resolves it and sets the hidden `revision`, so a merge is drift on the container |
46
+ | `port` | The port the runtime listens on in the container (its `PORT`) |
47
+ | `secrets` | Environment variables, each a `secret(...)`: the Worker's secret bindings, write-only, never in an output, the ledger or a checkpoint |
48
+ | `domains` | Optional: a public site's domain, by site name, passed as `SANOMA_DOMAINS`; routing a domain to the Worker is not done here yet |
49
+ | `id`, `url`, `healthy` | Cloudflare's: the application's id, the Worker's workers.dev URL, and whether it answers |
50
50
 
51
51
  The host's outputs are `{ url, revision, healthy }`. Its capabilities: stops when quiet, a public URL, it runs an image rather than building one, no fixed egress. `healthy` is the application existing and the Worker answering `/__sanoma/health`, which does not start a stopped container: a stopped host is healthy, and a read or a drift check leaves it stopped.
52
52
 
@@ -58,19 +58,19 @@ The logo is Cloudflare's cloud from [Simple Icons](https://simpleicons.org/?q=cl
58
58
 
59
59
  The package ships the Worker it uploads, `worker/`: `index.js`, which exports the Durable Object class `SanomaInstance` over `DurableObject` from `cloudflare:workers`, and `instance.js`, the object's code with no imports (typed by `instance.d.ts`), which the fake runs in Node so both kits check the code Cloudflare runs. Every request to the Worker goes to its one object, which:
60
60
 
61
- - starts the container on a request at the revision and image the Worker's `SANOMA_REVISION` and `SANOMA_IMAGE` name, with the Worker's text bindings (plain and secret) as its environment and both as labels (the image's as a digest, since a label holds 64 bytes); a running container that does not carry both is destroyed and started again (a deploy);
62
- - waits for the container's `/healthz` (up to ten minutes, the clone and install included), sets its inactivity timeout to ten minutes, and proxies the request to its `port`;
61
+ - starts the container on a request at the Worker's `SANOMA_REVISION` and the image its upload names (`ctx.container.images.runtime`: the copy, pinned by digest), as a `standard-1` instance (½ vCPU, 4 GiB: the policy refuses `basic`), with the Worker's text bindings (plain and secret) as its environment and both as labels (the image's as a hash, since a label holds 64 bytes); a running container that does not carry both is destroyed and started again (a deploy);
62
+ - waits for the container's `/healthz` (up to ten minutes, the clone and install included), sets its inactivity timeout to ten minutes, and proxies the request to its `port` with the Host it was asked for and `x-forwarded-proto` (the port's fetch reaches the container whatever the URL's host, which becomes the request's Host header: so the company serves the public site declared on a domain);
63
63
  - answers `GET /__sanoma/health` with `{ revision, running }` without starting the container, and with `?start=1` once the container answers, which is what a create or update waits for;
64
64
  - holds the company's one wake at `/__sanoma/wake`, with `Authorization: Bearer <SANOMA_WAKEUP_TOKEN>`: `GET` shows `{ at, rang? }`, `PUT { at }` replaces it and sets the object's alarm, `DELETE` clears it. Without the token among the host's secrets it answers 404, with another one 401;
65
65
  - at the alarm, starts the container and calls its `/wake`, then notes when (`rang`); a failure throws, so Cloudflare rings the alarm again.
66
66
 
67
- Cloudflare stops the container after ten quiet minutes; the object, its storage and its alarm stay, and the next request or alarm starts the container again. A create uploads the Worker with the object's migration (`new_sqlite_classes`) and its class as a container's (`containers: [{ class_name }]`, as Wrangler sends it), turns its workers.dev URL on, and makes the container application for the object's namespace (the `namespace_id` the Worker's settings then show; `basic`, one instance at most, none until a request); an update uploads it again and, for a new image, rolls the application out to it (`rolling`, all at once). Either waits for the Worker to answer at the new revision. The image's label is the one the Worker names, not the one Cloudflare started: whether a container started while a rollout is still going runs the new image is what the live run checks. A secret's new value goes up with the next update for another reason (a plan compares secret names, never values: the Worker's settings never show them), and a running container keeps the old one until it starts again. A delete deletes the application, then the Worker with its object's storage. A Worker of that name that is not Sanoma's (no `SANOMA_INSTANCE` binding) reads as gone, and a create or a delete refuses to touch it.
67
+ Cloudflare stops the container after ten quiet minutes; the object, its storage and its alarm stay, and the next request or alarm starts the container again. The application is of the `durable_object` scheduling policy (public beta, the one Cloudflare documents for new applications; it refused `default` on the account the connector was first run on): the object starts its container, with the image and the instance type it names, so the application is only a name and the object's namespace, and has no image, versions or rollouts. A create, in Wrangler's order, copies and pins the image and waits until Cloudflare prepared it ([The image](#the-image)), uploads the Worker with the object's migration (`new_sqlite_classes`) and its class as a container's with that image (`containers: [{ name, class_name, images: { runtime } }]`, as Wrangler sends it), turns its workers.dev URL on, makes the application for the object's namespace (`{ name, scheduling_policy: "durable_object", durable_objects: { namespace_id } }`, the `namespace_id` the Worker's settings then show), and uploads the Worker once more: the object learns which application backs its namespace only from a deployment made after the application exists, and without that upload every start answers "There is no container application assigned to this Durable Object namespace", for good (found on the first real deploy, 2026-10-29); an update does the same, except that it leaves the application as it is: a new image is a new upload naming it, and the object destroys a container started at another and starts it again at the next request. Either waits for the Worker to answer at the new revision. The policy is fixed once an application is made, and the object cannot start a container under another: one of the `default` policy under that name (none can be made any more) is deleted by hand before the apply. A secret's new value goes up with the next update for another reason (a plan compares secret names, never values: the Worker's settings never show them), and a running container keeps the old one until it starts again. A delete deletes the application, then the Worker with its object's storage. A Worker of that name that is not Sanoma's (no `SANOMA_INSTANCE` binding) reads as gone, and a create or a delete refuses to touch it.
68
68
 
69
69
  ## The image
70
70
 
71
- A container application runs an image of its own account's registry, `registry.cloudflare.com/<account id>/...`, which Cloudflare stores and pulls without a limit (Docker Hub's pulls are not cached and are limited per address). So a create or an update first copies the declared image there, unless it is in the account's registry already, and the application runs the copy: `ghcr.io/sanoma-ai/runtime:0.8.1` becomes `registry.cloudflare.com/<account id>/sanoma-ai-runtime:0.8.1` (the path with `-` for `/`, the same tag or digest). The copy is registry to registry in Node, no Docker: the source pulled anonymously (a public image; the token its registry's challenge names), the target pushed to with temporary credentials from `containers.registries.credentials.generate` (push and pull, an hour, never stored or logged). Each blob the account lacks is streamed across in one request of its known length, then the manifest, unchanged; when the account's manifest for that tag already has the source's digest, nothing is copied, and a digest-pinned source must answer that digest. Docker Hub is not copied from: declare `ghcr.io/sanoma-ai/runtime`. The source must be one image manifest (OCI or Docker v2), not an index: the release pushes one (`provenance: false`). It comes before the upload, so a copy that fails leaves the Worker as it was.
71
+ A container of the `durable_object` policy runs an image of its own account's registry pinned by digest, `registry.cloudflare.com/<account id>/<repository>@sha256:<digest>`, never a tag, which Cloudflare stores and pulls without a limit (Docker Hub's pulls are not cached and are limited per address). So a create or an update first copies the declared image there and pins the copy by its manifest's digest, and the object starts that: `ghcr.io/sanoma-ai/runtime:0.8.1` becomes `registry.cloudflare.com/<account id>/sanoma-ai-runtime@sha256:…` (the path with `-` for `/`, copied as `:0.8.1`). An image in the account's registry by a tag is not copied: its manifest's digest is asked for (`docker-content-digest`); one there pinned by digest runs as it is, with no registry request. The copy is registry to registry in Node, no Docker: the source pulled anonymously (a public image; the token its registry's challenge names), the target pushed to with temporary credentials from `containers.registries.credentials.generate` (push and pull, an hour, never stored or logged). Each blob the account lacks is streamed across in one request of its known length, then the manifest, unchanged; when the account's manifest for that tag already has the source's digest, nothing is copied, and a digest-pinned source must answer that digest. Docker Hub is not copied from: declare `ghcr.io/sanoma-ai/runtime`. The source must be one image manifest (OCI or Docker v2), not an index: the release pushes one (`provenance: false`). Then the account prepares the pinned image to run (`POST …/containers/image-preparations { image }`, `containers.images.prepare`), asked again every two seconds until it is `ready`, as Wrangler does: an `error` fails the apply with Cloudflare's `reason`, not retryable, and fifteen minutes without `ready` fails it as retryable. Both come before the upload, so a copy or a preparation that fails leaves the Worker as it was.
72
72
 
73
- The Worker's `SANOMA_IMAGE` binding holds the declared image and the application its copy, so a read reports the declared image, a plan and drift compare the declaration with it, and a declaration that names `ghcr.io` plans no change once applied. An image pushed by hand (`npx wrangler containers push`) is declared as the `registry.cloudflare.com/<account id>/...` reference Wrangler prints and runs as it is; another account's is copied like any other registry's image.
73
+ The Worker's `SANOMA_IMAGE` binding holds the declared image and its upload the pinned copy, so a read reports the declared image, a plan and drift compare the declaration with it, and a declaration that names `ghcr.io` plans no change once applied. An image pushed by hand (`npx wrangler containers push`) is declared as the `registry.cloudflare.com/<account id>/...` reference Wrangler prints, and runs as it is, pinned; another account's is copied like any other registry's image.
74
74
 
75
75
  ## Scale to zero
76
76
 
@@ -106,27 +106,31 @@ A 429, a 5xx, a timeout or no reply is retryable, the image's copy's requests to
106
106
 
107
107
  ### Plan
108
108
 
109
- Containers need the Workers Paid plan. An instance is billed while it runs, by its `basic` size, and not while it is stopped; the Worker and its object are billed per request.
109
+ Containers need the Workers Paid plan. An instance is billed while it runs, by its `standard-1` size, and not while it is stopped; the Worker and its object are billed per request.
110
110
 
111
111
  ### Testing the driver
112
112
 
113
- `test/driver.test.ts` and the features replay Cloudflare's replies (`test/fixtures`) with [`@sanoma-ai/testing/replay`](https://github.com/Sanoma-AI/sanoma/blob/main/packages/testing/README.md#replaying-a-vendors-api): `pnpm vitest run connectors/cloudflare` needs no account. The fixtures are **written from Cloudflare's API reference, not recorded**: no account was at hand when the connector was written. A recording replaces them (`SANOMA_LIVE=1 SANOMA_RECORD=1` on the features test), losing the account's id and subdomain, ids and tokens; until then, a reply the reference gets wrong is wrong here too. The upload's `containers` field is Wrangler's and not in the reference or the SDK's types: the live run is what checks it. The image's copy is tested against two small registries in this process (`test/registry.test.ts`), and the driver's call for its credentials over replies written from the SDK's types and the OCI distribution spec; that Cloudflare's registry takes the copy as written is what the live run checks. The driver tests only replay.
113
+ `test/driver.test.ts` and the features replay Cloudflare's replies (`test/fixtures`) with [`@sanoma-ai/testing/replay`](https://github.com/Sanoma-AI/sanoma/blob/main/packages/testing/README.md#replaying-a-vendors-api): `pnpm vitest run connectors/cloudflare` needs no account. The fixtures are **written from Cloudflare's API reference, not recorded**: no account was at hand when the connector was written. A recording replaces them (`SANOMA_LIVE=1 SANOMA_RECORD=1` on the features test), losing the account's id and subdomain, ids and tokens; until then, a reply the reference gets wrong is wrong here too. The upload's `containers` field (its `name`, `class_name` and `images`) is Wrangler's and not in the reference or the SDK's types, and the object's `ctx.container.images` and `start({ image, instance })` are the policy's: the live run is what checks them. The image's copy is tested against two small registries in this process (`test/registry.test.ts`), and the driver's call for its credentials over replies written from the SDK's types and the OCI distribution spec; that Cloudflare's registry takes the copy as written is what the live run checks. The driver tests only replay.
114
114
 
115
115
  ### Running it live
116
116
 
117
- `test/live.ts`, run by hand, runs the Host and Wakeup kits against a real account, then prints how long a cold wake took (a request to a stopped container until it answers). It makes a Worker and an application named `sanoma-host-check` (`CLOUDFLARE_TEST_NAME` changes it), takes about an hour (each stop is Cloudflare's own ten quiet minutes), and deletes both at the end:
117
+ `test/live.ts`, run by hand, runs the Host and Wakeup kits against a real account, then prints how long a cold wake took (a request to a stopped container until it answers). It makes a Worker and a `durable_object` application named `sanoma-host-check` (`CLOUDFLARE_TEST_NAME` changes it), takes about an hour (each stop is Cloudflare's own ten quiet minutes), and deletes both at the end. It is what checks what the fixtures cannot: the copy and its pin by digest, the image's preparation, the upload's `containers[].images`, the application's body, the object's `start` with the `standard-1` instance type, and a deploy check's new image started by the object:
118
118
 
119
119
  ```sh
120
120
  pnpm build
121
121
  SANOMA_LIVE=1 CLOUDFLARE_API_TOKEN=... CLOUDFLARE_ACCOUNT_ID=... \
122
122
  CLOUDFLARE_TEST_CHECKOUT=~/src/host-check-company CLOUDFLARE_TEST_DATABASE_URL=postgresql://... \
123
+ CLOUDFLARE_TEST_SOURCE_KEY_FILE=~/.ssh/host-check-company_ed25519 \
123
124
  node connectors/cloudflare/test/live.ts
124
125
  ```
125
126
 
127
+ The kits have not run on a real account yet: the connector's first real run was Sanoma's own back office (`sanoma-ops`, 2026-10-29), deployed from the app's Resources page. What it showed: the second upload above, the Host the proxy forwards, and a cold start of about six to eight minutes on `standard-1` (the clone, `pnpm install` and `sanoma serve` of a company with a public site), which is what a visitor waits for after ten quiet minutes until the container is kept running or the sites move to the Worker.
128
+
126
129
  It needs:
127
130
 
128
131
  - a published runtime image, `ghcr.io/sanoma-ai/runtime:<version>` (the `sanoma` package's version), which apply copies into the account's registry; `CLOUDFLARE_TEST_IMAGE` names another;
129
132
  - `CLOUDFLARE_TEST_CHECKOUT`: a clone of a company repository whose `origin` Cloudflare can clone and this machine can push to (each deploy check pushes an empty commit), holding the kits' company: [`connectors/docker/test/fixtures/company`](../docker/test/fixtures/company) with `sanoma` from npm, its config registering `wakeupCheckWorkflows` (the host checks' workflows and a tick every minute);
133
+ - `CLOUDFLARE_TEST_SOURCE_KEY_FILE`, for a private repository: the private half of a read-only deploy key on it, passed as the host's `SANOMA_SOURCE_KEY` secret as go-live does (the private `Sanoma-AI/host-check-company` is that company, with such a key);
130
134
  - `CLOUDFLARE_TEST_DATABASE_URL`: a Postgres both the container and this machine reach, empty, the company's;
131
135
  - Postgres here for the operator that applies the host (`pnpm db:up`).
132
136
 
@@ -142,7 +146,7 @@ The connector carries steps for [scenarios](https://github.com/Sanoma-AI/sanoma/
142
146
 
143
147
  ## Testing
144
148
 
145
- `@sanoma-ai/connector-cloudflare/fake` is an in-memory Cloudflare account, the fake the connector carries: each sandbox run makes one of its own. Its registry is in memory too: a copy records the image under its reference there and pulls nothing. Its Workers answer on ports of this machine, one per Worker name, and run the package's own object code over a `ctx` in this process: storage in memory, an alarm on a timer (again after a throw), and a container that runs what `start` returns for the image and revision it was started at (by default a stub that answers `/healthz` and `/wake`). An upload restarts the object over its new bindings; a rollout stops the container, as Cloudflare replaces it.
149
+ `@sanoma-ai/connector-cloudflare/fake` is an in-memory Cloudflare account, the fake the connector carries: each sandbox run makes one of its own. Its registry is in memory too: a copy records the image under its reference there and pulls nothing. A copy pins the image by a made-up digest, and a preparation answers ready for an image pinned in its registry. Its Workers answer on ports of this machine, one per Worker name, and run the package's own object code over a `ctx` in this process: storage in memory, an alarm on a timer (again after a throw), `ctx.container.images` from the upload's `containers[].images`, and a container that runs what `start` returns for the image (the one its pinned copy was copied from) and revision it was started at (by default a stub that answers `/healthz` and `/wake`); `start` refuses an image the upload did not name or an instance type that is not Cloudflare's. An upload restarts the object over its new bindings and images: a new image starts the container again at the next request, as the object finds its label changed.
146
150
 
147
151
  ```ts
148
152
  import { fakeCloudflare } from "@sanoma-ai/connector-cloudflare/fake";
@@ -162,6 +166,6 @@ await fake.close();
162
166
 
163
167
  ## Later
164
168
 
165
- Custom domains (routing `domains` to the Worker), the `durable_object` scheduling policy and snapshots, static egress, outbound Workers, and observability (the Worker's and the container's logs) are not done here yet.
169
+ Custom domains (routing `domains` to the Worker: `sanoma-ops`'s was attached by hand, `PUT /accounts/{id}/workers/domains`), snapshots, static egress, outbound Workers, and reading the logs (the Worker's and the container's are turned on at the upload and the application, and readable in the account's observability) are not done here yet.
166
170
 
167
171
  License: FSL-1.1-ALv2.
@@ -6,7 +6,8 @@ import { z } from "zod";
6
6
  * on a request and stops it ten minutes after the last (`Host`: stops when quiet, its URL public).
7
7
  * What it runs is in the Worker's plain-text bindings, so a read tells its revision with no
8
8
  * container running. A deploy uploads the Worker again; a new image is copied into the account's
9
- * registry (any registry's but Cloudflare's own) and rolls the application out to the copy.
9
+ * registry (one there by a tag is pinned to its digest) and named by the upload, and the object
10
+ * starts the container again at it.
10
11
  */
11
12
  export declare const container: import("@sanoma-ai/workflows").Resource<z.ZodObject<{
12
13
  id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
package/dist/connector.js CHANGED
@@ -46,7 +46,8 @@ const containerSchema = z.object({
46
46
  * on a request and stops it ten minutes after the last (`Host`: stops when quiet, its URL public).
47
47
  * What it runs is in the Worker's plain-text bindings, so a read tells its revision with no
48
48
  * container running. A deploy uploads the Worker again; a new image is copied into the account's
49
- * registry (any registry's but Cloudflare's own) and rolls the application out to the copy.
49
+ * registry (one there by a tag is pinned to its digest) and named by the upload, and the object
50
+ * starts the container again at it.
50
51
  */
51
52
  export const container = defineResource({
52
53
  vendor: "cloudflare",
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
package/dist/driver.js CHANGED
@@ -40,11 +40,6 @@ function failure(what, { APIError, APIConnectionTimeoutError }, timeoutMs, error
40
40
  const isStatus = (error, status) => error instanceof DriverError && error.status === status;
41
41
  /** A request to a Worker, with a timeout: a redirect is no answer of the Worker's, and would carry the token elsewhere. */
42
42
  const sender = (timeoutMs) => (url, init) => fetch(url, { ...init, redirect: "manual", signal: AbortSignal.timeout(timeoutMs) });
43
- /** An application as the operations read it: its image, as its configuration names it. */
44
- const application = (app) => ({
45
- id: app.id,
46
- image: app.configuration?.image ?? "",
47
- });
48
43
  /**
49
44
  * The account at `CLOUDFLARE_ACCOUNT_ID` with `CLOUDFLARE_API_TOKEN`, read when an operation is
50
45
  * called. `subdomains` keeps each account's workers.dev subdomain once read, for the driver's life.
@@ -99,15 +94,17 @@ function accountApi(timeoutMs, subdomains) {
99
94
  }),
100
95
  async upload(script, { modules, ...metadata }) {
101
96
  await calling(`PUT workers/scripts/${script}`, async (cf) => {
102
- const { toFile } = await sdk();
103
- const files = await Promise.all(modules.map(({ name, content }) => toFile(Buffer.from(content), name, { type: "application/javascript+module" })));
104
- // The SDK sends `application/javascript` over the form: without it, `fetch` names the form's boundary.
105
- // `containers` is Wrangler's, which the SDK's type does not have yet.
106
- await cf.workers.scripts.update(script, {
107
- account_id,
108
- metadata: metadata,
109
- files,
110
- }, { headers: { "content-type": null } });
97
+ // The form as Cloudflare reads it (and Wrangler sends it): one part `metadata`, the JSON, and
98
+ // one part per module, named after it. The SDK's `workers.scripts.update` flattens the
99
+ // metadata into `metadata[main_module]` parts instead, which Cloudflare refuses ("Could not
100
+ // read content for part 'metadata'", found live 2026-10-28). `containers` is Wrangler's,
101
+ // which the SDK's type does not have yet.
102
+ const form = new FormData();
103
+ form.append("metadata", new Blob([JSON.stringify(metadata)], { type: "application/json" }), "metadata.json");
104
+ for (const { name, content } of modules) {
105
+ form.append(name, new Blob([content], { type: "application/javascript+module" }), name);
106
+ }
107
+ await cf.put(`/accounts/${account_id}/workers/scripts/${script}`, { body: form });
111
108
  });
112
109
  },
113
110
  async enableSubdomain(script) {
@@ -119,27 +116,27 @@ function accountApi(timeoutMs, subdomains) {
119
116
  application: (name) => calling(`GET containers/applications?name=${name}`, async (cf) => {
120
117
  const page = await cf.containers.applications.list({ account_id, name });
121
118
  const app = page.result.find((a) => a.name === name);
122
- return app && application(app);
119
+ return app && { id: app.id };
123
120
  }),
124
- createApplication: (name, image, namespace_id) => calling("POST containers/applications", async (cf) => application(await cf.containers.applications.create({
125
- account_id,
126
- name,
127
- scheduling_policy: "default",
128
- // The Worker's object starts the one instance on a request: none runs until then.
129
- instances: 0,
130
- max_instances: 1,
131
- configuration: { image, instance_type: "basic" },
132
- durable_objects: { namespace_id },
133
- }))),
134
- async rollout(id, image) {
135
- await calling(`POST containers/applications/${id}/rollouts`, (cf) => cf.containers.applications.rollouts.create(id, {
121
+ createApplication: (name, namespace_id) => calling("POST containers/applications", async (cf) => {
122
+ // The `durable_object` policy, the one for new applications (`default` is refused: "This
123
+ // account cannot create applications with the "default" scheduling policy", found live
124
+ // 2026-10-28). The object starts the container with its image and instance type, so the
125
+ // body names neither.
126
+ const { id } = await cf.containers.applications.create({
136
127
  account_id,
137
- description: `Sanoma: ${image}`,
138
- strategy: "rolling",
139
- kind: "full_auto",
140
- step_percentage: 100,
141
- target_configuration: { image, instance_type: "basic" },
142
- }));
128
+ name,
129
+ scheduling_policy: "durable_object",
130
+ durable_objects: { namespace_id },
131
+ // The container's output goes to the account's logs: what a start that never answers
132
+ // was doing is readable there, and nowhere else.
133
+ observability: { logs: { enabled: true } },
134
+ });
135
+ return { id };
136
+ }),
137
+ async prepareImage(image) {
138
+ const { status, reason } = await calling("POST containers/image-preparations", (cf) => cf.containers.images.prepare({ account_id, image }));
139
+ return { status, ...(reason && { reason }) };
143
140
  },
144
141
  account: account_id,
145
142
  async copyImage(image) {
@@ -149,7 +146,7 @@ function accountApi(timeoutMs, subdomains) {
149
146
  permissions: ["push", "pull"],
150
147
  expiration_minutes: 60,
151
148
  }));
152
- await copyImage(image, { account: account_id, username, password });
149
+ return copyImage(image, { account: account_id, username, password });
153
150
  },
154
151
  async deleteApplication(id) {
155
152
  await found(`DELETE containers/applications/${id}`, (cf) => cf.containers.applications.delete(id, { account_id }));
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
package/dist/fake.d.ts CHANGED
@@ -11,7 +11,7 @@ export interface FakeContainer {
11
11
  /** Each `/wake` it answered, in order, when it records them. */
12
12
  wakes?: readonly FakeWake[];
13
13
  }
14
- /** Starts the company's runtime, as the container would: the image, the revision its label names, and the Worker's text bindings as its environment. */
14
+ /** Starts the company's runtime, as the container would: the image (the one its pinned copy was copied from), the revision its label names, and the Worker's text bindings as its environment. */
15
15
  export type StartContainer = (input: {
16
16
  image: string;
17
17
  revision: string;
@@ -23,16 +23,17 @@ export interface FakeCloudflareOptions extends FakeOptions {
23
23
  }
24
24
  export interface FakeCloudflareState extends Record<string, unknown> {
25
25
  seq: number;
26
- /** The Workers, by script name: their bindings, a secret's without its text. */
26
+ /** The Workers, by script name: their bindings, a secret's without its text, and the images their object may start, by name. */
27
27
  scripts: Record<string, {
28
28
  bindings: ReadBinding[];
29
29
  subdomain: boolean;
30
+ images: Record<string, string>;
30
31
  }>;
31
32
  /** The container applications, by id. */
32
33
  applications: Record<string, Application & {
33
34
  name: string;
34
35
  }>;
35
- /** The account's registry: each image copied in, by its reference there, and the image it was copied from. */
36
+ /** The account's registry: each image copied in, by its pinned reference there, and the image it was copied from. */
36
37
  images: Record<string, string>;
37
38
  }
38
39
  /**
@@ -44,8 +45,10 @@ export interface FakeCloudflareState extends Record<string, unknown> {
44
45
  * (`worker/instance.js`) over a `ctx` in this process: its container runs `start`'s runtime
45
46
  * (the image and the revision label it was started at, the Worker's text bindings as its
46
47
  * environment), its storage is in memory, and its alarm rings on a timer, again after a throw.
47
- * An upload restarts the object over the new bindings, its container, storage and alarm kept; a
48
- * rollout stops the container, as Cloudflare replaces it. `stop(name)` stops a company's
48
+ * An upload restarts the object over the new bindings and images, its container, storage and
49
+ * alarm kept: a new image starts the container again at the next request, as the object finds its
50
+ * label changed. `copyImage` pins its copy by a made-up digest, and `prepareImage` answers ready
51
+ * for an image pinned in the account's registry. `stop(name)` stops a company's
49
52
  * container as ten quiet minutes would, `fire()` rings every alarm now, `wakes()` lists the
50
53
  * `/wake`s the containers answered, `close()` (and `reset()`) stops everything.
51
54
  */
package/dist/fake.js CHANGED
@@ -1,13 +1,16 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { createServer } from "node:http";
2
3
  import { DriverError, errorMessage, retryableStatus } from "@sanoma-ai/workflows";
3
4
  import { defineFake } from "@sanoma-ai/workflows/fake";
4
5
  import { NodeRequest, sendNodeResponse } from "srvx/node";
5
6
  import { cloudflareOps } from "./connector.js";
6
7
  import { alarmOps, containerOps, scriptOf } from "./ops.js";
7
- import { accountImage } from "./registry.js";
8
+ import { accountImage, accountPinned, pinImage } from "./registry.js";
8
9
  import { Instance, OBJECT_CLASS, worker } from "./worker.js";
9
10
  /** The fake account's id, which its registry's references name: the fixtures' made-up one. */
10
11
  const FAKE_ACCOUNT = "0123456789abcdef0123456789abcdef";
12
+ /** The named sizes `start` takes under the policy: `basic` is not one of them (the runtime refuses it, as it did live on 2026-10-28). */
13
+ const INSTANCE_TYPES = ["lite", "standard-1", "standard-2", "standard-3", "standard-4"];
11
14
  /** How long the fake waits before it rings an alarm again that threw, and how often: Cloudflare retries six times. */
12
15
  const RETRY_MS = 250;
13
16
  const RETRIES = 6;
@@ -45,8 +48,10 @@ const stubContainer = async () => {
45
48
  * One Durable Object of a Worker, in this process: the `ctx` `worker/instance.js` runs over
46
49
  * (`ctx.container` running `start`'s runtime, `ctx.storage` in memory, one alarm on a timer),
47
50
  * kept across uploads as Cloudflare keeps an object's storage and container across a deploy.
51
+ * `images` are the ones the Worker's last upload named, by name; `source` names the image a
52
+ * pinned one was copied from, or nothing when no application runs behind the object.
48
53
  */
49
- function fakeObject(start, image, started) {
54
+ function fakeObject(start, images, source, started) {
50
55
  const storage = new Map();
51
56
  let running;
52
57
  let alarm;
@@ -113,17 +118,25 @@ function fakeObject(start, image, started) {
113
118
  get running() {
114
119
  return running !== undefined;
115
120
  },
116
- start({ env, labels }) {
121
+ get images() {
122
+ return { ...images() };
123
+ },
124
+ start({ image, instance: type, env, labels }) {
117
125
  if (running)
118
126
  throw new Error("the container is already running");
119
- const at = image();
127
+ if (!image || !Object.values(images()).includes(image)) {
128
+ throw new TypeError(`no image ${image || "(none)"} among the Worker's containers' images`);
129
+ }
130
+ if (!INSTANCE_TYPES.includes(type))
131
+ throw new TypeError(`no instance type ${type}`);
132
+ const at = source(image);
120
133
  if (at === undefined)
121
134
  throw new Error("no container application runs behind this Durable Object");
122
135
  const runtime = start({ image: at, revision: labels.revision ?? "", env }).then((made) => {
123
136
  started.push(made);
124
137
  return made;
125
138
  });
126
- const mine = { runtime, labels: { ...labels }, port: Number(env.PORT) };
139
+ const mine = { runtime, image, labels: { ...labels }, port: Number(env.PORT) };
127
140
  running = mine;
128
141
  // A runtime that does not start leaves no container, as a failed start does.
129
142
  runtime.catch(() => {
@@ -131,7 +144,9 @@ function fakeObject(start, image, started) {
131
144
  running = undefined;
132
145
  });
133
146
  },
134
- inspect: async () => (running ? { labels: { ...running.labels } } : null),
147
+ inspect: async () => (running ? { image: running.image, labels: { ...running.labels } } : null),
148
+ // A runtime that does not start is a container that ended; one that runs never does here.
149
+ monitor: () => (running ? running.runtime.then(() => new Promise(() => { })) : Promise.resolve()),
135
150
  destroy,
136
151
  getTcpPort: (port) => ({
137
152
  async fetch(input, init) {
@@ -210,8 +225,10 @@ function fakeObject(start, image, started) {
210
225
  * (`worker/instance.js`) over a `ctx` in this process: its container runs `start`'s runtime
211
226
  * (the image and the revision label it was started at, the Worker's text bindings as its
212
227
  * environment), its storage is in memory, and its alarm rings on a timer, again after a throw.
213
- * An upload restarts the object over the new bindings, its container, storage and alarm kept; a
214
- * rollout stops the container, as Cloudflare replaces it. `stop(name)` stops a company's
228
+ * An upload restarts the object over the new bindings and images, its container, storage and
229
+ * alarm kept: a new image starts the container again at the next request, as the object finds its
230
+ * label changed. `copyImage` pins its copy by a made-up digest, and `prepareImage` answers ready
231
+ * for an image pinned in the account's registry. `stop(name)` stops a company's
215
232
  * container as ten quiet minutes would, `fire()` rings every alarm now, `wakes()` lists the
216
233
  * `/wake`s the containers answered, `close()` (and `reset()`) stops everything.
217
234
  */
@@ -259,8 +276,12 @@ export function fakeCloudflare(options = {}) {
259
276
  async upload(script, { modules, main_module, bindings, containers, migrations }) {
260
277
  if (!modules.some((m) => m.name === main_module))
261
278
  throw fail(400, 10021, `no module named ${main_module}`);
262
- if (!containers.some((c) => c.class_name === OBJECT_CLASS)) {
279
+ const runs = containers.find((c) => c.class_name === OBJECT_CLASS);
280
+ if (!runs)
263
281
  throw fail(400, 10021, `${OBJECT_CLASS} is no container's: its object would have no ctx.container`);
282
+ const unpinned = Object.values(runs.images).filter((image) => !accountPinned(image, FAKE_ACCOUNT));
283
+ if (!Object.keys(runs.images).length || unpinned.length) {
284
+ throw fail(400, 10021, `an image must be the account's, pinned by digest: ${unpinned.join(", ") || "none"}`);
264
285
  }
265
286
  const known = state.scripts[script] !== undefined;
266
287
  if (!known && !migrations?.new_sqlite_classes.includes(OBJECT_CLASS)) {
@@ -287,8 +308,10 @@ export function fakeCloudflare(options = {}) {
287
308
  ? { type, name, namespace_id }
288
309
  : { type, name, ...("text" in rest && { text: rest.text }) }),
289
310
  subdomain: state.scripts[script]?.subdomain ?? false,
311
+ images: { ...runs.images },
290
312
  };
291
- const object = objects.get(script) ?? fakeObject(start, () => appOf(script)?.image, started);
313
+ const object = objects.get(script) ??
314
+ fakeObject(start, () => state.scripts[script]?.images ?? {}, (image) => appOf(script) && (state.images[image] ?? image), started);
292
315
  objects.set(script, object);
293
316
  object.restart(new Instance(object.ctx, env));
294
317
  },
@@ -306,28 +329,30 @@ export function fakeCloudflare(options = {}) {
306
329
  },
307
330
  async application(name) {
308
331
  const found = appOf(name);
309
- return found && { id: found.id, image: found.image };
332
+ return found && { id: found.id };
310
333
  },
311
- async createApplication(name, image, namespaceId) {
334
+ async createApplication(name, namespaceId) {
312
335
  const namespace = state.scripts[name]?.bindings.find((b) => b.namespace_id)?.namespace_id;
313
336
  if (!namespace || namespace !== namespaceId)
314
337
  throw fail(400, 1000, `no Durable Object namespace ${namespaceId}`);
315
338
  if (appOf(name))
316
339
  throw fail(409, 1001, `an application named ${name} exists`);
317
340
  const id = `00000000-0000-4000-8000-${String(++state.seq).padStart(12, "0")}`;
318
- state.applications[id] = { id, name, image };
319
- return { id, image };
320
- },
321
- async rollout(id, image) {
322
- const found = state.applications[id];
323
- if (!found)
324
- throw fail(404, 1002, `no application ${id}`);
325
- found.image = image;
326
- await objects.get(found.name)?.stop();
341
+ state.applications[id] = { id, name };
342
+ return { id };
327
343
  },
328
344
  account: FAKE_ACCOUNT,
329
345
  async copyImage(image) {
330
- state.images[accountImage(image, FAKE_ACCOUNT)] = image;
346
+ const digest = `sha256:${createHash("sha256").update(image).digest("hex")}`;
347
+ const pinned = pinImage(accountImage(image, FAKE_ACCOUNT), digest);
348
+ state.images[pinned] = image;
349
+ return pinned;
350
+ },
351
+ async prepareImage(image) {
352
+ if (!accountPinned(image, FAKE_ACCOUNT)) {
353
+ throw fail(400, 1000, `${image}: an image must be the account's, pinned by digest`);
354
+ }
355
+ return { status: "ready" };
331
356
  },
332
357
  async deleteApplication(id) {
333
358
  const found = state.applications[id];
package/dist/fake.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}