Skip to content

chore: add backwards compatibility tests for getCredential#6719

Merged
fracasula merged 3 commits intomasterfrom
feature/pipe-2750-make-sure-getcredential-is-at-parity-with-rudder-transformer
Feb 26, 2026
Merged

chore: add backwards compatibility tests for getCredential#6719
fracasula merged 3 commits intomasterfrom
feature/pipe-2750-make-sure-getcredential-is-at-parity-with-rudder-transformer

Conversation

@itsmihir
Copy link
Contributor

@itsmihir itsmihir commented Feb 25, 2026

Description

Summary

  • Add 11 credential-related subtests to TestBackwardsCompatibility covering the getCredential() contract between old (rudder-transformer + openfaas-flask-base) and new (rudder-pytransformer) architectures
  • Add makeEventWithCredentials helper to reduce boilerplate in credential tests

Test plan

  • go vet ./integration_test/pytransformer_contract/... passes
  • Run TestBackwardsCompatibility with Docker (requires openfaas-flask-base, rudder-transformer, and rudder-pytransformer images)
  • Verify all 11 credential subtests pass against both architectures:
    • CredentialValidKey — basic key lookup
    • CredentialMissingKey — nonexistent key returns None
    • CredentialNoArguments — getCredential() with no args raises TypeError
    • CredentialNonStringKeys — None, int, bool, dict, list keys all return None
    • CredentialEmptyList — empty credentials list
    • CredentialNoCredentials — no credentials field at all
    • CredentialBatchTransform — credentials accessible in transformBatch
    • CredentialFromFirstEventOnly — only first event's credentials are used
    • CredentialMultipleAccess — multiple keys, repeated access, and missing key in one transform
    • CredentialSecretFlag — isSecret flag doesn't gate access (regression guard)
    • CredentialWithSpecialCharacters — keys/values with special characters
    • CredentialDuplicateKeys — duplicate keys resolve to last value
    • CredentialEmptyValue — empty string value vs None distinction

Linear Ticket

PIPE-2750

Security

  • The code changed/added as part of this pull request won't create any security issues with how the software is being used.

@itsmihir itsmihir marked this pull request as ready for review February 25, 2026 08:25
@codecov
Copy link

codecov bot commented Feb 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.70%. Comparing base (bceafef) to head (ce2b269).
⚠️ Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6719      +/-   ##
==========================================
- Coverage   79.81%   79.70%   -0.11%     
==========================================
  Files         565      565              
  Lines       63334    63374      +40     
==========================================
- Hits        50551    50515      -36     
- Misses       9797     9860      +63     
- Partials     2986     2999      +13     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Collaborator

@fracasula fracasula left a comment

Choose a reason for hiding this comment

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

Approved with minor comments.

…to feature/pipe-2750-make-sure-getcredential-is-at-parity-with-rudder-transformer

🔒 Scanned for secrets using gitleaks 8.28.0
@fracasula fracasula enabled auto-merge (squash) February 26, 2026 11:03
@fracasula fracasula merged commit 32dbe77 into master Feb 26, 2026
140 of 144 checks passed
@fracasula fracasula deleted the feature/pipe-2750-make-sure-getcredential-is-at-parity-with-rudder-transformer branch February 26, 2026 12:00
This was referenced Mar 2, 2026
mihir20 pushed a commit that referenced this pull request Mar 2, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.69.0-rc.1](v1.68.0...v1.69.0-rc.1)
(2026-03-02)


### Bug Fixes

