@hrodz13/cloudflare-release-platform
v0.4.0
Published
Config-driven release controller and operator console for Cloudflare Workers
Maintainers
Readme
@hrodz13/cloudflare-release-platform
Installable Cloudflare release framework with a native ESM CLI, controller, console, durable Workflows, and immutable release artifacts. See consumer installation and npm release setup.
A config-driven release controller and operator console for Cloudflare Workers applications. It builds one immutable application artifact and activates that exact artifact independently in staging and production through durable Cloudflare Workflows.
The platform owns release records, artifact storage, environment locks, Terraform execution, forward-only migrations, deployment verification, audit history, and the admin console. A consuming project owns its application source and supplies configuration.
Configuration model
Two versioned inputs define an installation:
release-project.jsondescribes application paths, build output, D1 binding, build command, and panel definition.config/environments/*.jsondescribes Cloudflare resources, GitHub identity, operators, and environment URLs.
No application or environment identity belongs in platform source. See installation, public APIs, and release setup for the consumer contract and publication policy.
Local development
npm install
npm run devThis starts the complete local platform at http://127.0.0.1:8787: the controller, three D1 databases, R2, Durable Object, Workflow runtime, and staging/production hello-world Workers. In another terminal, publish an immutable fixture release:
npm run local:publish -- 1.0.0-dev.1Staging activates automatically. Activate production from the panel, open its infrastructure review under Operations, and approve the local no-op plan. Each environment link displays the active artifact ID read from that environment's local D1 database. The Workflow explorer is at http://127.0.0.1:8787/cdn-cgi/local/explorer. State persists under .release/local; use npm run local:reset when you need a clean installation. This path uses no Cloudflare credentials.
For isolated console styling with static sample data and disabled mutations, run npm run dev:preview and open http://127.0.0.1:8788.
To populate a clean local installation with archived, ready, validating, active, running, review-pending, and failed releases plus alerts and locks, run npm run dev:seed in another terminal. Seeding deliberately refuses to overwrite existing local releases; use npm run local:reset before starting the platform when you want to rebuild the scenario catalog.
Validate the included example and run the platform checks:
npm run config:validate -- --profile config/environments/example.json
npm test
npm run typecheck
npm run lint
npm run buildBrowser tests are optional and require a separately installed Playwright browser:
npm run test:panelRepository map
| Path | Owner |
| --- | --- |
| pipeline/console/ | React operator console |
| pipeline/release/ | Controller API, state, audit, and control migrations |
| pipeline/workflow/ | Release validation and environment activation Workflows |
| pipeline/infra/ | Pinned Terraform planning and application |
| pipeline/build/ | Immutable artifact creation and CI runner |
| pipeline/deploy/ | Application migration and Worker delivery |
| setup/ | Pure configuration compiler and Cloudflare bootstrap |
| config/ | Versioned schemas, templates, and example definitions |
| examples/application/ | Minimal integration fixture |
| tests/ | Unit and integration coverage |
Remote bootstrap and deployment require an explicitly selected profile and credentials. Read setup guidance before operating a Cloudflare account.
Publication status
The package is MIT-licensed. Intentional GitHub Releases trigger validation and public npm publication through a configured OIDC trusted publisher. The GitHub repository remains private; public npm users can inspect every packaged file. See npm release setup.
