diff --git a/api/core/app/apps/common/workflow_response_converter.py b/api/core/app/apps/common/workflow_response_converter.py index 72103ae9eb..67dc9909a1 100644 --- a/api/core/app/apps/common/workflow_response_converter.py +++ b/api/core/app/apps/common/workflow_response_converter.py @@ -462,33 +462,31 @@ class WorkflowResponseConverter: agent_strategy=event.agent_strategy, ), ) - response.data.extras.update(event.extras) - provider_id = str(response.data.extras.get("provider_id") or event.provider_id) try: if event.node_type == NodeType.TOOL: response.data.extras["icon"] = ToolManager.get_tool_icon( tenant_id=self._application_generate_entity.app_config.tenant_id, provider_type=ToolProviderType(event.provider_type), - provider_id=provider_id, + provider_id=event.provider_id, ) elif event.node_type == NodeType.DATASOURCE: manager = PluginDatasourceManager() provider_entity = manager.fetch_datasource_provider( self._application_generate_entity.app_config.tenant_id, - provider_id, + event.provider_id, ) response.data.extras["icon"] = provider_entity.declaration.identity.generate_datasource_icon_url( self._application_generate_entity.app_config.tenant_id ) - elif event.node_type == NodeType.TRIGGER_PLUGIN and provider_id: + elif event.node_type == NodeType.TRIGGER_PLUGIN: response.data.extras["icon"] = TriggerManager.get_trigger_plugin_icon( self._application_generate_entity.app_config.tenant_id, - provider_id, + event.provider_id, ) except Exception: # metadata fetch may fail, for example, the plugin daemon is down or plugin is uninstalled. - logger.warning("failed to fetch icon for %s", provider_id) + logger.warning("failed to fetch icon for %s", event.provider_id) return response @@ -597,7 +595,6 @@ class WorkflowResponseConverter: iteration_id=event.in_iteration_id, loop_id=event.in_loop_id, retry_index=event.retry_index, - extras=dict(event.extras), ), ) diff --git a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py index 27cecca092..d4eaf2e498 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py +++ b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py @@ -739,7 +739,7 @@ class TestWorkflowResponseConverterServiceApiTruncation: assert not response.data.outputs_truncated assert response.data.extras == {} - def test_trigger_plugin_start_event_uses_extras_provider_id_for_icon(self): + def test_trigger_plugin_start_event_uses_provider_id_for_icon(self): converter = self.create_test_converter(InvokeFrom.WEB_APP) event = QueueNodeStartedEvent( node_execution_id=str(uuid.uuid4()), @@ -750,8 +750,7 @@ class TestWorkflowResponseConverterServiceApiTruncation: in_iteration_id=None, in_loop_id=None, provider_type="", - provider_id="", - extras={"provider_id": "provider-1"}, + provider_id="provider-1", ) with patch( @@ -761,7 +760,6 @@ class TestWorkflowResponseConverterServiceApiTruncation: response = converter.workflow_node_start_to_stream_response(event=event, task_id="task-1") assert response is not None - assert response.data.extras["provider_id"] == "provider-1" assert response.data.extras["icon"] == "https://example.com/icon.png" get_trigger_plugin_icon.assert_called_once_with("test_tenant", "provider-1")