[PR #31781] refactor: Unify NodeConfigDict.data and BaseNodeData #33405

Open
opened 2026-02-21 20:53:13 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/31781

State: open
Merged: No


Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

  • Following #31723.
  • Unified NodeConfigDict.data and BaseNodeData
  • Enforce BaseNodeData.type as a required field by removing per-node type defaults in node data models.
  • Update workflow unit tests (and related fixtures) to always pass type when building node data/configs.
  • Update Webhook Trigger to use existing enum types and pydantic types

This PR is drafted by gpt-5.2 high thinking and I'm responsible for all the changes. I have reviewed the code and varified the behavior, while minor breaks may still exist. Reach me to fix in this case.

Screenshots

Before After
N/A N/A

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran make lint and make type-check (backend) and cd web && npx lint-staged (frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/31781 **State:** open **Merged:** No --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 1. Ensure there is an associated issue and you have been assigned to it > 1. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary - Following #31723. - Unified NodeConfigDict.data and BaseNodeData - Enforce `BaseNodeData.type` as a required field by removing per-node `type` defaults in node data models. - Update workflow unit tests (and related fixtures) to always pass `type` when building node data/configs. - Update Webhook Trigger to use existing enum types and pydantic types **This PR is drafted by `gpt-5.2 high thinking` and I'm responsible for all the changes. I have reviewed the code and varified the behavior, while minor breaks may still exist. Reach me to fix in this case.** ## Screenshots | Before | After | |--------|-------| | N/A | N/A | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [ ] I've updated the documentation accordingly. - [x] I ran `make lint` and `make type-check` (backend) and `cd web && npx lint-staged` (frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:53:13 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#33405