Skip to main content
自訂應用程式從建置器草稿到團隊手上,需要兩個步驟:儲存 會建立一個不可變的版本,發布 則決定所有人開啟的是哪一個版本。本頁說明這個流程、如何開啟與管理執行中的 App、誰可以存取,以及自動化。
筆記本是在 marimo 編輯器中直接編輯,不使用儲存與發布流程。開啟、執行個體與存取權限的運作方式,兩種 App 都相同。

儲存版本

1

在 App 建置器中點選儲存

儲存 位於建置器標頭,在未儲存變更數量的旁邊。請先套用或捨棄所有開啟中編輯器的變更,並確認 App 已有 datagen.app.json(請參閱 建立 App 中的「App 的啟動方式」)。
2

填寫版本備註

在 儲存新版本 對話框中,可在 版本備註 描述這次改了什麼,再點選 儲存版本。
3

等待映像檔

儲存時會把該版本的相依套件安裝進它自己的映像檔。版本 中的版本列會顯示映像檔狀態:映像檔待建置、映像檔建置中、映像檔就緒 或 映像檔建置失敗。映像檔就緒後,該版本才能發布。
儲存永遠不會改變成員看到的內容。你繼續修改草稿時,上線中的 App 仍提供已發布的版本。
如果映像檔建置失敗,展開該列即可查看建置輸出,並點選 重新建置。若失敗原因是安裝或建置指令本身,請在建置器中修正檔案後重新儲存。

發布版本

開啟建置器左欄的 版本,或 App 詳情頁的 版本 分頁,在要上線的版本上點選 發布。 發布一個版本時:
  • 它的檔案 與 啟動設定(指令、連接埠、工作目錄、環境變數)會一起上線;
  • 執行中的 App 會重新建置。其他成員已開啟的副本會關閉,下次開啟時就會看到新版本;
  • 你的草稿不受影響。
已發布的版本會顯示 上線中 標籤,建置器標頭也會顯示 上線 v<n>。

回溯

每次儲存都會建立一個版本,但只有已發布的那個會執行。要回溯時,在較舊的版本上點選 發布 即可。這不會刪除任何東西,只是改變哪個版本上線。 刪除 會移除一個已儲存的版本及其檔案。版本編號永遠不會重複使用,所以指向已刪除版本的連結會顯示為不存在,而不會指向其他內容。

匯出與匯入

  • 詳情頁的 匯出 會把已發布的版本下載為 zip 檔。在建置器中,匯出 會下載你剛儲存的版本,或已發布的版本。匯出的一定是已儲存的版本,不會是草稿。
  • 詳情頁的 匯入 會用電腦中的資料夾取代建置器的草稿。在你儲存並發布之前,已發布的 App 不會改變。

開啟執行中的 App

在詳情頁點選 開啟應用程式,或從應用程式清單開啟 App。執行中的 App 會顯示在 /signalgen/apps/<appId>/view,位於工作區內,導覽列仍然可見。 App 啟動期間,進度面板會顯示每個步驟:檢查存取權限與已發布版本、準備環境、載入檔案、連接來源,以及等待伺服器回應。 檢視器工具列包含:
  • 應用程式詳情:回到詳情頁。
  • 重新整理:重新載入 App。可以喚醒進入休眠的 App,並套用新發布的版本。
  • 編輯(自訂應用程式,限建構者或管理員):開啟 App 建置器。
  • 檔案(自訂應用程式):瀏覽執行中程序實際擁有的檔案。
如果 App 的連線保險庫中有你尚未提供的個人憑證,檢視器會顯示 請先設定你的憑證,而不是 App 本身。點選 前往憑證庫設定,填入你的值後再回來重新整理。請參閱 連線保險庫。

App 詳情頁

/signalgen/apps/<appId> 會在不啟動 App 的情況下顯示它的資訊。分頁如下:

執行中的個體

每位開啟 App 的成員,都在自己的沙盒中執行自己的副本;大家共用的是 App 的檔案,而不是程序。執行中的個體 分頁會列出誰正在執行、何時開始,以及最後活動時間。
  • 標頭的 停止 會停止 你自己 的執行個體。檔案會保留,再次開啟 App 時會重新啟動。
  • 在其他成員那一列點選 終止,會立即停止對方的執行個體。對方可以再重新開啟。

誰可以存取 App

App 由工作區成員開啟。每位成員能做的事取決於他的工作區角色: 要與同事分享 App,請邀請對方加入工作區,再把 App 的連結傳給他。Agent 也可以在對話中用 open_app 工具把 App 開在對話旁。

單一 App 的存取覆寫

啟用單一資源存取控制後,管理員會在詳情頁看到 存取 分頁(個人工作區不會顯示)。覆寫只會在這個 App 上取代成員的工作區角色。
1

新增覆寫

點選 新增覆寫,選擇 成員 或 群組(身分提供者的群組),並選擇有效角色:隱藏、檢視者、操作員 或 建構者。隱藏 會讓該成員完全看不到這個 App。
2

設定其他所有人的預設值

所有其他成員 會設定所有沒有更具體覆寫的非管理員成員的角色。沿用工作區角色 則保留他們原本的角色。
個人覆寫優先於群組覆寫,群組覆寫又優先於預設值。管理員永遠不受影響。
提升後的角色只適用於 App 頁面,永遠不適用於憑證。綁定連線保險庫、工具套件或機密,仍然需要相應的工作區角色。

自動執行建置器

自動化 分頁可以依排程執行 App 建置器,例如「每週一 09:00 更新來源並更新儀表板」。每次執行都使用這個 App 自己的模型、沙盒與憑證,和你親自輸入的回合完全相同。
1

建立自動化

點選 新增自動化 並填寫:
  • 名稱:例如 每週更新。
  • 提示:每次觸發時,以全新對話原封不動送給建置器。
  • 排程:標準的 5 欄位 cron 運算式,例如 0 9 * * 1。
  • 時區:IANA 時區名稱,例如 Asia/Taipei。預設為 UTC。
  • 啟用:停用的自動化永遠不會觸發。
2

儲存並測試

點選 儲存自動化,再點選 立即執行 馬上試跑。自動化會以建立它的成員身分執行,因此使用的是該成員的憑證。
3

檢查並發布

最近的執行 會顯示每次執行的狀態。完成的執行只會變更草稿;請開啟建置器,把結果儲存為版本後再發布。
排程執行永遠不會發布。若執行時間到時有人正開著建置器,該次執行會被略過(已略過(建置器使用中)),而不會排隊;下一個排程時間會再試一次。沒有可用的沙盒容量時也會略過(已略過(沒有容量))。

下一步

教學:發布一個 App

用 Demo 資料建置、發布並分享一個 marimo 儀表板。

Agent 總覽

建立能開啟、呼叫與建立 App 的 Agent。