Add a Stripe PaymentIntents source
Implemented a bounded Stripe source that reads complete PaymentIntent JSON records through SeaTunnel's existing HTTP infrastructure without adding the Stripe SDK.
apache/seatunnel · #11940
New payments connector
SeaTunnel can now ingest bounded Stripe PaymentIntent histories with cursor pagination, rate-limit retry, and credential-safe errors.
Problem
SeaTunnel lacked a Stripe ingestion path that could page safely through PaymentIntents, handle API rate limits, reject cursor loops, and prevent secret or restricted keys from leaking through error messages.
Approach
Added API-key authentication, version and base-URL overrides, created-time filters, `starting_after` pagination, repeated-cursor protection, bounded exponential retry for HTTP 429, and explicit key redaction. The connector emits each complete object through a stable string column.
Impact and scope
- Enables payment-event ingestion for analytics, reconciliation, and downstream data pipelines.
- Handles Stripe pagination and throttling deterministically without introducing another runtime SDK dependency.
- Protects credentials across API failure paths while supporting both secret and restricted keys.
Validation
- Added 12 focused tests for validation, authentication, filters, multi-page reads, cursor safety, retry, exhaustion, and non-retryable failures.
- Added stripe-mock E2E coverage and passed the HTTP connector reactor on Java 8 and Java 11 plus the final Apache Build.
- The authored commits and GitHub-verified merge credit Goutam Adwant; two upstream approvals landed the feature.