ci(snowflake): switch driver and integration tests to key-pair auth - #11963
Conversation
Snowflake now enforces MFA on the test user, so every password-based Snowflake job fails with 'Multi-factor authentication is required'. The encrypted key pair the snowflake-encrypted-pk leg already uses still authenticates, so make it the default for the drivers suites and the push.yml integration/smoke tests. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @bsod90's task in 3m 15s —— View job Approve with nits — 0 blocking, 2 lowFull review
VerdictThe fix is correct and complete for the MFA breakage. Wiring checks out end to end:
Findings
Both posted inline. Review threadsNo prior threads — the listing returned 0, so nothing to resolve or re-affirm. |
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## master #11963 +/- ##
===========================================
- Coverage 80.52% 61.42% -19.10%
===========================================
Files 508 247 -261
Lines 107359 19834 -87525
Branches 4043 4046 +3
===========================================
- Hits 86450 12184 -74266
+ Misses 20337 7076 -13261
- Partials 572 574 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The base Snowflake env is key-pair now, so snowflake-encrypted-pk re-ran the same suite for no extra coverage. The smoke harness now requires only the private key; the authenticator is a constant set by the test, and the passphrase is only needed for encrypted keys. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @bsod90's task in 2m 52s —— View job Review: no blocking issues — 0 findings this round (2 prior threads resolved)Details
What I verified
No references to Non-blocking observationSnowflake CI now has a single point of failure: every leg authenticates with the one key pair behind Review threadsThe listing returned 2 of my own threads. Both resolved, none re-affirmed:
|
Summary
On 2026-09-22 Snowflake started enforcing MFA on the Snowflake test user (account
lxb31104), which a CI user cannot complete. Every password-based Snowflake job now fails with:Confirmed on current PR runs:
drivers-tests.yml: 10 of the 11 Snowflake legs fail. Onlysnowflake-encrypted-pkpasses, which proves the existing key pair still authenticates.push.yml:integration (*, snowflake, *)fails.Change
The encrypted key pair the
snowflake-encrypted-pkleg already uses becomes the default auth. It comes from the existingDRIVERS_TESTS_CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY/_PASSsecrets, so no secret changes are needed.cubejs-testing-drivers/fixtures/snowflake.json: the base env usesSNOWFLAKE_JWT+ the private key instead ofCUBEJS_DB_PASS..github/actions/integration/snowflake.sh+push.yml: the same for the driver integration and smoke tests.cubejs-testing/src/REQUIRED_ENV_VARS.ts: the Snowflake smoke harness requiresCUBEJS_DB_SNOWFLAKE_PRIVATE_KEYinstead ofCUBEJS_DB_PASS. The smoke test setsSNOWFLAKE_JWTitself, and the passphrase stays optional, since only encrypted keys need it.drivers-tests.yml: drops the now-unused password env and thesnowflake-encrypted-pkleg, together with its test file, snapshot and scripts. The base config is that same encrypted key pair now, so the leg re-ran the identical suite.After merge, the
DRIVERS_TESTS_CUBEJS_DB_SNOWFLAKE_PASSrepo secret is unused and can be deleted.Test plan
drivers-testsSnowflake legs green on this PRpush.ymlintegration (snowflake)green on this PR🤖 Generated with Claude Code