Documentation

DOC / 15 / DELIVERY

Portable deployment

Validate one sealed PBOC, admit native or Cloudflare hosts, and prove rolling and rollback compatibility before upload.

In this guidePortable deployment
Getting startedProject structureCLI referenceDeveloper loopIncremental buildsRouting and pagesRust viewsEvents and foldsSchemas and snapshotsHyphae verified syncTyped contentBrowser runtimeDOM ownershipNative runtime previewPortable deploymentFull-stack betaOpenSDK previewComponents and languagesBrowser framework conformanceTooling protocolCompatibility and deprecationAdaptive assetsArtifact trustRelease trustPerformance evidenceErrors and diagnosticsVoluntary telemetryBuild and deployCrates and APILicensing and policy

Install one portable contract

PBOC v1alpha1 is the public boundary between an application build and a deployment host. Version 0.4.0-beta.1 publishes pliego-pboc, pliego-cloudflare, and the native admission path as one preview graph; keep every pliego-* crate pinned to that exact version.

toml
[dependencies]
pliego-pboc = "=0.4.0-beta.1"
pliego-runtime = "=0.4.0-beta.1"
# Only for a Cloudflare Worker target
pliego-cloudflare = "=0.4.0-beta.1"

Verify before upload

Validation checks canonical structure, every artifact path, byte length, SHA-256, the exact file set, route and function references, cache policy, feature closure, provenance, and the boundary that keeps secret values out of output.

shell
pliego pboc validate target/app/pliego.pboc.json --root target/app
pliego pboc admit target/app/pliego.pboc.json --root target/app --host native
pliego pboc admit target/app/pliego.pboc.json --root target/app --host cloudflare

Run the same build on two hosts

Native Linux / OCI
Static musl executable, verified route and runtime identities, nonroot reference image, read-only filesystem, and explicit operator ingress
Cloudflare Workers
Rust workers-rs adapter, exact function registry, secret handles mapped after admission, native Worker streaming, and an Assets binding
Shared semantics
One router, PBOC SHA, release identity, HTTP status/body/header corpus, cache policy, and bounded diagnostics

Provider account IDs, credentials, domains, traffic policy, TLS, billing, observability destinations, and persistent infrastructure remain operator configuration outside the portable bundle.

Prove rolling and rollback direction

shell
pliego pboc compatibility active/pliego.pboc.json candidate/pliego.pboc.json --direction rolling
pliego pboc compatibility candidate/pliego.pboc.json active/pliego.pboc.json --direction rollback

Rolling coexistence requires the same application, compatibility epoch, and state schema, a higher sequence, and an exact previous-release link. Rollback additionally requires a lower sequence and an active release that declared rollbackSafe.

Reproduce provider conformance

shell
npm ci
npm ci --prefix examples/provider-tck
npm run check:provider-tck

The Linux gate builds two releases, records four host admissions, checks negative capability and state cases, scans all bundle bytes for a secret sentinel, replays version skew and rollback, and compares seven HTTP cases across native, OCI, and Cloudflare.

Know what is not portable yet

The maintained preview hosts are native Linux/OCI and Cloudflare Workers. Portable databases, queues, schedules, object storage, durable objects, provider billing, automatic state migration, and asynchronous-boundary parity are not part of PBOC v1alpha1.