Skip to content

New Components - eventdock#21128

Open
kidsil wants to merge 3 commits into
PipedreamHQ:masterfrom
kidsil:add-eventdock-component
Open

New Components - eventdock#21128
kidsil wants to merge 3 commits into
PipedreamHQ:masterfrom
kidsil:add-eventdock-component

Conversation

@kidsil

@kidsil kidsil commented Jun 10, 2026

Copy link
Copy Markdown

New Components - eventdock

Adds the EventDock app with a source and an action for reliable webhook delivery.

  • Source – Reliable Webhook: registers the workflow's webhook URL as an EventDock endpoint, so inbound webhooks flow through EventDock (automatic retries, dead-letter queue, replay) before triggering the workflow. Emits one deduped event per delivery.
  • Action – Reliable HTTP Forward: forwards a payload to a destination URL through EventDock so the delivery is retried / DLQ'd.

Uses EventDock API key auth (masked). No telemetry. Lifecycle creates/reuses and cleans up endpoints. EventDock free tier: 5,000 events/mo at https://eventdock.app.

Summary by CodeRabbit

  • New Features

    • EventDock integration added: Reliable Webhook Event (Instant) source and Reliable HTTP Forward action for buffered, retried, deduplicated deliveries with dead‑letter handling.
    • New EventDock app for API-backed endpoint management and authentication.
  • Documentation

    • Added documentation for the EventDock integration, source, and action with setup, usage, and troubleshooting guidance.

Reliable webhook source + reliable HTTP forward action.
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jun 15, 2026 7:01am

Request Review

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 60289912-ed6f-47ef-bb1f-0ea865b598f1

📥 Commits

Reviewing files that changed from the base of the PR and between 713b298 and fd3beb6.

📒 Files selected for processing (2)
  • components/eventdock/README.md
  • components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs
💤 Files with no reviewable changes (1)
  • components/eventdock/README.md

📝 Walkthrough

Walkthrough

This PR adds EventDock integration for reliable webhook delivery: an EventDock app client, SSRF-safe destination validation, shared webhook lifecycle utilities, a reliable HTTP forward action, a reliable webhook source, and documentation.

Changes

EventDock Webhook Reliability Integration

Layer / File(s) Summary
EventDock App Module and API Integration
components/eventdock/eventdock.app.mjs, components/eventdock/package.json
EventDock Pipedream app defines authentication props (API key, provider, optional provider secret), base URL override via EVENTDOCK_BASE_URL, request helpers with bearer auth and JSON headers, and API methods for endpoint CRUD, listing, usage, and auth test.
SSRF IP Classification and Destination Validation
components/eventdock/common/ssrf.mjs
Client-side SSRF protection: IPv4/IPv6 parsing and expansion, classification of private/reserved ranges (private, loopback, link-local, multicast, documentation, NAT64), hostname normalization, and isPrivateIpLiteral predicate to reject IP literals that are non-public.
Shared Webhook Infrastructure and Endpoint Lifecycle
components/eventdock/common/common-webhook.mjs
Shared webhook base exporting props (eventdock, http, db), activate()/deactivate() hooks for idempotent endpoint reuse/creation and soft-deletes, DB persistence helpers, endpoint discovery/cleanup by upstream URL and provider, EventDock header metadata parsing, and dedupe id/summary generation.
Reliable HTTP Forward Action Implementation
components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs, components/eventdock/actions/reliable-http-forward/README.md
Action validates destinationUrl with SSRF checks, reuses or creates a generic EventDock endpoint for the destination, POSTs the JSON payload to the endpoint ingest_url, and returns { endpoint_id, ...ingestResponse }; README documents setup and troubleshooting.
Reliable Webhook Event Source Implementation
components/eventdock/sources/reliable-webhook/reliable-webhook.mjs, components/eventdock/sources/reliable-webhook/README.md
Webhook source extracts body/headers and EventDock metadata, awaits $emit to forward events downstream with unique dedupe, responds HTTP 500 on emit failure (to allow EventDock retries) and HTTP 200 on success; README documents payload fields and troubleshooting.
Component Documentation
components/eventdock/README.md
Main README explains EventDock reliability concepts, component roles, API key authentication, optional base URL override, source lifecycle, and deduplication using EventDock event IDs.

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

