Skip to content

Commit e8199e4

Browse files
xuyushun441-sysos-zhuangclaude
authored
feat(server): declare marketplace + Console SPA deps for the self-host runtime (ADR-0020 T1) (#27)
Make @objectos/server a complete open-source self-host runtime distribution by pinning the Console SPA and marketplace client as explicit dependencies: - @objectstack/console ^10.2.0 — the /_console/ SPA - @objectstack/cloud-connection ^10.2.0 — marketplace browse/install, cloud-connection, runtime-config The objectstack CLI already auto-provisions both on top of the standalone stack for every entry point (Docker, dev, and the ObjectOS One desktop — all route through `objectstack serve`): it injects the marketplace + cloud-connection + runtime-config plugins from @objectstack/cloud-connection (gated on resolveCloudUrl(); OS_CLOUD_URL=off -> fully offline) and serves the @objectstack/console SPA at /_console/. So objectstack.config.ts stays a bare standalone stack; a doc note records why explicit wiring is omitted (it would double-mount) and the ADR-0006 Phase 4 caveat. Verified: online -> SPA renders in-browser (no console errors) + marketplace API returns the live catalog + runtime-config served; offline (OS_CLOUD_URL=off) -> marketplace plugins unmounted, SPA still served, zero outbound cloud calls. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent f6595c9 commit e8199e4

3 files changed

Lines changed: 21 additions & 3 deletions

File tree

apps/objectos/objectstack.config.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,19 @@
2323
* OS_BUSINESS_DB_URL — Per-project business database (legacy: OS_DATABASE_URL;
2424
* default: file-backed sqlite under the ObjectStack home)
2525
*
26-
* Artifact hot-reload follows `NODE_ENV` (on outside production). Enterprise
27-
* plugins live in ../../packages/* and can be appended to the returned
28-
* plugin manifest below.
26+
* Artifact hot-reload follows `NODE_ENV` (on outside production).
27+
*
28+
* NOTE — marketplace + Console SPA are intentionally NOT wired here. The
29+
* `objectstack` CLI (dev / serve / start, which every entry point — Docker and
30+
* the ObjectOS One desktop via one.mjs — routes through) auto-provisions them
31+
* on top of this standalone stack: it injects marketplace browse/install +
32+
* cloud-connection + runtime-config from `@objectstack/cloud-connection`
33+
* (gated on `resolveCloudUrl()`; `OS_CLOUD_URL=off` → fully offline, nothing
34+
* mounts) and serves the `@objectstack/console` SPA at `/_console/`. Both
35+
* packages are declared as dependencies so this distribution pins their
36+
* versions. Re-adding them to `plugins` below would double-mount; only wire
37+
* them explicitly here if a future framework drops the CLI auto-injection
38+
* (ADR-0006 Phase 4).
2939
*/
3040

3141
import { createStandaloneStack } from '@objectstack/runtime';

apps/objectos/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
},
1515
"dependencies": {
1616
"@objectstack/cli": "^10.2.0",
17+
"@objectstack/cloud-connection": "^10.2.0",
18+
"@objectstack/console": "^10.2.0",
1719
"@objectstack/core": "^10.2.0",
1820
"@objectstack/driver-memory": "^10.2.0",
1921
"@objectstack/driver-sql": "^10.2.0",

pnpm-lock.yaml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)