feat(source-amazon-seller-partner): Add three missing vendor report streams#80845
feat(source-amazon-seller-partner): Add three missing vendor report streams#80845devin-ai-integration[bot] wants to merge 4 commits into
Conversation
…treams Add GET_VENDOR_TRAFFIC_REPORT, GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT, and GET_VENDOR_REAL_TIME_INVENTORY_REPORT streams to manifest.yaml. These streams were dropped during the low-code migration (v5.0.0) and not restored when other vendor streams were re-added in v5.2.0. Each stream follows the existing vendor report pattern with: - AsyncRetriever with GzipJsonDecoder download decoder - DpathExtractor with stream-specific field_path - DatetimeBasedCursor incremental sync (P1D step) - AddFields transformation to inject cursor value - Inline schemas matching the old Python implementations - Vendor-only ConditionalStreams gating Also adds the streams to report_options_list in the connector spec and includes integration tests for full refresh, incremental, and error handling. Co-Authored-By: bot_apk <apk@cognition.ai>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksPR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful Resources
|
Co-Authored-By: bot_apk <apk@cognition.ai>
Co-Authored-By: bot_apk <apk@cognition.ai>
|
Deploy preview for airbyte-docs ready!
Deployed with vercel-action |
|
Co-Authored-By: bot_apk <apk@cognition.ai>
|
↪️ Triggering Reason: Draft PR with hyd-fix label and clean CI (35 passed, 0 failed). Ready for fix validation. |
|
🔍 Prove-Fix Evidence ReportPR: airbytehq/airbyte#80845 — Add three missing vendor report streams Pre-flight Checks ✅
Pre-release
Evidence Summary1. Static Code Analysis ✅All 3 new stream definitions follow the exact structural pattern of the existing
All components are built-in CDK declarative — no custom Python needed. 2. Unit & Integration Tests ✅
3. CI ✅
4. Regression Tests
|
|
|
↪️ Triggering Reason: Prove-fix evidence report shows all static code analysis checks passing, pre-release image built. Ready for AI review gate. |
Reviewing PR for connector safety and quality.
|
🛡️ AI PR Review Report🟡 Review Action: NO ACTION (INCONCLUSIVE)
🔶 Risk Level: 2/5Additive three new vendor report streams in source-amazon-seller-partner following existing patterns; no existing stream behavior changed. 📋 PR DetailsConnector(s): 🔍 Gate Evaluation DetailsGate-by-Gate Analysis
PR Hygiene Details:
Test Coverage Details:
Spec Comparison (Backwards Compatibility):
Live / E2E Tests Details:
📚 Evidence ConsultedEvidence
❓ How to RespondLive / E2E Tests — UNKNOWNThe pre-release checks are currently in progress. Once the pre-release version is published and tested on live connections, re-run Recommended next step: Wait for the Providing Context or JustificationYou can add explanations that the bot will see on the next review: Option 1: PR Description (recommended) ## AI PR Review Justification
### Live / E2E Tests
[Your explanation here]Option 2: PR Comment After adding your response, re-run Note: Justifications provide context for the bot to evaluate. For some gates (like the Live / E2E Tests gate), a sufficient justification can lead to PASS. For other gates, justifications help explain the situation but may still require escalation if the gate cannot be remediated. |
|
↪️ Triggering Reason: Previous review was INCONCLUSIVE (Live/E2E UNKNOWN). Static code analysis and pre-release build confirmed structurally sound. CI green (37/0/0). Re-reviewing. |
Reviewing PR for connector safety and quality.
|
🛡️ AI PR Review Report🟢 Review Action: APPROVEDAll 12 gates passed. 🟦 Risk Level: 2/5Additive three new vendor report streams in source-amazon-seller-partner following existing 📋 PR DetailsConnector(s): 🔍 Gate Evaluation DetailsGate-by-Gate Analysis
PR Hygiene Details
Test Coverage Details
Backwards Compatibility — Spec Comparison
Forwards Compatibility Details
Live / E2E Tests Details
📚 Evidence ConsultedEvidence
|
|
↪️ Triggering Reason: AI review APPROVED at current HEAD. All prior gates passed (triage→fix→prove→review). Moving to final readiness stage. |
Auto-merge evaluation: FAILPreconditions (all must pass)
Change scope (at least one must pass)
|
What
Resolves https://github.com/airbytehq/oncall/issues/12993:
Three vendor analytics report streams were dropped during the low-code migration (v5.0.0, #49293) and not restored when other vendor streams were re-added in v5.2.0 (#71055):
GET_VENDOR_TRAFFIC_REPORTGET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORTGET_VENDOR_REAL_TIME_INVENTORY_REPORTHow
Added three new declarative stream definitions to
manifest.yamlfollowing the existingGET_VENDOR_SALES_REPORTpattern:Key differences per stream:
GET_VENDOR_TRAFFIC_REPORT:field_path=["trafficByAsin"],cursor_field=endDateGET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT:field_path=["netPureProductMarginByAsin"],cursor_field=endDateGET_VENDOR_REAL_TIME_INVENTORY_REPORT:field_path=["reportData"],cursor_field=endTime(differs from others)Also:
ConditionalStreamsblockGET_VENDOR_TRAFFIC_REPORTandGET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORTtoreport_options_listin spec (GET_VENDOR_REAL_TIME_INVENTORY_REPORTwas already present)Declarative-First Evaluation
All three streams are implemented using built-in CDK declarative components only (
DatetimeBasedCursor,DpathExtractor,AddFields,AsyncRetriever). No custom Python components were needed. The existingGzipJsonDecodercustom component (already incomponents.py) is reused.Test Coverage
VENDOR_ONLY_STREAM_NAMESintest_source.pyto include the three new streams — validates they appear for Vendor accounts and are excluded for Seller accountsTestVendorJsonReportsFullRefreshwith parametrized tests for all three streams: full-refresh read (2 records) and 403 forbidden error handlingTestVendorJsonReportsIncrementalwith parametrized tests for incremental read with cursor stateReview guide
manifest.yaml— stream definitions (lines ~3117-3253), conditional stream refs (lines ~3545-3547), report_options_list (lines ~215, 218), inline schemas (lines ~9486-9587)unit_tests/test_source.py— updatedVENDOR_ONLY_STREAM_NAMESunit_tests/integration/test_report_based_streams.py— new test classesunit_tests/resource/http/response/GET_VENDOR_*.json— test fixturesmetadata.yaml— version bump to 5.8.0docs/integrations/sources/amazon-seller-partner.md— changelog entryUser Impact
Vendor account users can now sync three additional report streams that were previously available pre-v5.0.0. No impact on existing streams or Seller account users.
Can this PR be safely reverted and rolled back?
Devin session