Commit Graph

41 Commits

Author SHA1 Message Date
Trisha Anand
91e308665b
Requests preparation by plugins instead of ActionService (#3159)
* Added action request in S3 plugin.

* Added request data in Dynamo plugin

* Added request in Elastic Search.

* Request in Firestore.

* Request added in Mongo

* MsSQL request added.

* Added MySQL request.

* Added Postgres request.

* Added redis request.

* Redshift doen.

* Catching AppsmithPluginExceptions at the plugin level itself to ensure that the request gets passed on as part of the result.

* Fixed failing plugin test failures

* Fixed AmazonS3 test failures.

* WIP post analytics working

* WIP : Making the request data confirm to existing analytics request data format.

* Fixed the headers in the analytics body.

* Migrations S3, Postgres to the accepted format for request in analytics

* Updated S3 action to be the query

* Migration completed for all plugins for analytics.

* Removed the old analytics event. Now sending only the new one.

* Ensuring all data is captured in S3 plugin request in case of error.

* Minor editing of firestore to ensure that the errors get caught by the plugin itself.

* Fixed test cases in Amazon S3

* Incorporated review comments.
2021-03-02 10:58:46 +05:30
Trisha Anand
e5574c1945
Support Prepared Statements in Postgres (#2967)
* Pushing minor editor form changes to ensure that prepared statement could be turned off.

* Code refactor to do variable substitution in PluginExecutor instead of action service.

* WIP : Prepared Statement handling in psql plugin

* WIP Prepared Statements.

* Working version of prepared statements

* Quote trimming added for post preparing sql statements. Now the unprepared statements and prepared statements do not require edits.

* Fixed existing test cases failing.

* Code formatting.

* Super minor code cleanup.

* Added migration for the existing postgres actions.

* Fixed failing test cases in ActionServiceTest.

* Minor change in the text for turning on and off prepared statements in the postgres query pane.

* Added test cases for prepared statement.

* Some minor comments for code readability

* Moved Prepared Statement setting from Action Configuration to Plugin Specified Templates since this setting does not make sense for all the DB plugins.

* Added function level comments

* Update app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/SqlStringUtils.java

Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>

* Update app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/SqlStringUtils.java

Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>

* Incorporated review comments.

* Fixed compile time error.

Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
2021-02-18 18:33:27 +05:30
Nidhi
c0e44d0cd9
Added null check for error messages (#2922)
* Added null check for error messages

* Added a generic null check for future null pointers from other sources.
2021-02-09 15:00:22 +05:30
Sumit Kumar
e6b77a1299
Stop logging some AppsmithPluginException to Sentry (#2351)
1. Move package  appsmith-interfaces/src/main/java/com/appsmith/external/pluginExceptions-> appsmith-interfaces/src/main/java/com/appsmith/external/exceptions/pluginExceptions
2. Move enum AppsmithErrorAction from appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithError.java -> appsmith-interfaces/src/main/java/com/appsmith/external/exceptions/AppsmithErrorAction.java, so that both plugin exceptions and server exceptions could use the same enum.
3. Log exception based on the error action defined for each exception.
2021-02-04 15:24:30 +05:30
Nikhil Nandagopal
db9c2d6c27 Updated doc link 2021-02-03 17:28:05 +05:30
Nidhi
6515b5c91c
Fixed null endpoint issue for MySQL plugin (#2719) 2021-01-26 17:16:31 +05:30
Shrikant Sharat Kandula
5e04ca5c9d
Add ability to configure order of templates of plugins (#2279) 2020-12-18 20:45:08 +05:30
Nidhi
a00c144e85
Subclassing authentication (#2215)
* Sublcassing authentication

* Removed TODO

* Review changes
2020-12-17 21:38:52 +05:30
Trisha Anand
888d79b06d Removing printing of result objects from plugin execution. 2020-12-09 19:03:51 +05:30
Trisha Anand
8283396056
Moved from boundedElastic to elastic to ensure that the server services the plugin execution request as soon as the request arrives. (#2090) 2020-12-08 22:04:14 +05:30
Sumit Kumar
db3636f7b0
mysql plugin - check if connection is stale before running query (#2080)
1. Check if mysql plugin connection is stale. If so, then return stale connection exception which triggers a retry after 
    establishing a new connection.
2. Refactor execute method code to remove code duplication.
3. Add a new test case to check if stale connection gets detected.
2020-12-08 21:03:31 +05:30
Sumit Kumar
d347448b24
Propagte mysql test datasource failure to UI. (#2001)
1. Propagte mysql test datasource failure exception message to UI.
2. Change build TC to reflect the same.
2020-12-02 17:53:38 +05:30
Sumit Kumar
b3c3102c72
Add tests for mysql plugin to test all regularly used data types in mysql. (#1994) 2020-12-02 11:49:41 +05:30
Sumit Kumar
883fa44896
Make sql plugin use R2DBC driver instead of JDBC driver (#1936)
1. Add R2BC driver and remove JDBC driver usage in mysql plugin to make the plugin reactive.
2. Update dependencies in POM file.
3. Update mysql plugin to return result based on the type of sql query i.e select vs other queries. In case the queries are chained, then the last query is used for deciding the type.
4. Added a new TC for testing datasource and removed a non functional TC.
2020-11-28 18:04:56 +05:30
Trisha Anand
2062c60ca3
Moved all the scheduling of the plugin executions to bounded elastic instead of elastic. (#1931) 2020-11-26 17:50:43 +05:30
Trisha Anand
d8cba1bf8c
Making MySql blocking commands run on elastic thread pool (#1862) 2020-11-23 17:02:18 +05:30
Arpit Mohan
470f2fafcd
Adding support for https endpoints for ES plugin (#1445)
* Adding host:port validation checks to ES plugin & Redis plugin

Also correcting the assertions in the RedisPluginTest so that the error message on test failure is accurate.

* Removing the endpoint validation from datasourceServiceImpl

Moving the endpoint validation to the plugin implementation classes because there are databases that require complete HTTP URL in their configuration. Checking for http/https at the platform level affects the UX for the user & plugin developer when using a new integration. Hence, all plugins must implement their own client/server validations in their own implementations

* Adding tests to assert hostname validation in mysql & postgres plugins
2020-10-28 19:06:10 +05:30
akash-codemonk
9d27315213
Update datasource form config to include encrypted property (#1360) 2020-10-23 13:31:46 +05:30
Arpit Mohan
45e436a7c6 Merging latest master into release 2020-10-19 23:02:24 +05:30
Nikhil Nandagopal
77e1998e74
updated query template to have an explanatory comment (#1260) 2020-10-19 15:10:21 +05:30
akash-codemonk
0772bffe23
Create a new input field which outputs a key value pair (#1226) 2020-10-16 13:04:32 +05:30
dependabot[bot]
f6b1ff2ed4
Bump junit in /app/server/appsmith-plugins/mysqlPlugin (#1163)
Bumps [junit](https://github.com/junit-team/junit4) from 4.11 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.11.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.11...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-13 14:33:02 +05:30
Shrikant Sharat Kandula
13ddcc0cc9
Upgrade pf4j & test containers and fix plugin tests (#1156) 2020-10-13 13:42:14 +05:30
Shrikant Sharat Kandula
4f3de3ab9f
Datasource structure support for MongoDB (#641)
* Added structure for MongoDB datasources

* Fixed tests for MongoDB template queries
2020-10-01 10:41:29 +05:30
Shrikant Sharat Kandula
2bb2ad4d19
Fix zero date-times in MySQL throwing exceptions (#705) 2020-09-24 14:36:22 +05:30
Shrikant Sharat Kandula
de1ea7dfb4
Add option to override server timezone for MySQL datasources (#659)
* Add option to override server timezone for MySQL datasources

* Added test for server timezone override for MySQL

* Fix serverTimezone property config
2020-09-23 10:07:33 +05:30
Shrikant Sharat Kandula
6ef5838cd8
Add UPDATE query templates for Postgres and MySQL plugins (#646) 2020-09-21 17:56:24 +05:30
Shrikant Sharat Kandula
75ba90928e
Add datasource structure caching and MySQL structure support (#553)
* Implement caching for datasource structure

* Avoid using final fields so spring-data can load objects

* Use type variable for getStructure method

* Initial version with base structure for MySQL plugin

* Add tests for MySQL plugin structure

* Add sorting for keys in Postgres structure as well

* Show "primary key" instead of just "primary"

* Refactor to reduce inline magic strings
2020-09-17 13:59:46 +05:30
Shrikant Sharat Kandula
e551043080
Fix plugin executions/test/structure breaks when auth is null (#544) 2020-09-15 12:09:49 +05:30
Shrikant Sharat Kandula
6c7e45d010
Add a connection type variable for Plugin implementations (#531)
* Add a connection type variable for Plugin implementations

This type variable is intended to represent the type of the
connection object, if any, that the plugin will use. This will
help make the implementations more robust by leveraging Java's
type checking instead of rudimentary type casts over the
connection objects.

* Fix missing typevar usage
2020-09-14 20:36:47 +05:30
Shrikant Sharat Kandula
59349fd03e
Fix column alias names in MySQL actions (#466)
* Fix aliases not showing up for MySQL actions

* Fix date column display for MySQL actions

* Fix datetime columns for MySQL actions

* Add support for timestamp and year data types for MySQL actions

* Fix column label for MySQL plugin

* Add tests for MySQL temporal data types

* Add tests for alias columns in MySQL and Postgres
2020-09-02 17:19:41 +05:30
akash-codemonk
8f0015eaf3
Show validation errors if any for keyvalue fields (#445)
* Update host field with validation properties
2020-08-31 10:45:04 +05:30
Shrikant Sharat Kandula
b511c3ada9
Change return type of plugin execution to be more specific (#247) 2020-08-10 14:41:32 +05:30
Nikhil Nandagopal
f7cf7e1182
Fix/copy changes (#210)
* Added information to setup domain

* Fixed incorrect var reference

* Updated documentation message

* Updated env template

* updated template

* removed debug echo

* Updated Script

* Updated Text

* Removed option to connect to external mongo for fresh installs
Exit script of docker desktop is not installed

* Updated docker installation explanation

* added a question to skip custom domain if user is installing locally

* Inverted script question and

* Removed question to determine local installation

* Updated Popup CTA to Modal
Updated query templates to contain bindings
Added a message to display on API / Query errors

* updated styles for evaluated value
updated styles for auto complete

* added spaces to questions

Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
2020-08-04 17:51:02 +05:30
Trisha Anand
b5841e96d2
GET plugin form now returns json to render both datasource configuration form and the editor query pane (#199)
Keeping the function to read plugin resource generic for any type of resource. Now the parent function can also conditionally decide which plugin would require to read which resources from the filesystem.

Co-authored-by: Arpit Mohan <arpit@appsmith.com>
2020-08-03 16:37:28 +05:30
Shrikant Sharat Kandula
dfcabab4cc
Handle stale database connection from datasources (#151)
* Handle stale database connection from datasources

* Fix potential secondary case of stale connection error

* Fix Postgres to MySQL

* Move validity check timeout to a constant field

* Add test for recovery when stale connection error is thrown
2020-07-24 12:18:25 +05:30
Shrikant Sharat Kandula
ca73c3e625
Copy plugin dependencies to their target/lib to fix driver not found errors (#152)
The plugin class loader from Pf4J looks for jars under target/lib
to use to load any classes that are missing target/classes. This
PR adds the `maven-dependency-plugin` to copy the jars to this
folder automatically so the classes are available during
development.
2020-07-24 09:49:17 +05:30
Shrikant Sharat Kandula
a46d355422
Fix class name casing for MySqlPlugin (#148) 2020-07-23 17:33:34 +05:30
Arpit Mohan
f9d4262d7e
Removing the default value for postgresql and mysql ports (#147) 2020-07-23 10:40:18 +05:30
Arpit Mohan
690c327f2c
Adding default values for mysql datasource (#140)
Also correcting icon details to mysql plugin migration.
2020-07-22 14:00:15 +05:30
nupur
d0e60a1890
Mysql plugin integration (#53)
This commit adds the Mysql plugin to the Appsmith server. We also add a migration to ensure that this plugin is installed by default for all existing organizations. The migration also adds the plugin details into the DB.

Also adding the test cases for mysql plugin.

Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Hetu Nandu <hetu@appsmith.com>
Co-authored-by: Arpit Mohan <me@arpitmohan.com>
Co-authored-by: Nupur Singhal <nupursinghal@Nupurs-MacBook-Air.local>
2020-07-21 16:01:42 +05:30