Skip to main content

Cloudflare/workers Scripts

@webframp/cloudflare/workers-scriptsv2026.10.21.1· Apache-2.0· 5d agoBEHAVIORS
01README

Cloudflare Workers Scripts — upload, deploy, bindings, routes, cron triggers

02Release Notes

2026.10.21.1

Changed: The README and the apiToken description now lead with a vault. Store the token with swamp vault put cloudflare API_TOKEN and set apiToken to ${{ vault.get("cloudflare", "API_TOKEN") }}. The CLOUDFLARE_API_TOKEN environment variable still works as a fallback, but swamp does not redact it, so it is no longer recommended. The missing-token error now says the same.

Changed: Method arguments that carry a secret are now marked sensitive, so swamp redacts them from logs and run records. Pass them as vault.get expressions. Affected: put_script_secret and patch_script_secrets_bulk. The README's new "Secrets" section lists them per method.

Changed: Secrets returned by create_assets_upload_session are now stored in a vault, and the stored resource holds a vault.get reference instead of the value. Because the model now declares secret output, swamp refuses to run any of the model's methods, reads included, until a vault exists (swamp vault create local_encryption cloudflare). The README's "Secrets" section lists what each method stores.

Fixed: Create methods whose response carries no id wrote every result to one instance named created, so each call overwrote the previous one. They now name the instance by the response's id when present, else by the path parameter that scopes the call, else by a hash of the request arguments (secret arguments left out). Affected: create_assets_upload_session and create_worker_script_post_subdomain.

Upgrade note: Resources stored by earlier versions of the methods in the README's "Secrets" section may hold plaintext secrets; delete them with swamp data delete and rotate the affected credentials. Results earlier versions wrote to the created instance stay there; new runs write under the new names.

03Behaviors1
@webframp/cloudflare/workers-scriptsv2026.10.21.1cloudflare/workers_scripts.ts

Global Arguments

