canonical_id: "set" display_name: "設定變數" category: "logic" version: "v1" wasi_target: "preview1" stability: "floating" runtime_compat: - "cf-workers" - "workerd" - "wazero" constraints: max_size_kb: 2048 max_cold_start_ms: 50 no_network_syscall: true no_filesystem_syscall: true io_model: "stdin_stdout_json" input_schema: type: object properties: assignments: type: array description: 賦值清單,每筆含 key 與 value(與 values 擇一必填) items: type: object required: [key, value] properties: key: type: string value: {} values: type: object description: 鍵值對物件,與 assignments 擇一必填 context: type: object description: 上游傳入的上下文,設定結果會合併覆寫 output_schema: type: object properties: success: type: boolean data: type: object description: context 加上所有設定後的變數 gherkin_tests: - scenario: "用 assignments 設定變數" given: '{"assignments":[{"key":"name","value":"Alice"}]}' then_contains: '"name":"Alice"' - scenario: "用 values 設定變數" given: '{"values":{"name":"Bob","age":30}}' then_contains: '"name":"Bob"' - scenario: "未提供 assignments 或 values 時失敗" given: '{"context":{"x":1}}' then_contains: '{"success":false' tags: [builtin, set, assign, variable, context] description: "設定或覆寫變數,支援 assignments 陣列或 values 物件兩種格式,結果合併自 context。" config_example: | my_set: # 節點名稱(可自訂) assignments: # 賦值清單(與 values 擇一必填) - key: status value: active - key: count value: 0 context: # 上游上下文,設定結果會合併覆寫(選填) payload: "{{upstream.data}}"