HIGH PRIORITY

Suggested reviewers

  • GTFalcao
  • michelle0927
  • mariano-pd
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description covers the main components added and their purpose, but the required checklist sections (Versioning, New app integration, CodeRabbit review) are not addressed or marked as complete. Complete all checklist items in the description template: confirm versioning updates, app integration status, and CodeRabbit review acknowledgment.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'New Components - eventdock' directly and clearly describes the main change: adding EventDock components (source and action). It is concise and specific enough to understand the primary contribution.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs`:
- Around line 22-32: Update the prop description strings for destinationUrl and
payload in reliable-http-forward.mjs to include concrete inline examples for AI
agents: for destinationUrl (property name destinationUrl) append a sample URL
such as "e.g. https://api.example.com/webhook", and for payload (property name
payload) append a small JSON example like 'e.g. { "event": "user.created", "id":
123 }'; keep the descriptions otherwise unchanged and ensure the examples are
part of the description string values so they are available to parsers and
agents.
- Around line 107-127: The app methods eventdock.listEndpoints and
eventdock.createEndpoint are called without the run $ context in
findEndpointForDestination and ensureEndpoint; update these calls to pass the $
from the action run (i.e., call this.eventdock.listEndpoints({ $ }) and
this.eventdock.createEndpoint({ $, ... })) so request logging and error
propagation work correctly, and ensure the run({ $ }) parameter is threaded into
any callers of findEndpointForDestination/ensureEndpoint if not already.

In `@components/eventdock/README.md`:
- Around line 40-49: The "Local development & tests" section references
non-monorepo paths (ed-pipedream/, tests/register-stubs.mjs,
tests/components.test.mjs) which confuses Pipedream monorepo contributors;
update the README's "Local development & tests" paragraph (the header and the
code block) to either remove the section if those tests do not exist here, or
change it to a clear note stating this workflow is for the standalone EventDock
upstream repo only (e.g., prefix with "Upstream EventDock development:" and
explain these paths are not valid inside the Pipedream monorepo), or
alternatively replace the example commands/paths with the correct Pipedream
monorepo equivalents if such tests exist—edit the Local development & tests
section accordingly to reflect the chosen option.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 932f7be0-a339-4ee0-b709-52ca4d897830

📥 Commits

Reviewing files that changed from the base of the PR and between 58c10f5 and 713b298.

📒 Files selected for processing (9)
  • components/eventdock/README.md
  • components/eventdock/actions/reliable-http-forward/README.md
  • components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs
  • components/eventdock/common/common-webhook.mjs
  • components/eventdock/common/ssrf.mjs
  • components/eventdock/eventdock.app.mjs
  • components/eventdock/package.json
  • components/eventdock/sources/reliable-webhook/README.md
  • components/eventdock/sources/reliable-webhook/reliable-webhook.mjs

Comment thread components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs Outdated
Comment thread components/eventdock/actions/reliable-http-forward/reliable-http-forward.mjs Outdated
Comment thread components/eventdock/README.md Outdated
@kidsil

kidsil commented Jun 10, 2026

Copy link
Copy Markdown
Author

Thanks for the review! Addressed the three CodeRabbit notes:

  • Added concrete inline examples to the destinationUrl and payload prop descriptions.
  • Threaded the $ step context through the action's listEndpoints/createEndpoint calls so requests are logged in the step context.
  • Removed the "Local development & tests" section from the README — it referenced our pre-submission repo layout, not the monorepo structure.

@ashwins01

Copy link
Copy Markdown
Contributor

Hi @kidsil, thank you for your contribution! The Eventdock app integration is currently not available in pipedream. Would you mind submitting an app-request for Eventdock to integrations@pipedream.com ?
Once we have the app integration in place, we will be able to review and test this PR. Thank you!

@kidsil

kidsil commented Jul 3, 2026

Copy link
Copy Markdown
Author

Hi @ashwins01 — thanks for the pointer! We've submitted the EventDock app request to integrations@pipedream.com as asked (from asaf@eventdock.app), including auth details (API-key Bearer), a credential-validation endpoint, docs, and logo links. Happy to provide test credentials or anything else the integrations team needs. Looking forward to the review once the app integration is in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants