Commit Graph

739 Commits

Author SHA1 Message Date
Abhijeet
6ea795e8a1
Autoscroll to invited organisation (#3945)
* Added organization slug to the invite Url, which is finally used by email template(#2359)

* Separate method to create email params. Welcome email url variable updated so as to be consistent with other email templates

* Unused enum emailType removed, importing of java.util.* removed as per suggestion
2021-04-15 16:46:46 +05:30
Trisha Anand
9b49308abe
Adding dependency relationship to plugins (#3997)
* Added dependencies to be added to dependencyMap on client to Postgres, MSSQL, MySQL and Mongo plugins

* Added Dependency config for API

* Fixed the test case
2021-04-15 11:36:41 +05:30
Shrikant Sharat Kandula
a259dd00ed
Fix internal server error on invalid header in curl command (#3931)
* Fix internal server error on invalid header in curl command

* Add tests for invalid header/method
2021-04-14 10:44:43 +05:30
Sumit Kumar
b4e43798ab
fix NPE by adding null check conditional (#3989)
Fix NPE seen on Sentry by adding null check for result body
2021-04-13 19:58:40 +05:30
Nidhi
a24eb90091
Fixed escaped layout being used for update (#3968)
* Fixed escaped layout being used for update

* Few more cases of unescaped layout usage
2021-04-13 09:36:50 +05:30
Nidhi
4bddfa0a4e
Fixed curl import without valid tokens (#3933) 2021-04-09 14:03:53 +05:30
Sumit Kumar
9c8bce0415
Feature: return data types of returned data on query execution for better data display (#3914)
- Return data type list along with action execution result so that the data can be displayed in the correct format.
- Handles these three data types for now : table, json, raw.
  - If a plugin has already assigned the data type, then common handler is not used.
  - Mongo plugin assigns the data types in the plugin specific flow i.e. does not use the common data type parse / assign method.
- To address review comments:
  - added a new enum ActionResultDataType for data types. It is consumed by ParsedDataType. A list of ParsedDataType is returned by ActionExecutionResult
  - parsed data in parallel using streams.parallel().
2021-04-09 10:58:37 +05:30
Sumit Kumar
41e44eed30
Feature: add title to action execution errors to improve user experience (#3872)
- add title to action execution errors to improve user experience
    - all errors in AppsmithPluginErrors
    - action execution related errors in AppsmithError : NO_CONFIGURATION_FOUND_IN_DATASOURCE, INVALID_ACTION, INVALID_DATASOURCE, INVALID_DATASOURCE_CONFIGURATION - as these are the likely errors in an action execution flow (excluding plugin specific flow) that might result from faulty action / datasource configuration by a user.
    - title is returned as part of ActionExecutionResult.
    - title is set in ActionExecutionResult on failure during action execution.
    - In response to review comment - added a new BaseException class, so that both AppsmithException and AppsmithPluginException extend this base class. Also, refactored code to introduce setErrorInfo() function in ActionExecutionResult class to set its attributes.
- Some unrelated cleanup:
    - catch PoolInitializationException for Postgres plugin and return AppsmithPuginException
    - catch MongoTimeoutException and return AppsmithPluginException
2021-04-08 09:49:05 +05:30
Trisha Anand
174ef284f0
[Bug Fix Improvement] : Table widget keys are unescaped after walking through the DSL (#3908)
* WIP : untested

* Minor refactoring

* Added test case to assert escaping and unescaping of the table widget primary column keys
2021-04-07 19:36:37 +05:30
Nidhi
927a6a3479
Annotation based encryption (#3610)
* Annotation set up

* Removed annotation uses

* Redundant condition

* Commented out logging, retained for implementation

* Handling for Collection and Map parameterized types

* Removed comments
2021-04-07 15:27:36 +05:30
Trisha Anand
4bf74f6434
Bug Fix : Escaping _id and _class from Table PrimaryColumn keys before storing the DSL (#3887)
* Bug Fix : Escaping _id and _class from primary column keys before storing the DSL

* Fixed the test case failures.

* Updated the replacement strings for _id and _class to include appsmith keyword
2021-04-07 13:21:18 +05:30
Sumit Kumar
3140e98146
modify hint message to include fix (#3829)
Modify hint message to include fix.
2021-04-01 17:10:30 +05:30
Shrikant Sharat Kandula
efec01344a
Clone explicitly set datasource for new users (#3793) 2021-04-01 12:44:44 +05:30
Nidhi
9f8cb59a04
Null handling for bad state in OAuth2 callback (#3810)
* Null handling for bad state in OAuth2 callback

* Handling null

* Another case for when state is present but not as expected
2021-04-01 10:41:11 +05:30
Trisha Anand
aab75bf304
Bug fix : App viewer inviting another app viewer would assign correct permissions to applications 2021-03-30 17:05:44 +05:30
Nidhi
683176fc48
Increased default limit for webclient payload (#3718)
* Increased default limit for webclient payload
2021-03-26 21:34:10 +05:30
Sumit Kumar
e347b61e53
Return hint on localhost url (#3611)
- Return hint for localhost URL on the following events:
Test datasource
Save datasource
Update REST API Url
Create datasource from REST API
When page gets loaded for first time.
- Hint message returned: "You may not able to access your localhost if Appsmith is running inside a docker container or on the cloud. Please check out Appsmith's documentation to understand more."
- It has been decided as part of actions pod meeting that these messages will not be persisted.
2021-03-26 15:42:34 +05:30
Trisha Anand
ed1a0b4045
Refactor the smart substitution code to extract common code at plugin interface level. (#3497) 2021-03-25 19:10:42 +05:30
Trisha Anand
c6e4f91ffb
[Bug fix] A lax search for presence of binding during save page to match client algorithm to reduce page save error (#3698)
* Lax mustache binding check added to match the client side check when client recognizes a field to have a dynamic binding. This would reduce/remove bad bindings from throwing a 400 during save page.

* Added a test to assert that update layout does not fail in case the binding is technically incorrect because part of the mustache's lie inside quotes. Since client has a lax way of finding a dynamic path, server also follows suite.
2021-03-25 16:00:45 +05:30
Trisha Anand
1a9a410c5e
Stringifying the binding name before setting in the error to ensure client can parse it correctly (#3689) 2021-03-25 12:36:56 +05:30
Shri
a18e569f7d
Fix data serialization in analytics (#3677)
* Serialize object fields before sending to analytics

* Push event when application is published
2021-03-23 17:13:02 +05:30
Sumit Kumar
38c5639542
Provide non client certificate based SSL support for Mysql, Mongo, Postgres plugins. (#3518)
- Provide non client certificate based SSL support for Mysql, Mongo, Postgres plugins.
- Added a new option default, apart from the the SSL mode types supported by the driver. Default means that go with whatever default configuration driver provides.
2021-03-19 15:03:56 +05:30
Nidhi
93d5a061e2
Added logs and analytics (#3622)
* Added logs and analytics

* Fix in error string

Co-authored-by: Shri <shrikant@appsmith.com>

* Review fixes :)

Co-authored-by: Shri <shrikant@appsmith.com>

Co-authored-by: Shri <shrikant@appsmith.com>
2021-03-18 21:48:13 +05:30
Shri
bb1d0059d3
Clear OAuth tokens for forked datasources (#3609)
* Clear OAuth tokens for forked datasources

* Fix datasource duplicate finder in light of oAuth tokens

* Fix potential NPE
2021-03-18 21:08:56 +05:30
Shri
cbd7828503
Add migration to remove template organization config (#3568) 2021-03-16 15:29:06 +05:30
Shri
e1fb1203b5
Application forking fixes and improvements (#3519)
* Clone only those datasources that are actually used

* Retry when cloning app causes a name class

* Search for an existing datasource before cloning

* Test deep matching of datasources

* Refactoring, since now the tests pass

* Allow forking of owning applications

* Don't limit datasource naming suffix number
2021-03-15 22:19:40 +05:30
Shrikant Sharat Kandula
3d6bd51556
Fix NPE in action execution analytics (#3541)
The NPE noticed is with the return value of `.getStatusCode`.
But this PR adds NPE guards to a few other potential cases.
2021-03-14 07:58:27 +05:30
Trisha Anand
217e36aaa9
Enrichment of analytics event for execute. (#3492)
* WIP : enrichment of analytics event for execute.

* Plugin level : Catch all exceptions and set request in the result
Server level : Adding new fields to analytics : `isSuccessfulExecution`, `statusCode`, `timeElapsed`

* Dont catch StaleConnectionException. Server handles the same.

* Removed class specification for onErrorResume in plugins since its supposed to catch all errors.
2021-03-11 15:40:07 +05:30
Shrikant Sharat Kandula
b12057ef73
Allow client to set layouts without id when creating a page (#3477)
* Allow client to set layouts without id when creating a page

* Mild refactoring

* Fix Layout action tests
2021-03-11 15:13:24 +05:30
Shrikant Sharat Kandula
1d683ad458
Fix recaptcha failing on signup when not configured (#3488) 2021-03-11 11:05:48 +05:30
Shrikant Sharat Kandula
65568a4e13
Add more devices in AppLayout options (#3451)
* Remove width and introduce more AppLayout type enums

* Fix: Adding min width to layout options.

Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
2021-03-11 07:51:48 +05:30
Abhishek
0b4adf198d
Add recaptcha verification for user signup on the server (#3383)
Co-authored-by: Abhishek <abhishek.ak@bytedance.com>
2021-03-11 07:25:01 +05:30
Sumit Kumar
04e8acb763
Custom S3 service support (#3469)
- Provide support for non Amazon S3 service providers like Upcloud, Digital Ocean, Wasabi, DreamObjects and any other S3 compliant storage service provider.
- Change plugin label from "Amazon S3" to "S3"
2021-03-10 10:30:07 +05:30
Shrikant Sharat Kandula
bb9a9a307f
APIs for profile photos (#3260)
* Add API for uploading profile photos for current user

* Add delete and get APIs for profile photos

* Add test for uploading and deleting profile photo

* Added negative tests for upload profile photo API
2021-03-09 17:03:20 +05:30
Trisha Anand
38c0151e94
Changed order of message for easy grep in case of invalid dynamic binding path (#3436) 2021-03-08 16:05:05 +05:30
Trisha Anand
79164fde44
Only return request object in action execute if the action was executed in EDIT mode. (#3426) 2021-03-08 16:04:17 +05:30
Sumit Kumar
800d305dab
Gracefully handle the timeout overflow / out of expected range errors (#3411)
- Expect max value of timeout as 60000 ms.
- If value exceeds max value then add error message to the list of invalids. This list is returned to the client in response body.
- Detect integer overflow exception (Number format exception) and override the value to 60000 ms.
2021-03-05 17:09:29 +05:30
Trisha Anand
20ed017a58
In case of no mustache bindings are found in dynamic path list, throw invalid dynamic binding reference error. (#3394) 2021-03-04 15:35:46 +05:30
Trisha Anand
5e448b9331
DSL parsing : Catch index out of bound exception (#3364)
* In case index being referred does not exist, throw appropriate error during DSL parsing

* Fixing bad commit.
2021-03-03 18:51:35 +05:30
Trisha Anand
75b0986b92 Fixed the incorrect JSON string in INVALID_DYNAMIC_BINDING_REFERENCE appsmith error. 2021-03-03 18:22:42 +05:30
Trisha Anand
f49cc7b455
Added throwing a properly formatted error for client to consume when dynamic binding path list contains an invalid entry (#3343) 2021-03-03 17:47:35 +05:30
Trisha Anand
ca8be4c7f5
Db Migration : Delete unreferenced dynamic binding paths in actions (#3310)
* WIP compute if the dynamic binding path list is correct.

* Tested code for deleting the incorrect dynamic binding path list from actions.

* Added comments for code readability
2021-03-03 17:11:03 +05:30
Shrikant Sharat Kandula
9c50182f0e
API for forking of public applications (#3221)
* A barely working API for forking a public application

* Tests WIP

* Mild refactoring in tests

* Refactoring in test

* Not all applications are forkable
2021-03-03 15:45:47 +05:30
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
Shrikant Sharat Kandula
a1d027bb59
Save separate appLayout for edit/view and sync on publish (#3245) 2021-02-26 16:18:04 +05:30
Shrikant Sharat Kandula
5808620716
Add API for the signed in user to set their name (#3164)
* Add API for the signed in user to set their name

* Use the correct error in session handling
2021-02-26 14:48:20 +05:30
Shrikant Sharat Kandula
9f18aa2e69
Fix NPE in analytics on action execution (#3216) 2021-02-25 17:46:24 +05:30
Trisha Anand
42af1fa771
Only extract dynamic bindings from leaf nodes on update layout (#3210)
* Only extract dynamic bindings from leaf nodes.

* Minor code refactoring

* Moved to using generic Map type instead of LinkedHashMap
2021-02-25 15:56:45 +05:30
Sumit Kumar
63ff3c73fa
Fix execute on page load for api on app copy (#3150)
* first draft

* added fix without TC

* cleanup

* Update app/server/appsmith-server/src/main/java/com/appsmith/server/services/NewActionServiceImpl.java

Co-authored-by: Trisha Anand <trisha@appsmith.com>

* Update app/server/appsmith-server/src/main/java/com/appsmith/server/services/NewActionServiceImpl.java

Co-authored-by: Trisha Anand <trisha@appsmith.com>

* Update app/server/appsmith-server/src/main/java/com/appsmith/server/services/NewActionServiceImpl.java

Co-authored-by: Trisha Anand <trisha@appsmith.com>

* - add TC
- minor code refactor

* fix condition

* update clone page test

Co-authored-by: Trisha Anand <trisha@appsmith.com>
2021-02-24 10:21:03 +05:30
Piyush
faea2f36ff
Add support for setting.json for pluginType DB (#3156) 2021-02-23 13:57:37 +05:30