環境範圍的具型別資產儲存
流程需要集中管理、依環境(dev/staging/prod)而異且帶有型別的設定值 —— 這是 orchestrator
的「Assets / lockers」支柱。密鑰保險庫只處理密鑰,config-sync 搬移整塊設定;兩者皆無具
型別、依環境的具名查詢。AssetStore 補足此處:值依環境儲存、讀回時做型別轉換,而
credential 資產持有一個*參照*(密鑰名稱),由 resolve() 透過注入的解析器轉成
真實值 —— 因此密鑰永不出現在純 get 或 executor 紀錄中。
JSON 後端(或記憶體內);純標準函式庫;不匯入 PySide6。
無頭 API
from je_auto_control import AssetStore, active_environment
store = AssetStore("assets.json")
store.set("max_retries", 3, asset_type="int", environment="prod")
store.set("api_base", "https://prod.example.com", environment="prod")
store.set("db_password", "vault_db_pw", asset_type="credential") # value = 參照
store.get("max_retries", environment="prod").value # -> 3(具型別)
store.get("api_base", environment="staging").value # -> 退回 default
store.get("db_password").value # -> "vault_db_pw"(參照,安全)
# 透過注入的密鑰解析器解析 credential(僅限 Python):
store = AssetStore("assets.json", secret_resolver=secret_manager.get)
store.resolve("db_password") # -> 真實密鑰
型別為 text / int / bool / credential;``get`` 會轉成宣告型別,並在未停用
時退回 default 環境。active_environment() 讀取 JE_AUTOCONTROL_ENV。list /
delete 補齊整個儲存體。
執行器指令
指令 |
效果 |
|---|---|
|
儲存具型別、依環境的資產。 |
|
讀取資產(credential 維持參照)。 |
|
列出 ``{name, type, environment}``(不含值)。 |
credential 的**解析**刻意僅限 Python API(因此密鑰永不進入執行紀錄)。相同的生命週期操
作亦提供為 MCP 工具(ac_set_asset / ac_get_asset / ac_list_assets),以及
Script Builder 中 Data 分類下的指令。