* application context for async jobs framework
([#6709](#6709))
([8dd73ad](8dd73ad))
* **batchrouter:** klaviyo bulk upload manager tries to update
zero-valued job ids in case of failures causing panics
([#6701](#6701))
([67befa5](67befa5))
* false sanity check failures
([#6713](#6713))
([ec12382](ec12382))
* snowpipe streaming delete channel logs
([#6695](#6695))
([8998ece](8998ece))
* snowpipe streaming poll re-create channel in case of invalid
([#6711](#6711))
([e379c1f](e379c1f))
* snowpipe streaming recreate channel error response
([#6717](#6717))
([bceafef](bceafef))


### Miscellaneous

* add backwards compatibility tests for getCredential
([#6719](#6719))
([32dbe77](32dbe77))
* add more test cases for pytransformer contract backwards compatibility
([#6698](#6698))
([9b59ab3](9b59ab3))
* additional logs for async framework
([#6708](#6708))
([c16c885](c16c885))
* **gateway:** acknowledge reload requests in a transaction
([#6706](#6706))
([ef467b1](ef467b1))
* **jobsdb:** optimize partition id read exclusion filter
([#6724](#6724))
([936b9aa](936b9aa))
* move oauth destination logic to backend-config package
([#6677](#6677))
([4d194a3](4d194a3))
* pytransformer contract testing
([#6672](#6672))
([395a4fb](395a4fb))
* replace goimports with gci
([#6722](#6722))
([5947894](5947894))
* snowpipe streaming duplicate events due to offset
([#6712](#6712))
([db6b404](db6b404))
* sync release v1.68.0 to main branch
([#6696](#6696))
([2785583](2785583))
* use release name as etcd namespace
([#6707](#6707))
([fbf0892](fbf0892))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: rudderstack-github-actions[bot] <236995729+rudderstack-github-actions[bot]@users.noreply.github.com>
This was referenced Mar 3, 2026
mihir20 pushed a commit that referenced this pull request Mar 3, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.69.0-rc.1](v1.68.0...v1.69.0-rc.1)
(2026-03-03)


### Bug Fixes

* application context for async jobs framework
([#6709](#6709))
([8dd73ad](8dd73ad))
* **batchrouter:** klaviyo bulk upload manager tries to update
zero-valued job ids in case of failures causing panics
([#6701](#6701))
([67befa5](67befa5))
* false sanity check failures
([#6713](#6713))
([ec12382](ec12382))
* snowpipe streaming delete channel logs
([#6695](#6695))
([8998ece](8998ece))
* snowpipe streaming poll re-create channel in case of invalid
([#6711](#6711))
([e379c1f](e379c1f))
* snowpipe streaming recreate channel error response
([#6717](#6717))
([bceafef](bceafef))


### Miscellaneous

* add backwards compatibility tests for getCredential
([#6719](#6719))
([32dbe77](32dbe77))
* add geolocation backwards compatibility test
([#6720](#6720))
([c03af7d](c03af7d))
* add more test cases for pytransformer contract backwards compatibility
([#6698](#6698))
([9b59ab3](9b59ab3))
* additional logs for async framework
([#6708](#6708))
([c16c885](c16c885))
* force release 1.69.0
([#6730](#6730))
([2390bfb](2390bfb))
* **gateway:** acknowledge reload requests in a transaction
([#6706](#6706))
([ef467b1](ef467b1))
* **jobsdb:** optimize partition id read exclusion filter
([#6724](#6724))
([936b9aa](936b9aa))
* move oauth destination logic to backend-config package
([#6677](#6677))
([4d194a3](4d194a3))
* pytransformer contract testing
([#6672](#6672))
([395a4fb](395a4fb))
* replace goimports with gci
([#6722](#6722))
([5947894](5947894))
* snowpipe streaming duplicate events due to offset
([#6712](#6712))
([db6b404](db6b404))
* sync release v1.68.0 to main branch
([#6696](#6696))
([2785583](2785583))
* use release name as etcd namespace
([#6707](#6707))
([fbf0892](fbf0892))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: rudderstack-github-actions[bot] <236995729+rudderstack-github-actions[bot]@users.noreply.github.com>
mihir20 pushed a commit that referenced this pull request Mar 3, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.69.0-rc.1](v1.68.0...v1.69.0-rc.1)
(2026-03-03)


### Bug Fixes

* application context for async jobs framework
([#6709](#6709))
([8dd73ad](8dd73ad))
* **batchrouter:** klaviyo bulk upload manager tries to update
zero-valued job ids in case of failures causing panics
([#6701](#6701))
([67befa5](67befa5))
* false sanity check failures
([#6713](#6713))
([ec12382](ec12382))
* snowpipe streaming delete channel logs
([#6695](#6695))
([8998ece](8998ece))
* snowpipe streaming poll re-create channel in case of invalid
([#6711](#6711))
([e379c1f](e379c1f))
* snowpipe streaming recreate channel error response
([#6717](#6717))
([bceafef](bceafef))


### Miscellaneous

* add backwards compatibility tests for getCredential
([#6719](#6719))
([32dbe77](32dbe77))
* add geolocation backwards compatibility test
([#6720](#6720))
([c03af7d](c03af7d))
* add more test cases for pytransformer contract backwards compatibility
([#6698](#6698))
([9b59ab3](9b59ab3))
* additional logs for async framework
([#6708](#6708))
([c16c885](c16c885))
* force release 1.69.0
([#6730](#6730))
([2390bfb](2390bfb))
* **gateway:** acknowledge reload requests in a transaction
([#6706](#6706))
([ef467b1](ef467b1))
* **jobsdb:** optimize partition id read exclusion filter
([#6724](#6724))
([936b9aa](936b9aa))
* move oauth destination logic to backend-config package
([#6677](#6677))
([4d194a3](4d194a3))
* pytransformer contract testing
([#6672](#6672))
([395a4fb](395a4fb))
* replace goimports with gci
([#6722](#6722))
([5947894](5947894))
* snowpipe streaming duplicate events due to offset
([#6712](#6712))
([db6b404](db6b404))
* sync release v1.68.0 to main branch
([#6696](#6696))
([2785583](2785583))
* use release name as etcd namespace
([#6707](#6707))
([fbf0892](fbf0892))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: rudderstack-github-actions[bot] <236995729+rudderstack-github-actions[bot]@users.noreply.github.com>
mihir20 pushed a commit that referenced this pull request Mar 4, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.69.0](v1.68.0...v1.69.0)
(2026-03-03)


### Bug Fixes

* application context for async jobs framework
([#6709](#6709))
([8dd73ad](8dd73ad))
* **batchrouter:** klaviyo bulk upload manager tries to update
zero-valued job ids in case of failures causing panics
([#6701](#6701))
([67befa5](67befa5))
* false sanity check failures
([#6713](#6713))
([ec12382](ec12382))
* snowpipe streaming delete channel logs
([#6695](#6695))
([8998ece](8998ece))
* snowpipe streaming poll re-create channel in case of invalid
([#6711](#6711))
([e379c1f](e379c1f))
* snowpipe streaming recreate channel error response
([#6717](#6717))
([bceafef](bceafef))


### Miscellaneous

* add backwards compatibility tests for getCredential
([#6719](#6719))
([32dbe77](32dbe77))
* add geolocation backwards compatibility test
([#6720](#6720))
([c03af7d](c03af7d))
* add more test cases for pytransformer contract backwards compatibility
([#6698](#6698))
([9b59ab3](9b59ab3))
* additional logs for async framework
([#6708](#6708))
([c16c885](c16c885))
* force release 1.69.0
([#6730](#6730))
([2390bfb](2390bfb))
* **gateway:** acknowledge reload requests in a transaction
([#6706](#6706))
([ef467b1](ef467b1))
* **jobsdb:** optimize partition id read exclusion filter
([#6724](#6724))
([936b9aa](936b9aa))
* move oauth destination logic to backend-config package
([#6677](#6677))
([4d194a3](4d194a3))
* pytransformer contract testing
([#6672](#6672))
([395a4fb](395a4fb))
* replace goimports with gci
([#6722](#6722))
([5947894](5947894))
* snowpipe streaming duplicate events due to offset
([#6712](#6712))
([db6b404](db6b404))
* sync release v1.68.0 to main branch
([#6696](#6696))
([2785583](2785583))
* use release name as etcd namespace
([#6707](#6707))
([fbf0892](fbf0892))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: rudderstack-github-actions[bot] <236995729+rudderstack-github-actions[bot]@users.noreply.github.com>
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.

3 participants