-
Notifications
You must be signed in to change notification settings - Fork 133
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
Fix/stale authenticator reference for external SSO connection caching #918
base: master
Are you sure you want to change the base?
Fix/stale authenticator reference for external SSO connection caching #918
Conversation
Adds missing `clientStoreTemporaryCredential` field
All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
recheck |
can you please check https://docs.snowflake.com/en/developer-guide/node-js/nodejs-driver-authenticate#authentication-token-caching ? the token cache should not work without the server side component turned on. tested it after the feature was released and worked for me (on Linux). if you see an issue, please file an Issue. |
Related: #919 |
We eneabled the server side component by running
|
Description
#820 Implemented sso token caching. However token caching does not work in version 1.13.1 of this lib (and possibly other versions). Every new connection fails to use the id token that is written to disk.
Issues found:
clientStoreTemporaryCredential
needs to be set to true in the connection config, yet it's not a field defined inindex.d.ts
.connectionConfig
(inconnection.js
) that thesf
service has access to does not have aidToken
set (even though there is one available), which seems to indicate that thesf
service has a stale closure / reference toconnectionConfig
console.log
'ingconnectionConfig.idToken
inside ofconnection.js:295
relatedly, the docs are outdated as they do not specify that connection caching is supported for the NodeJS driver
Testing the fix
Run the following script twice:
Expected / fixed behaviour:
snowflake-sdk
uses id token inside oftemporary_credential.json
file that was written to disk during initial authentication flowChecklist
npm run lint:check -- CHANGED_FILES
and fix problems in changed code)npm run test:unit
andnpm run test:integration
)