mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-15 04:52:31 +08:00
fix: sanitize history items stored as tuple/list format
History items store prompt data as (output, inputs, extra_data, ...) tuple/list format, not as a dict. The sanitizer now handles both formats to properly strip SENSITIVE_EXTRA_DATA_KEYS. Fixes coderabbit Critical review on #13095
This commit is contained in:
parent
87b7f4fcd6
commit
2985bc933b
19
execution.py
19
execution.py
@ -1257,14 +1257,23 @@ class PromptQueue:
|
||||
"""Remove sensitive keys from prompt inputs in history items.
|
||||
Prevents tokens from being exposed if history is ever persisted to disk."""
|
||||
item = copy.deepcopy(item)
|
||||
prompt = item.get("prompt", {})
|
||||
if isinstance(prompt, dict):
|
||||
for node_id, node_data in prompt.items():
|
||||
prompt_item = item.get("prompt")
|
||||
if isinstance(prompt_item, dict):
|
||||
for node_id, node_data in prompt_item.items():
|
||||
if isinstance(node_data, dict):
|
||||
inputs = node_data.get("inputs", {})
|
||||
if isinstance(inputs, dict):
|
||||
inputs.pop("auth_token_comfy_org", None)
|
||||
inputs.pop("api_key_comfy_org", None)
|
||||
for key in SENSITIVE_EXTRA_DATA_KEYS:
|
||||
inputs.pop(key, None)
|
||||
elif isinstance(prompt_item, (list, tuple)) and len(prompt_item) > 2:
|
||||
prompt_graph = prompt_item[2] if isinstance(prompt_item[2], dict) else None
|
||||
if isinstance(prompt_graph, dict):
|
||||
for node_data in prompt_graph.values():
|
||||
if isinstance(node_data, dict):
|
||||
inputs = node_data.get("inputs")
|
||||
if isinstance(inputs, dict):
|
||||
for key in SENSITIVE_EXTRA_DATA_KEYS:
|
||||
inputs.pop(key, None)
|
||||
return item
|
||||
|
||||
def get_history(self, prompt_id=None, max_items=None, offset=-1, map_function=None):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user