Feat: Add HttpNode to Graph Module #730
Open
+956
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe what this PR does / why we need it
This PR introduces a new HttpNode into the graph execution engine, enabling fully-configurable HTTP requests with support for dynamic variables, response parsing (including file extraction), and automatic retry on transient errors. Comprehensive unit tests using MockWebServer ensure correct behavior in both JSON/text and file-attachment scenarios.
Does this pull request fix one issue?
NONE
Describe how you did it
Initialization Parameters
Configure HTTP method (GET, POST, PUT, DELETE, etc.)
Set target URL, headers, and query parameters
Define request body (raw text, JSON, form-urlencoded, multipart form-data, binary)
Support Basic and Bearer authentication
Dynamic Template Variables
Inject variables into URL, headers, query params, and body via ${variableName} syntax
Values are resolved at runtime from the OverAllState context
Response Handling & File Extraction
Parse HTTP status code, headers, and response body
Detect file-attachment responses via Content-Disposition or binary content types
Automatically cache file bytes in in-memory storage and expose a File DTO for downstream nodes
Error Retry Policy
Built-in retry mechanism on transient failures (network timeouts, 5xx responses)
Default: 3 retries with a 5 000 ms max backoff interval
Configurable per-node via RetryConfig
Describe how to verify it
Special notes for reviews