Marketplace
無需編寫程式碼,即可將現成應用安裝到執行中的 ObjectOS。
ObjectOS marketplace 讓你能夠將預構建的應用安裝到執行中的執行時——無需構建步驟、無需重啟、無需檢出原始碼。這是在第一天就將真正的軟體交付到使用者面前的最快方式。
工作原理
marketplace 客戶端是開源的 @objectstack/cloud-connection 包。雲託管環境和自託管的 ObjectOS 映象開箱即已接好;如果是你自己組裝的技術棧,用幾行配置即可啟用:
import {
MarketplaceProxyPlugin,
MarketplaceInstallLocalPlugin,
RuntimeConfigPlugin,
resolveCloudUrl,
} from '@objectstack/cloud-connection';
const catalogUrl = resolveCloudUrl(); // OS_CLOUD_URL; 'off' disables
plugins: [
...(catalogUrl ? [
new MarketplaceProxyPlugin({ controlPlaneUrl: catalogUrl }),
new MarketplaceInstallLocalPlugin({ controlPlaneUrl: catalogUrl }),
] : []),
new RuntimeConfigPlugin({ controlPlaneUrl: '', singleEnvironment: true, installLocal: true }),
]瀏覽 / 安裝的機制是開放的;目錄服務(組織目錄、稽核、付費分發)由 OS_CLOUD_URL 所指向的控制平面提供。應用一經安裝就存在於你執行時自己的核心中 —— 執行時的任何部分都不依賴目錄保持可達。
當你開啟 Console(/_console/)時,marketplace 標籤頁會查詢已配置的應用目錄,並展示可安裝的應用。
You ─→ Console ─→ Marketplace tab ─→ pick app ─→ Install
↓
Artifact merged into kernel
↓
Console re-renders with new
objects / views / permissions
↓
Done — no restart目錄
| 目錄 | 來源 | 適用場景 |
|---|---|---|
| Default | 與執行時映象預先打包 | 首次評估、演示、離線 |
| ObjectStack public catalog | 公共應用登錄檔 | 最新的社群應用與第一方應用 |
| Private catalog | 你自己釋出的製品 | 不想公開的內部應用 |
| Local | 掛載到執行時中的檔案 | 隔離網路環境、自定義構建 |
目錄來源通過 marketplace 外掛或環境變數配置;參見執行時配置。
預設目錄中包含的內容
這些應用可以在 Console 中一鍵安裝:
| 應用 | 提供的能力 |
|---|---|
| Todo | 通用任務與專案跟蹤器 |
| Contracts | 帶 AI 條款提取的合同生命週期管理(CLM) |
| Procurement | 供應商、採購訂單、三方匹配 |
| Compliance | SOC 2 / ISO 27001 控制項 + 證據收集 |
| Helpdesk | AI 優先的客戶支援工單系統 |
| Content | 編輯日曆 + 渠道 ROI |
| HR | 通訊錄、組織架構圖、休假 |
| Project | 專案 / 任務 / 里程碑跟蹤 |
原始碼位於 github.com/objectstack-ai/templates——可以克隆其中任意一個作為自定義應用的起點。
安裝流程
- 開啟 Console——http://localhost:3000/_console/
- 登入——如果尚不存在賬戶,請在
/_account/register註冊一個 - 進入 marketplace 標籤頁
- 選擇一個應用,點選 Install
- 重新載入 Console——新應用的物件、檢視和流程將會出現
在幕後,marketplace 會獲取應用編譯後的製品,將其合併到執行中的核心,並通過 ObjectQL 註冊其物件。種子資料(如果應用定義了)會在首次安裝時插入。
解除安裝
在 Console → Marketplace → 已安裝的應用 → Uninstall。該應用的物件會從核心中移除,其資料表會被標記為待清理(預設情況下資料會被保留;你可以選擇是否刪除資料表)。
釋出你自己的應用
任何通過 os init 構建的內容都可以成為一個 marketplace 應用。
os init my-app -t app --install
cd my-app
# ... write objects, views, etc. ...
os compile # → dist/objectstack.json
os package publish # publish to a catalog要釋出到公共目錄,你需要一個登錄檔賬戶(os login)。要釋出到私有目錄,請將 OS_PACKAGE_REGISTRY 指向你自己的登錄檔。
版本管理
每個已釋出的應用都是不可變的。更新會產生一個新版本。執行時會按應用跟蹤已安裝的版本以及可用的更新。當某個應用在使用者所跟蹤的目錄中釋出了新版本時,使用者會在 Console 中看到一個 "Update available" 徽標。
通過 CLI 安裝
Console 是主要的安裝入口,但同一個 install-local 端點也可以指令碼化,用於 CI 和隔離網路環境下的運維:
# 目录模式 —— 运行时从其配置的目录解析包
os package install com.acme.crm --runtime http://localhost:3000 \
--email admin@example.com --password …
# 隔离网络模式 —— 内联发送编译好的制品,不经过目录往返
os package install ./dist/objectstack.json --runtime http://localhost:3000 \
--email admin@example.com --password …憑證是目標執行時上的賬戶(不是你的雲端登入)—— 與 Console 安裝使用同一套授權。
許可權
安裝應用需要 manage_marketplace 系統許可權——預設情況下只有 Setup Administrator 許可權集的成員擁有該許可權。普通使用者看到的 marketplace 是隻讀的。
隔離網路環境下的 marketplace
對於沒有公網出口的部署環境,可在你的網路內執行一個本地目錄伺服器,並將 ObjectOS 指向它。拓撲結構請參見隔離網路。
marketplace 不是什麼
- 不是程式碼分發渠道。 已釋出的應用是編譯後的製品——它們以宣告式方式描述資料 + UI + 流程,不會分發任意 JavaScript。
- 不是沙箱。 已安裝的應用對你資料庫的訪問許可權與核心中的其他任何內容相同——在安裝來自不可信來源的應用之前,請先審查製品。
- (暫時)不是支付平臺。 公共目錄中的應用都是免費的 Apache-2.0 應用。商業 / 付費分發已列入路線圖。