Skip to content

Feat: Add HttpNode to Graph Module #730

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Yeaury
Copy link
Contributor

@Yeaury Yeaury commented Apr 26, 2025

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant