Problem
A CI pipeline builds a component and uploads it, which makes it a payload deploy. The root-config fields that make an application host-routed, isolated or branched can only be set by a package deploy:
host and urlPath fail validation without package (components/operationsValidation.js:609-610).
isolated answers 400 (components/operations.js:535-541).
branchedDatabases is accepted and then ignored (filed separately as a bug).
set_configuration can't write arbitrary application keys either; it allows only <name>_package and <name>_port. So there's no supported way to deploy a built bundle as an isolated, host-bound, branched application, which is what a PR preview is.
Proposal
Accept these fields on payload deploys, and publish them in the component's root-config entry as an effect of the activation transaction (#2315 step 3), the same way package deploys do. A payload redeploy that omits a field keeps the existing value, as isolated already does.
Done when
harper deploy project=shop-pr-12 host=fix-cart.shop.example.com isolated=true branchedDatabases=true from a directory produces an isolated, host-bound, branched application.
- A rejected or rolled-back build leaves these fields unchanged, with the same guarantees step 3 gives
package.
Part of #3042.
Update, 2026-10-07
Problem
A CI pipeline builds a component and uploads it, which makes it a payload deploy. The root-config fields that make an application host-routed, isolated or branched can only be set by a
packagedeploy:hostandurlPathfail validation withoutpackage(components/operationsValidation.js:609-610).isolatedanswers 400 (components/operations.js:535-541).branchedDatabasesis accepted and then ignored (filed separately as a bug).set_configurationcan't write arbitrary application keys either; it allows only<name>_packageand<name>_port. So there's no supported way to deploy a built bundle as an isolated, host-bound, branched application, which is what a PR preview is.Proposal
Accept these fields on payload deploys, and publish them in the component's root-config entry as an effect of the activation transaction (#2315 step 3), the same way package deploys do. A payload redeploy that omits a field keeps the existing value, as
isolatedalready does.Done when
harper deploy project=shop-pr-12 host=fix-cart.shop.example.com isolated=true branchedDatabases=truefrom a directory produces an isolated, host-bound, branched application.package.Part of #3042.
Update, 2026-10-07
package, which can setisolatedandhost; a payload upload can't.packagedeploy'sbranchedDatabasesis ignored at load, so the application runs on its base databases #3071: apackageentry'sbranchedDatabasesis also ignored, at load. So branches through any deploy path need both fixes.