ArgumentTypeDescription
apiToken?stringCloudflare API token. Wire it with ${{ vault.get("cloudflare", "API_TOKEN") }}; never pass the literal token. The CLOUDFLARE_API_TOKEN environment variable is read as a fallback, but it is not redacted and is not recommended.
accountIdstringCloudflare account ID
fn list_workers(tags?: string)
List Workers
ArgumentTypeDescription
tags?stringFilter scripts by tags. Format: comma-separated list of tag:allowed pairs where allowed is 'yes' or 'no'.
fn list_worker_script_search_workers(name?: string, id?: string, order_by?: enum, page?: number, per_page?: number)
Search Workers
ArgumentTypeDescription
name?string
id?string
order_by?enum
page?numberCurrent page.
per_page?numberItems per page.
fn delete_worker(script_name: string, force?: boolean)
Delete Worker
ArgumentTypeDescription
script_namestring
force?booleanIf set to true, delete will not be stopped by associated service binding, durable object, or other binding. Any of these associated bindings/durable objects will be deleted along with the script.
fn create_assets_upload_session(script_name: string, manifest: record)
Create Assets Upload Session
ArgumentTypeDescription
script_namestring
manifestrecordA manifest ([path]: {hash, size}) map of files to upload. As an example, `/bl...
fn list_deployments(script_name: string)
List Deployments
ArgumentTypeDescription
script_namestring
fn create_deployment(script_name: string, force?: boolean, annotations?: object, author_email?: string, created_on: string, source: string, strategy: enum, versions: array)
Create Deployment
ArgumentTypeDescription
script_namestring
force?booleanIf set to true, the deployment will be created even if normally blocked by something such rolling back to an older version when a secret has changed.
annotations?object
author_email?string
created_onstring
sourcestring
strategyenum
versionsarray
fn get_deployment(script_name: string, deployment_id: string)
Get Deployment
ArgumentTypeDescription
script_namestring
deployment_idstring
fn delete_deployment(script_name: string, deployment_id: string)
Delete Deployment
ArgumentTypeDescription
script_namestring
deployment_idstring
fn get_cron_triggers(script_name: string)
Get Cron Triggers
ArgumentTypeDescription
script_namestring
fn update_cron_triggers(script_name: string, items: array)
Update Cron Triggers
ArgumentTypeDescription
script_namestring
itemsarray
fn get_settings(script_name: string)
Get Script Settings
ArgumentTypeDescription
script_namestring
fn patch_settings(script_name: string, logpush?: unknown, observability?: unknown, tags?: unknown, tail_consumers?: array)
Patch Script Settings
ArgumentTypeDescription
script_namestring
logpush?unknown
observability?unknown
tags?unknown
tail_consumers?arrayList of Workers that will consume logs from the attached Worker.
fn list_script_secrets(script_name: string)
List script secrets
ArgumentTypeDescription
script_namestring
fn put_script_secret(script_name: string, body: union)
Add script secret
ArgumentTypeDescription
script_namestring
bodyunionA secret value accessible through a binding.
fn patch_script_secrets_bulk(script_name: string, secrets?: record, version_tags?: record)
Patch multiple script secrets
ArgumentTypeDescription
script_namestring
secrets?recordMap of secret names to secret values: - Set to a secret object to create or u... Secret: pass a vault.get expression, never a literal value.
version_tags?recordOptional version tags to apply to the new script version.
fn get_script_secret(script_name: string, secret_name: string, url_encoded?: string)
Get secret binding
ArgumentTypeDescription
script_namestring
secret_namestring
url_encoded?string
fn delete_script_secret(script_name: string, secret_name: string, url_encoded?: string)
Delete script secret
ArgumentTypeDescription
script_namestring
secret_namestring
url_encoded?string
fn get_subdomain(script_name: string)
Get Worker subdomain
ArgumentTypeDescription
script_namestring
fn create_worker_script_post_subdomain(script_name: string, enabled: boolean, previews_enabled?: boolean)
Post Worker subdomain
ArgumentTypeDescription
script_namestring
enabledbooleanWhether the Worker should be available on the workers.dev subdomain.
previews_enabled?booleanWhether the Worker's Preview URLs should be available on the workers.dev subd...
fn delete_subdomain(script_name: string)
Delete Worker subdomain
ArgumentTypeDescription
script_namestring
fn list_tails(script_name: string)
List Tails
ArgumentTypeDescription
script_namestring
fn worker_tail_logs_start_tail(script_name: string)
Start Tail
ArgumentTypeDescription
script_namestring
fn delete_tail(script_name: string, id: string)
Delete Tail
ArgumentTypeDescription
script_namestring
idstring
fn get_worker_script_fetch_usage_model(script_name: string)
Fetch Usage Model
ArgumentTypeDescription
script_namestring
fn update_usage_model(script_name: string, usage_model?: unknown, user_limits?: unknown)
Update Usage Model
ArgumentTypeDescription
script_namestring
usage_model?unknown
user_limits?unknown
fn list_versions(script_name: string, deployable?: boolean, page?: number, per_page?: number)
List Versions
ArgumentTypeDescription
script_namestring
deployable?booleanOnly return versions that can be used in a deployment. Ignores pagination.
page?numberCurrent page.
per_page?numberItems per-page.
fn get_version_detail(script_name: string, version_id: string)
Get Version Detail
ArgumentTypeDescription
script_namestring
version_idstring

Resources

workers(infinite)— List Workers
worker_script_search_workers(infinite)— Search Workers
assets_upload_session(infinite)— Create Assets Upload Session
list_deployments(infinite)— List Deployments
deployment(infinite)— Create Deployment
cron_triggers(infinite)— Get Cron Triggers
settings(infinite)— Get Script Settings
patch_settings(infinite)— Patch Script Settings
script_secrets(infinite)— List script secrets
put_script_secret(infinite)— Add script secret
patch_script_secrets_bulk(infinite)— Patch multiple script secrets
script_secret(infinite)— Get secret binding
subdomain(infinite)— Get Worker subdomain
worker_script_post_subdomain(infinite)— Post Worker subdomain
list_tails(infinite)— List Tails
worker_tail_logs_start_tail(infinite)— Start Tail
worker_script_fetch_usage_model(infinite)— Fetch Usage Model
usage_model(infinite)— Update Usage Model
list_versions(infinite)— List Versions
version_detail(infinite)— Get Version Detail
04Previous Versions13
2026.10.14.1Apache-2.0(was none)

2026.10.14.1

Fixed: Methods that write a singleton resource failed on current swamp with Data name 'latest' is reserved for internal use.

Changed: Singleton get and action methods now write their data under worker_tail_logs_start_tail-current instead of latest. Anything that read data.latest("<model>", "latest") or queried name == "latest" must use the new name.

Upgrade note: Data previously stored under latest is not migrated; re-run the method to populate the new name. No attribute schemas changed.

Added: The manifest now declares license: Apache-2.0 (SPDX). The registry quality rubric scores a declared license separately from the bundled LICENSE.md.

2026.09.18.1

2026.09.18.1

Upgrade note: Normalized npm:zod dependency version to 4.6.5 across the repo. No behavioral changes in this extension.

2026.09.17.2

2026.09.17.2

No changes to this extension's methods. Regenerated to refresh the shared _lib/api.ts helper library after PR #427 review fixes to cfApiPaginatedCursor (used by r2, kv, durable-objects, and workers-ai, but emitted into every extension's api.ts since it's part of the shared template).

2026.09.15.1

2026.09.15.1

Changed: Bump zod 4.4.3 → 4.6.5

2026.08.28.2

Hardened codegen: instance names sanitized against path traversal; 429 rate-limit retry with Retry-After; string schema patterns emit regex validation; output schemas passthrough unknown fields; apiToken now optional and vault-wireable with CLOUDFLARE_API_TOKEN env fallback.

2026.08.28.2

2026.08.28.2

Hardened codegen: instance names sanitized against path traversal; 429 rate-limit retry with Retry-After; string schema patterns emit regex validation; output schemas passthrough unknown fields; apiToken now optional and vault-wireable with CLOUDFLARE_API_TOKEN env fallback.

2026.08.28.1

2026.08.28.1

Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.

Upgrade note: License text only. No API, schema, or runtime behavior changed.

2026.08.26.2

Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry quality scorer can resolve dependencies and score the extension. An earlier release used a bare "zod" import-map specifier, which published but scored as unscored.

Changed: Retained explicit compilerOptions.strict in deno.json. No behavioral or schema changes.

2026.08.26.2

2026.08.26.2

Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry quality scorer can resolve dependencies and score the extension. An earlier release used a bare "zod" import-map specifier, which published but scored as unscored.

Changed: Retained explicit compilerOptions.strict in deno.json. No behavioral or schema changes.

2026.08.24.1

2026.08.24.1

Added: Output metadata attributes for observability.

  • durationMs: Method execution duration in milliseconds.
  • collectedBy: Extension name that produced the data.
  • fetchedAt: ISO 8601 timestamp when data was fetched (added to resources that previously lacked it).
2026.08.21.1

2026.08.21.1

Changed: Errors and validation now say what went wrong and where.

  • Cloudflare API failures (HTTP errors and success: false API responses) now name the HTTP method and path that was attempted, in addition to the original status/message. Previously the error read only Cloudflare API error: <message>, with no indication of which endpoint the method call was hitting — now it reads Cloudflare API request failed: GET /accounts/<account>/workers/scripts/<name>: <message>. This applies to every method on this model, since they all share the same request helper.
  • script_name and deployment_id are now validated as non-empty before any request is made. Passing an empty string previously sent a request to a malformed URL and produced a confusing 404 from Cloudflare; each now fails fast with a <field> must not be empty message.

Upgrade note: No method was added, removed, or renamed. Existing callers that always pass non-empty identifiers see no behavioral change beyond clearer error text.

2026.08.13.2

2026.08.13.2

Removed: update_worker_script_upload_worker_module and worker_versions_upload_version methods. These endpoints require multipart/form-data uploads that cfApi's JSON helper cannot serve. Use @webframp/cloudflare/worker's deploy method for script uploads.

Fixed: Codegen now resolves requestBody $ref before content-type filtering.

Modified 1 behaviors

2026.08.13.1

2026.08.13.1

Fixed: update_cron_triggers and put_script_secret now accept proper request body arguments instead of always sending an empty payload. update_cron_triggers accepts an items array of cron schedule objects; put_script_secret accepts a body argument with the secret definition.

Removed: put_content and put_script_content methods removed — these endpoints require multipart/form-data uploads that the JSON-only API helper cannot support. Use wrangler for script content deployment.

Changed: Extension regenerated with codegen fixes for bare-array and oneOf/discriminated-union request body handling.

Modified 1 behaviors

2026.07.27.1

2026.07.27.1

Fixed: Regenerated from scripts/cloudflare-codegen after two generator bugs were repaired (webframp/swamp-extensions#284).

  1. Methods referencing an undeclared path parameter did not compile. The generator derived a method's arguments schema and execute signature from the OpenAPI parameters list, but built the request URL from the path template. Where the Cloudflare spec omits a declaration for a {placeholder} — which it does in several places — the result was a method with arguments: z.object({}) and an unused _args parameter whose body still interpolated args.<name>. Those methods failed type checking and were uncallable even if they had compiled, because the argument was never declared. Path-template placeholders are now unioned into the declared parameters, so the schema, the signature, and the body agree.

  2. Generated tests could request a URL the mock server did not serve. Test arguments merged the request-body fixture over the path-parameter values, so a body property sharing a name with a path parameter (commonly id) substituted its own example value into the URL. The request then missed the mock and failed with Cloudflare API error: Not found. Path parameters now take precedence, matching what the generated model already does by excluding path-parameter names from the request body.

Upgrade note: No API surface change and no method was added or removed. If this extension type-checked and tested cleanly before, its behavior is unchanged and only the version moved. Extensions that previously failed deno check or deno task test now pass.

2026.07.19.1

2026.07.19.1

Added: Initial code-generated release of @webframp/cloudflare/workers-scripts with 31 methods covering the Cloudflare workers scripts API surface.

05Stats
A
100 / 100
Downloads
102
Archive size
20.8 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License2/2earned
  • Verified public repository2/2earned
06Platforms
07Labels