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.
[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.
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 cloudflareRun 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
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 rollbackRolling 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
npm ci
npm ci --prefix examples/provider-tck
npm run check:provider-tckThe 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.