-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Source Stripe: enable high strictness level #21419
Source Stripe: enable high strictness level #21419
Conversation
/test connector=connectors/source-stripe
Build PassedTest summary info:
|
05bde50
to
d8fc49e
Compare
d8fc49e
to
91c20bb
Compare
/test connector=connectors/source-stripe
Build FailedTest summary info:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGMT, but schema change should be complete.
airbyte-integrations/connectors/source-stripe/source_stripe/schemas/invoices.json
Outdated
Show resolved
Hide resolved
Airbyte Code Coverage
|
/test connector=connectors/source-stripe
Build FailedTest summary info:
|
/test connector=connectors/source-stripe
Build FailedTest summary info:
|
/test connector=connectors/source-stripe
Build PassedTest summary info:
|
08ebdc3
to
702412c
Compare
/test connector=connectors/source-stripe
Build PassedTest summary info:
|
allowedHosts: | ||
hosts: | ||
- "api.stripe.com" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 allowedhosts
- name: "charges" | ||
bypass_reason: "This stream produces unique data every time it runs. Fields: receipt_url" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the most important stream in the connector, and I feel uncomfortable certifying this connector to GA bypassing a test on this stream. It's probably time to adjust SAT so that basic-read
can ignore a singe column that is changing, like it is here. This is a great example of a reasonable source changing data on every read (a protected PDF download link for a receipt is only valid for a short amount of time)
@roman-yermilov-gl - do you feel comfortable working on #21737 to unblock this?
cc @YowanR as I'm rejecting this, and cc @alafanechere who may have some advice on how to work on #21737
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you feel comfortable working on #21737 to unblock this? - yes I do
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I replied in #21737 . I would also be interested in trying out a different approach: what would happen if you removed this receipt_url
field from the stream schema at the configured catalog level and remove it from the expected records? It'll probably be considered as an additional property that'll be ignored if you set extra_fields: true
in the expected records config.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like a kind of workaround for current case, but we need a solution for many other connectors that fail because of expected_records
.
702412c
to
4128779
Compare
/test connector=connectors/source-stripe
Build PassedTest summary info:
|
…el' of github.com:airbytehq/airbyte into ryermilov/source-stripe-enable-high-test-strictness-level
- config_path: "secrets/config.json" | ||
backward_compatibility_tests_config: | ||
disable_for_version: "2.0.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this version incompatible, but not a breaking (major semver) change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I see from previous commits there was an invoices schema fix. Some field types were changed: number
-> integer
, integer
-> string
. That is why we disabling this compatibility test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess those changes are scope-increasing, so that should be OK
@@ -1,50 +1,67 @@ | |||
connector_image: airbyte/source-stripe:dev | |||
tests: | |||
test_strictness_level: high |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥳
ignored_fields: | ||
invoices: | ||
- name: invoice_pdf | ||
bypass_reason: "URL changes upon each request for privacy/security" | ||
- name: hosted_invoice_url | ||
bypass_reason: "URL changes upon each request for privacy/security" | ||
charges: | ||
- name: receipt_url | ||
bypass_reason: "URL changes upon each request for privacy/security" | ||
payment_intents: | ||
- name: receipt_url | ||
bypass_reason: "URL changes upon each request for privacy/security" | ||
- name: charges/data/*/receipt_url | ||
bypass_reason: "URL changes upon each request for privacy/security" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
{"stream": "customer_balance_transactions", "data": {"id": "cbtxn_1MX2zPEcXtiJtvvhr4L2D3Q1", "object": "customer_balance_transaction", "amount": -50000, "created": 1675345091, "credit_note": null, "currency": "usd", "customer": "cus_NGoTFiJFVbSsvZ", "description": null, "ending_balance": 0, "invoice": "in_1MX2yFEcXtiJtvvhMXhUCgKx", "livemode": false, "metadata": {}, "type": "applied_to_invoice"}, "emitted_at": 1677521324571} | ||
{"stream": "customer_balance_transactions", "data": {"id": "cbtxn_1MWIPLEcXtiJtvvhLnQYjVCj", "object": "customer_balance_transaction", "amount": 50000, "created": 1675166031, "credit_note": null, "currency": "usd", "customer": "cus_NGoTFiJFVbSsvZ", "description": "Test credit balance", "ending_balance": 50000, "invoice": null, "livemode": false, "metadata": {}, "type": "adjustment"}, "emitted_at": 1677521324572} | ||
{"stream": "customers", "data": {"id": "cus_LIiHR6omh14Xdg", "object": "customer", "address": {"city": "san francisco", "country": "US", "line1": "san francisco", "line2": "", "postal_code": "", "state": "CA"}, "balance": 0, "created": 1646998902, "currency": "usd", "default_currency": "usd", "default_source": "card_1MSHU1EcXtiJtvvhytSN6V54", "delinquent": false, "description": "test", "discount": null, "email": "test@airbyte_integration_test.com", "invoice_prefix": "09A6A98F", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null, "rendering_options": null}, "livemode": false, "metadata": {}, "name": "Test", "next_invoice_sequence": 3, "phone": null, "preferred_locales": [], "shipping": {"address": {"city": "", "country": "US", "line1": "", "line2": "", "postal_code": "", "state": ""}, "name": "", "phone": ""}, "tax_exempt": "none", "test_clock": null}, "emitted_at": 1677521325916} | ||
{"stream": "customers", "data": {"id": "cus_Kou8knsO3qQOwU", "object": "customer", "address": null, "balance": 0, "created": 1640123795, "currency": "usd", "default_currency": "usd", "default_source": "src_1MSID8EcXtiJtvvhxIT9lXRy", "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "invoice_prefix": "CA35DF83", "invoice_settings": {"custom_fields": null, "default_payment_method": null, "footer": null, "rendering_options": null}, "livemode": false, "metadata": {}, "name": "edgao-test-customer-1", "next_invoice_sequence": 1, "phone": null, "preferred_locales": [], "shipping": null, "tax_exempt": "none", "test_clock": null}, "emitted_at": 1677521325917} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 airbyte employee
{"stream": "invoices", "data": {"id": "in_1MX2yFEcXtiJtvvhMXhUCgKx", "object": "invoice", "account_country": "US", "account_name": "Airbyte, Inc.", "account_tax_ids": null, "amount_due": 72680, "amount_paid": 72680, "amount_remaining": 0, "amount_shipping": 0, "application": null, "application_fee_amount": null, "attempt_count": 1, "attempted": true, "auto_advance": false, "automatic_tax": {"enabled": true, "status": "complete"}, "billing_reason": "manual", "charge": "ch_3MX2zPEcXtiJtvvh1BUGw8EC", "collection_method": "send_invoice", "created": 1675345019, "currency": "usd", "custom_fields": null, "customer": "cus_NGoTFiJFVbSsvZ", "customer_address": {"city": "", "country": "US", "line1": "Street 2, 34567", "line2": "", "postal_code": "94114", "state": "CA"}, "customer_email": "[email protected]", "customer_name": "Test Customer 2", "customer_phone": null, "customer_shipping": {"address": {"city": "", "country": "US", "line1": "Street 2, 34567", "line2": "", "postal_code": "94114", "state": "CA"}, "name": "Test Customer 2", "phone": ""}, "customer_tax_exempt": "none", "customer_tax_ids": [], "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": "Thanks for your business!", "discount": null, "discounts": [], "due_date": 1677937018, "ending_balance": 0, "footer": "Test Invoice", "from_invoice": null, "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1JwnoiEcXtiJtvvh/test_YWNjdF8xSndub2lFY1h0aUp0dnZoLF9OSGNDT3BXU2sxR0NJUDNaTTZnbXFINW10NHNiaWhDLDY4MDYyMDMx0200A6qC4sqI?s=ap", "invoice_pdf": "https://pay.stripe.com/invoice/acct_1JwnoiEcXtiJtvvh/test_YWNjdF8xSndub2lFY1h0aUp0dnZoLF9OSGNDT3BXU2sxR0NJUDNaTTZnbXFINW10NHNiaWhDLDY4MDYyMDMx0200A6qC4sqI/pdf?s=ap", "last_finalization_error": null, "latest_revision": null, "lines": {"object": "list", "data": [{"id": "il_1MX2yfEcXtiJtvvhiunY2j1x", "object": "line_item", "amount": 25200, "amount_excluding_tax": 25200, "currency": "usd", "description": "edgao-test-product", "discount_amounts": [{"amount": 2520, "discount": "di_1MX2ysEcXtiJtvvh8ORqRVKm"}], "discountable": true, "discounts": ["di_1MX2ysEcXtiJtvvh8ORqRVKm"], "invoice_item": "ii_1MX2yfEcXtiJtvvhfhyOG7SP", "livemode": false, "metadata": {}, "period": {"end": 1675345045, "start": 1675345045}, "plan": null, "price": {"id": "price_1K9GbqEcXtiJtvvhJ3lZe4i5", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1640124902, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_KouQ5ez86yREmB", "recurring": null, "tax_behavior": "inclusive", "tiers_mode": null, "transform_quantity": null, "type": "one_time", "unit_amount": 12600, "unit_amount_decimal": "12600"}, "proration": false, "proration_details": {"credited_items": null}, "quantity": 2, "subscription": null, "tax_amounts": [{"amount": 0, "inclusive": true, "tax_rate": "txr_1MX2yfEcXtiJtvvhVcMEMTRj"}], "tax_rates": [], "type": "invoiceitem", "unit_amount_excluding_tax": "12600"}], "has_more": false, "total_count": 1, "url": "/v1/invoices/in_1MX2yFEcXtiJtvvhMXhUCgKx/lines"}, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "C09C1837-0001", "on_behalf_of": null, "paid": true, "paid_out_of_band": false, "payment_intent": "pi_3MX2zPEcXtiJtvvh12VBcp6m", "payment_settings": {"default_mandate": null, "payment_method_options": null, "payment_method_types": null}, "period_end": 1675345018, "period_start": 1675345018, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "quote": null, "receipt_number": null, "rendering_options": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 50000, "statement_descriptor": null, "status": "paid", "status_transitions": {"finalized_at": 1675345090, "marked_uncollectible_at": null, "paid_at": 1675345122, "voided_at": null}, "subscription": null, "subtotal": 22680, "subtotal_excluding_tax": 22680, "tax": 0, "test_clock": null, "total": 22680, "total_discount_amounts": [{"amount": 2520, "discount": "di_1MX2ysEcXtiJtvvh8ORqRVKm"}], "total_excluding_tax": 22680, "total_tax_amounts": [{"amount": 0, "inclusive": true, "tax_rate": "txr_1MX2yfEcXtiJtvvhVcMEMTRj"}], "transfer_data": null, "webhooks_delivered_at": 1675345019}, "emitted_at": 1677521337360} | ||
{"stream": "invoices", "data": {"id": "in_1MSID7EcXtiJtvvh8OUKak6h", "object": "invoice", "account_country": "US", "account_name": "Airbyte, Inc.", "account_tax_ids": null, "amount_due": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "application_fee_amount": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": {"enabled": false, "status": null}, "billing_reason": "manual", "charge": null, "collection_method": "send_invoice", "created": 1674211961, "currency": "usd", "custom_fields": null, "customer": "cus_Kou8knsO3qQOwU", "customer_address": null, "customer_email": "[email protected]", "customer_name": "edgao-test-customer-1", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "none", "customer_tax_ids": [], "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discount": null, "discounts": [], "due_date": 1676803961, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "lines": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_1MSID7EcXtiJtvvh8OUKak6h/lines"}, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "paid": false, "paid_out_of_band": false, "payment_intent": null, "payment_settings": {"default_mandate": null, "payment_method_options": null, "payment_method_types": null}, "period_end": 1674211961, "period_start": 1674211961, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "quote": null, "receipt_number": null, "rendering_options": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "draft", "status_transitions": {"finalized_at": null, "marked_uncollectible_at": null, "paid_at": null, "voided_at": null}, "subscription": null, "subtotal": 0, "subtotal_excluding_tax": 0, "tax": null, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_tax_amounts": [], "transfer_data": null, "webhooks_delivered_at": 1674211961}, "emitted_at": 1677521337361} | ||
{"stream": "invoices", "data": {"id": "in_1MSIC3EcXtiJtvvhTUqweBiR", "object": "invoice", "account_country": "US", "account_name": "Airbyte, Inc.", "account_tax_ids": null, "amount_due": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "application_fee_amount": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": {"enabled": false, "status": null}, "billing_reason": "manual", "charge": null, "collection_method": "send_invoice", "created": 1674211895, "currency": "usd", "custom_fields": null, "customer": "cus_LIiHR6omh14Xdg", "customer_address": {"city": "san francisco", "country": "US", "line1": "san francisco", "line2": "", "postal_code": "", "state": "CA"}, "customer_email": "test@airbyte_integration_test.com", "customer_name": "Test", "customer_phone": null, "customer_shipping": {"address": {"city": "", "country": "US", "line1": "", "line2": "", "postal_code": "", "state": ""}, "name": "", "phone": ""}, "customer_tax_exempt": "none", "customer_tax_ids": [], "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discount": null, "discounts": [], "due_date": 1676803894, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "lines": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_1MSIC3EcXtiJtvvhTUqweBiR/lines"}, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "paid": false, "paid_out_of_band": false, "payment_intent": null, "payment_settings": {"default_mandate": null, "payment_method_options": null, "payment_method_types": null}, "period_end": 1676887929, "period_start": 1674209529, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "quote": null, "receipt_number": null, "rendering_options": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "draft", "status_transitions": {"finalized_at": null, "marked_uncollectible_at": null, "paid_at": null, "voided_at": null}, "subscription": null, "subtotal": 0, "subtotal_excluding_tax": 0, "tax": null, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_tax_amounts": [], "transfer_data": null, "webhooks_delivered_at": 1674211895}, "emitted_at": 1677521337362} | ||
{"stream": "invoices", "data": {"id": "in_1MSHsIEcXtiJtvvhYaiyckhp", "object": "invoice", "account_country": "US", "account_name": "Airbyte, Inc.", "account_tax_ids": null, "amount_due": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "application_fee_amount": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": {"enabled": true, "status": "complete"}, "billing_reason": "manual", "charge": null, "collection_method": "send_invoice", "created": 1674210670, "currency": "usd", "custom_fields": null, "customer": "cus_LIiHR6omh14Xdg", "customer_address": {"city": "san francisco", "country": "US", "line1": "san francisco", "line2": "", "postal_code": "", "state": "CA"}, "customer_email": "test@airbyte_integration_test.com", "customer_name": "Test", "customer_phone": null, "customer_shipping": {"address": {"city": "", "country": "US", "line1": "", "line2": "", "postal_code": "", "state": ""}, "name": "", "phone": ""}, "customer_tax_exempt": "none", "customer_tax_ids": [], "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discount": null, "discounts": [], "due_date": 1676802670, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "lines": {"object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_1MSHsIEcXtiJtvvhYaiyckhp/lines"}, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "paid": false, "paid_out_of_band": false, "payment_intent": null, "payment_settings": {"default_mandate": null, "payment_method_options": null, "payment_method_types": null}, "period_end": 1676887929, "period_start": 1674209529, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "quote": null, "receipt_number": null, "rendering_options": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "draft", "status_transitions": {"finalized_at": null, "marked_uncollectible_at": null, "paid_at": null, "voided_at": null}, "subscription": null, "subtotal": 0, "subtotal_excluding_tax": 0, "tax": null, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_tax_amounts": [], "transfer_data": null, "webhooks_delivered_at": 1674210670}, "emitted_at": 1677521337363} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 fake user
/publish connector=connectors/source-stripe
if you have connectors that successfully published but failed definition generation, follow step 4 here |
/test connector=connectors/source-stripe
Build PassedTest summary info:
|
* Source Stripe: enable high strictness level * Source Stripe: better bypass_reason description * Source Stripe: add receipt_number to ignored fields * Source Stripe: rollback version and changelog
What
Enable high strictness level