PromucFlow_constructor/app/server/appsmith-plugins
sneha122 eaf1fa495c
feat: snowflake key auth server (#34548)
## Description
This PR adds new authentication method for snowflake: Use of public and
private keys to authorise a snowflake database.

Snowflake provides a couple of authentication mechanisms in order to
authenticate the DB. Currently appsmith only provides a way to authorise
using username and password. This PR adds support for private key
authentication, where by user can set a public key on their DB and they
can use corresponding private key in appsmith to authorise the
datasource.

In snowflake DB form, we have added a new field for authentication type
which has two options: Basic and Key pair. Basic will allows us to
authenticate using username and password. Key pair will provide us a way
to upload the private key along with input field for adding passphrase
(In case of encrypted private key).

More info: https://docs.snowflake.com/en/user-guide/key-pair-auth



https://github.com/appsmithorg/appsmith/assets/30018882/99774925-12a3-4cc0-af0a-614c3574cdc3


Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Datasource"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9743830603>
> Commit: cb64fffc9e181558525e020a4597b616eeacea7a
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9743830603&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Datasource`

<!-- end of auto-generated comment: Cypress test results  -->




## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced Snowflake integration with improved connection creation and
authentication handling (key pair and basic auth types).

- **Bug Fixes**
- Fixed issues related to handling authentication objects within
datasource configuration to ensure more reliable connections.

- **Documentation**
- Added new error messages for passphrase requirements and incorrect
passphrase or private key for encrypted private keys.

- **Tests**
- Updated tests to verify the correct setting of authentication types in
the Snowflake plugin.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-07-01 19:39:14 +05:30
..
amazons3Plugin feat: add support for Google Cloud Storage in S3 plugin (#33938) 2024-06-12 12:48:54 +05:30
anthropicPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
appsmithAiPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
arangoDBPlugin fix: default port numbers for the datasources (#32901) 2024-04-30 13:15:11 +05:30
awsLambdaPlugin fix: commands title changed to command for each datasource query editor forms (#32526) 2024-04-10 17:05:01 +05:30
databricksPlugin fix: Making userTag a hidden field to not expose it as a user configurable option with Appsmith being the default value (#31792) 2024-03-14 16:18:44 +05:30
dynamoPlugin chore: Applied Spotless formatter (#25173) 2023-07-07 00:43:11 +05:30
elasticSearchPlugin fix: default port numbers for the datasources (#32901) 2024-04-30 13:15:11 +05:30
firestorePlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
googleAiPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
googleSheetsPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
graphqlPlugin fix: apiKey security issue (#33528) 2024-05-23 13:45:16 +05:30
jsPlugin chore: Applied Spotless formatter (#25173) 2023-07-07 00:43:11 +05:30
mongoPlugin fix: changed the fields from QUERY_DYNAMIC_INPUT_TEXT to QUERY_DYNAMC_TEXT (#34108) 2024-06-11 14:24:10 +05:30
mssqlPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
mysqlPlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
openAiPlugin chore: Add gpt-4o mode in vision command (#33637) 2024-06-17 14:07:03 +05:30
oraclePlugin fix: Api pane and settings responsiveness (#33297) 2024-05-09 17:02:48 +05:30
postgresPlugin fix: Enable atomic pushes in git using an environment configuration (#33367) 2024-05-14 10:24:21 +05:30
redisPlugin fix: default port numbers for the datasources (#32901) 2024-04-30 13:15:11 +05:30
redshiftPlugin chore(deps): bump com.amazon.redshift:redshift-jdbc42 from 2.1.0.9 to 2.1.0.28 in /app/server/appsmith-plugins/redshiftPlugin (#33495) 2024-05-20 10:56:53 +05:30
restApiPlugin fix: encode queryParam value and fix parsing logic for queryParams (#33720) 2024-05-27 14:43:59 +00:00
saasPlugin fix: graphQL bindings issue resolved (#32760) 2024-04-18 17:36:54 +05:30
smtpPlugin fix: default port numbers for the datasources (#32901) 2024-04-30 13:15:11 +05:30
snowflakePlugin feat: snowflake key auth server (#34548) 2024-07-01 19:39:14 +05:30
pom.xml test: Add AssertJ for plugins, for better assertions (#31380) 2024-03-04 07:33:45 +05:30