Skip to content

Commit c32fbef

Browse files
committed
docs(cli): state the measured compose default instead of a paraphrased quote (#8343)
The card quoted the EE compose file as documenting `OS_CLOUD_URL=off` for 完全自托管. That phrase appears nowhere in the cloud repo — it is the reporter's paraphrase, so it had no business sitting in a code comment as a quotation. What the file actually says is stronger and checkable: `OS_CLOUD_URL: ${OS_CLOUD_URL:-off}`, i.e. `off` is the SHIPPED DEFAULT, so every self-hosted stack that does not override it hit this bug. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016pY4Xb2iDecfDtT3CWoiTW
1 parent a8a8592 commit c32fbef

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

.changeset/tidy-donkeys-shave.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
`objectstack serve` now mounts the local-install surface on a runtime with the cloud switched off (#8343).
66

7-
`OS_CLOUD_URL=off` — the value the self-hosted EE compose file documents for a fully self-hosted box — used to skip the entire marketplace wiring block, including `MarketplaceInstallLocalPlugin`. That plugin serves `os package install ./dist/objectstack.json`, the documented air-gapped path, whose inline-manifest branch reads no cloud URL at all. The result, measured on a customer deployment: `GET` and `POST /api/v1/marketplace/install-local` both 404 with no other package-install surface available, so the deployment could not install a package by any route.
7+
`OS_CLOUD_URL=off` — the value the self-hosted EE image's compose file ships as its default (`${OS_CLOUD_URL:-off}`) — used to skip the entire marketplace wiring block, including `MarketplaceInstallLocalPlugin`. That plugin serves `os package install ./dist/objectstack.json`, the documented air-gapped path, whose inline-manifest branch reads no cloud URL at all. The result, measured on a customer deployment: `GET` and `POST /api/v1/marketplace/install-local` both 404 with no other package-install surface available, so the deployment could not install a package by any route.
88

99
The registration condition is now split by what each surface actually needs. The control-plane clients (marketplace browse proxy, cloud-connection, pushed runtime-config) still require a resolved cloud URL; the local install surface mounts regardless, pinned to no control plane so its catalog branch answers `503 MARKETPLACE_UNAVAILABLE` locally rather than dialling out. A host config that wires its own install-local keeps it, and the runtime host-kernel skip is unchanged.
1010

packages/cli/src/commands/serve.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1772,10 +1772,12 @@ export default class Serve extends Command {
17721772
// hands the compiled artifact over inline, and `handleInstall`'s inline
17731773
// branch never reads `this.cloudUrl` at all — so gating it on a control
17741774
// plane withheld it from the one deployment that cannot have one. A
1775-
// self-hosted EE box (whose compose file documents `OS_CLOUD_URL=off`
1776-
// for 完全自托管) could not install a package by ANY route: measured on
1777-
// objectos-ee 4.0.5-rc.1, both GET and POST /marketplace/install-local
1775+
// self-hosted EE box could not install a package by ANY route: measured
1776+
// on objectos-ee 4.0.5-rc.1, both GET and POST /marketplace/install-local
17781777
// 404, while its own /runtime/config advertised `installLocal: true`.
1778+
// Note `off` is not an unusual choice there but the SHIPPED DEFAULT --
1779+
// that image's compose file reads `OS_CLOUD_URL: ${OS_CLOUD_URL:-off}`,
1780+
// so every self-hosted stack that does not override it landed here.
17791781
// The package README states the intended contract in as many words —
17801782
// "`OS_CLOUD_URL=off` disables every remote call; air-gapped installs
17811783
// keep working via inline manifests handed to `install-local`" — so the

0 commit comments

Comments
 (0)