Commit Graph

1069 Commits

Author SHA1 Message Date
Shrikant Kandula
f19764ab99 Merge branch 'bug/space-not-needed-in-header-in-curl' into 'release'
Fix parse error when there's a space in header in curl command

See merge request theappsmith/internal-tools-server!390
2020-06-18 10:11:39 +00:00
Trisha Anand
4337e88934 Application and page can only be deleted if you have manage application/page permissions respectively. 2020-06-18 15:35:30 +05:30
Shrikant Kandula
1d5fa960db Fail with an error if can't find page when creating an action 2020-06-18 15:05:55 +05:30
Trisha Anand
ec8c63bfee For invitation, throw a bad request error in case all the invite dto fields are not set. 2020-06-18 14:05:48 +05:30
Trisha Anand
e5282dac11 In case a page is opened in edit mode, it should open with permission of MANAGE_PAGE. In case the user is a viewer, the page must not open. 2020-06-17 17:34:26 +05:30
Trisha Anand
893698f09e Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-server/src/main/java/com/appsmith/server/constants/FieldName.java
2020-06-17 15:10:23 +05:30
Trisha Anand
8fc99cf0bd In case a user is invited to an organization as developer, correct top permissions are being assigned via Appsmith role. 2020-06-17 09:33:00 +00:00
Shrikant Kandula
8e40240f25 Fix parse error when there's a space in header in curl command 2020-06-17 12:32:08 +05:30
Arpit Mohan
c6af229a97 Merge branch 'bug/default-page-action-refactor' into 'release'
Adding the widget names set to the default layout for a page

During action name refactor, we require the widget names to exist in the layout. Hence all default layouts must have the widgetName set.

See merge request theappsmith/internal-tools-server!387
2020-06-16 05:25:54 +00:00
Arpit Mohan
a4132d5845 Adding the widget names set to the default layout for a page 2020-06-16 10:50:07 +05:30
Shrikant Kandula
dd0ba857c2 Fix cURL import when using --url argument
Also fixes cases where there's a space between `-X` and `POST` and
similar cases.
2020-06-16 09:59:43 +05:30
Trisha Anand
9dfb72720e Fixed the broken test cases. 2020-06-12 19:35:01 +05:30
Trisha Anand
bb6dc61015 Build fix 2020-06-12 19:16:31 +05:30
Trisha Anand
73757c3425 Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	.gitignore
#	appsmith-plugins/mongoPlugin/plugin.properties
#	appsmith-plugins/postgresPlugin/plugin.properties
#	appsmith-plugins/rapidApiPlugin/plugin.properties
#	appsmith-plugins/restApiPlugin/plugin.properties
#	appsmith-plugins/restApiPlugin/src/main/java/com/external/plugins/RestApiPlugin.java
#	appsmith-server/src/main/java/com/appsmith/server/constants/FieldName.java
#	appsmith-server/src/main/java/com/appsmith/server/repositories/ActionRepository.java
#	appsmith-server/src/main/java/com/appsmith/server/services/ActionServiceImpl.java
#	appsmith-server/src/main/java/com/appsmith/server/services/DatasourceContextServiceImpl.java
#	appsmith-server/src/main/java/com/appsmith/server/services/DatasourceServiceImpl.java
#	appsmith-server/src/test/java/com/appsmith/server/services/ActionServiceTest.java
#	appsmith-server/src/test/java/com/appsmith/server/services/ApplicationServiceTest.java
#	appsmith-server/src/test/java/com/appsmith/server/services/LayoutServiceTest.java
#	appsmith-server/src/test/java/com/appsmith/server/services/PageServiceTest.java
#	build.sh
2020-06-12 19:14:31 +05:30
Shrikant Kandula
18476432ac Don't invite users if they have any access in an org, not just admin. 2020-06-12 17:48:35 +05:30
Shrikant Kandula
b391f46e2c ACL Migration Script 2020-06-12 11:54:21 +00:00
Trisha Anand
4eab663c8e Bug fix for forgot password error "user not found". During reset password, the user is not logged in and hence the permissions can not be applied during repository findByEmail 2020-06-12 13:57:57 +05:30
Trisha Anand
3dafccba2e In case of sending email for an existing user, fixed the URL. 2020-06-12 13:30:53 +05:30
Shrikant Kandula
ab83bc0223 Fix problem where not all apps were getting policies when invited. 2020-06-11 20:56:52 +05:30
Trisha Anand
e7e008dcd2 Fixed the repository function which was failing for fetching actions during updateLayout. 2020-06-11 07:22:16 +00:00
Arpit Mohan
01737b9599 Experimenting with maven-shade-plugin to create a fat-jar of the postgres dependency.
Will have to do this for all plugins. Currently, it's not registering the plugin with the SpringPluginManager
2020-06-10 11:11:23 +00:00
Shrikant Kandula
1ce336257c Mark any 2xx status code in REST API plugin as successful execution. 2020-06-10 10:51:07 +00:00
Trisha Anand
7a658ce5ea App viewer user in an organization should have read:organizations permission. 2020-06-10 15:55:29 +05:30
Trisha Anand
491afc3599 In case of global datasource, no need to check for organizationId during action create. 2020-06-10 09:08:01 +00:00
Trisha Anand
a89355a5ec Fixes bugs : 1. read:datasource permission should not be applied to application; 2. A user shouldn't be added to an organization if the user already exists in the organization. 2020-06-10 06:22:16 +00:00
Arpit Mohan
3cf8ff008f Hacky fix for the postgres plugin to work. Including the dependency in the appsmith-server/pom.xml file instead of the plugin 2020-06-10 10:46:09 +05:30
Trisha Anand
ac06cc9668 1. user permissions during create/update of actions and datasources would now be set.
2. During update, policies are set to null in the update object to ensure that the policies are not overwritten to empty set.
2020-06-09 20:25:13 +05:30
Arpit Mohan
bbd33c2968 Removing the query field in ActionConfiguration and using String body as the field to store the query
This is to simplify the query pane on the frontend client. The client doesn't need to have separate interfaces for sql and non-sql plugins. All queries will be sent to the server in the form of a String that is parsed in different formats based on the plugin.

Also adding test cases for PostgresPlugin. Used TestContainers to simulate the postgres db in Docker inside the Java test itself. Very useful.
2020-06-09 12:12:27 +00:00
Arpit Mohan
99e7519550 Handling form data via the field bodyFormData in ActionConfiguration
This is because the client sends us the data for form-data in the form of a list of Property fields with keys and values. This is consistent with how the client stores & renders headers & query parameters as well.
For MediaType application/x-www-form-urlencoded we will use the bodyFormData field.
2020-06-09 05:48:16 +00:00
Trisha Anand
061577d2c9 Bug : When the user tries to invite without selecting the role user, this leads to null pointer exception.
Fix : A user CAN NOT be invited to an organization without specifying the role.
2020-06-08 14:56:12 +00:00
Trisha Anand
a888d54059 Changed the get all actions function to fix the bug where find by Example is not working. Instead the same has now been implemented using criteria. 2020-06-08 12:05:49 +00:00
Trisha Anand
9ac7e817cc Merge branch 'feature/acl-remove-getCurrentOrganization' into 'feature/acl-spring-object'
Removed the usage of get current organization id. Added organization id to a few api calls.

See merge request theappsmith/internal-tools-server!367
2020-06-08 06:45:04 +00:00
Trisha Anand
a31796a216 Removed the usage of get current organization id. Requires addition of organization id to a few api calls. 2020-06-08 06:45:04 +00:00
Trisha Anand
f9d63f9881 Adding a 3P Api to a page now also expects the client to send the organization id. 2020-06-05 16:14:15 +05:30
Trisha Anand
87aafd6cf4 Adding test case for testDatasource
Refactoring the testDatasource code by moving the business logic to the service layer.
2020-06-05 10:05:23 +00:00
Arpit Mohan
1a68b7f561 Fixing the DSL Json for default layouts in new pages. 2020-06-04 16:13:47 +05:30
Trisha Anand
9e1742c289 Add OrgId to the output of the api used to return all the page ids and names given an application (id or name) 2020-06-04 08:08:15 +00:00
Arpit Mohan
1ac69bab50 Modifying the default page name to Page1
Also creating a default empty layout when a new page is created. This ensures that the client can show the default message on new page creations.
2020-06-04 13:05:34 +05:30
Trisha Anand
f8cf87e3c8 Invite existing user to an organization works. Updated the test case for adding user to an organization as well to use the new API. 2020-06-01 17:39:27 +00:00
Trisha Anand
f1e1e6959a Bug : New users aren't able to read their own user object and hence homepage doesnt load.
Fix : Added lateral permissions for user on create.
2020-05-29 05:28:30 +00:00
Trisha Anand
d6670c70cc Bug Root Cause : New users have no applications inside the organizations(s). In this case, get all applications does not return back organizationApplications object.
Fix : In getAllApplications, instead of iterating over collections of applications which could be empty, we iterate over organizations where we are guaranteed to have atleast one organization.
2020-05-28 13:31:24 +05:30
Trisha Anand
6475be63d1 Baseline code added for cascading the org level permissions to applications, pages and eventually actions. 2020-05-27 14:36:57 +00:00
Arpit Mohan
d20e92a587 Modifying the Action object to include an array of Property for dynamicBindingPathList 2020-05-27 13:16:38 +05:30
Arpit Mohan
9f82bde92c Adding statusCode from AppsmithPluginErrors when plugins error out
This ensures that we can always display a status code on the client.
2020-05-26 11:50:09 +00:00
Trisha Anand
59a83d414b Added description to roles for organization appsmith roles. 2020-05-26 10:49:42 +05:30
Arpit Mohan
a569156029 Merge branch 'hotfix/action-error' into 'release'
Creating the actionExecutionResult object for error scenarios as well.

See merge request theappsmith/internal-tools-server!354
2020-05-23 07:23:13 +00:00
Arpit Mohan
e6b7ffca9c Creating the actionExecutionResult object for error scenarios as well.
This ensures that we can populate the request fields for all action executions
2020-05-23 12:49:01 +05:30
Trisha Anand
0c9c95bc9a Fixed the findAll repository function which was leading to get all actions via application id to throw an internal server error. 2020-05-22 15:56:09 +05:30
Trisha Anand
d98fce3d09 WIP: adding helper functions for adding/removing roles from an organization. Adding role updates the organization right now. Removing role -> added a helper.
TODO : finish the above code flows + cascade these to the children objects of the organization -> Applications/Pages/Actions.
2020-05-21 15:05:43 +00:00
Shrikant Kandula
7037d99cfa Use sequences for numbering new datasources. 2020-05-20 11:21:32 +00:00
Trisha Anand
e95b680169 create application now expects organization id. Fixed the test cases which broke because of this basic change in the way applications are created. 2020-05-19 17:09:51 +00:00
Shrikant Kandula
b13a7a5df3 Fix incorrect call to updatedAt. 2020-05-19 19:25:32 +05:30
Shrikant Kandula
329587f5ff Fix NPE when using datasources without updatedAt. 2020-05-19 13:48:58 +00:00
Arpit Mohan
14c1778645 Merge branch 'bug/curl-auto-add-protocol' into 'release'
Automatically add protocol to URL provided to cURL command.

Notion ref: <https://www.notion.so/appsmith/CURL-import-for-incomplete-but-valid-URLs-like-www-google-com-leads-to-the-URL-not-getting-read-Th-9191456cb1b24cd68b92072c1a6f3ab6>.

See merge request theappsmith/internal-tools-server!343
2020-05-19 04:23:59 +00:00
Shrikant Kandula
db0532941d Automatically add protocol to URL provided to cURL command. 2020-05-19 04:23:58 +00:00
Arpit Mohan
85ea6563db Merge branch 'hotfix/server-use-forward-headers' into 'release'
Adding the ForwardedHeaderTransform bean to enable spring to parse...

Adding the ForwardedHeaderTransform bean to enable spring to parse X-Forwarded-* headers from Nginx proxy

See merge request theappsmith/internal-tools-server!344
2020-05-19 03:56:40 +00:00
Arpit Mohan
158f5c8203 Adding the ForwardedHeaderTransform bean to enable spring to parse X-Forwarded-* headers from Nginx proxy 2020-05-19 09:22:33 +05:30
Shrikant Kandula
bffd68b1a9 Merge branch 'bug/postgres-empty-result' into 'release'
Don't fail after executing a non-SELECT query on Postgres.

See merge request theappsmith/internal-tools-server!341
2020-05-18 13:42:24 +00:00
Shrikant Kandula
c4d3d535a1 Rename isExecuteOnLoad to executeOnLoad.
The `is` prefix apparently makes Spring unhappy.
2020-05-18 12:13:54 +00:00
Shrikant Kandula
c18c344f4b Don't fail after executing a non-SELECT query on Postgres. 2020-05-15 18:13:36 +05:30
Shrikant Kandula
180002a984 Handle errors when destroying stale connections.
This happens when the stale connection is an invalid connection object,
like when if it's created with invalid credentials etc.
2020-05-15 03:26:35 +00:00
Arpit Mohan
4fa254a449 Adding error log message whenever an action execution fails because of invalid datasource 2020-05-14 15:26:05 +05:30
Arpit Mohan
a9580effa7 Using the last value of duplicate headers as that is the behaviour displayed by webclient and other clients as well. 2020-05-14 08:49:06 +05:30
Arpit Mohan
71d8812feb Fixing bug where duplicate headers were being set in the action execution result
Also removing empty headers from being sent to the action
2020-05-14 08:11:24 +05:30
Arpit Mohan
fb9e9fbf4c Request body and header in Action Execution Response 2020-05-14 02:08:46 +00:00
Trisha Anand
5829a92998 Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-server/src/main/java/com/appsmith/server/services/ActionServiceImpl.java
2020-05-13 23:37:31 +05:30
Trisha Anand
9a8bf9dc89 In case the user is not signed in, return a 401 so that the user can be redirected to login by the frontend. 2020-05-13 18:00:03 +00:00
Shrikant Kandula
9c48f42990 Rename ActionExecutionResult.shouldCacheResponse -> isExecutionSuccess. 2020-05-12 18:25:49 +05:30
Arpit Mohan
d2d0805146 Merge branch 'feat/use-unique-name-on-post-datasource' into 'release'
Automatically use a unique name for creating datasources without name.

In the request from frontend for datasource creation, if the data
doesn't have a `name` value, we now set it to an automatically numbered
value and save with that.

See merge request theappsmith/internal-tools-server!333
2020-05-12 12:23:23 +00:00
Shrikant Kandula
b65690ec74 Automatically use a unique name for creating datasources without name.
In the request from frontend for datasource creation, if the data
doesn't have a `name` value, we now set it to an automatically numbered
value and save with that.
2020-05-12 16:05:29 +05:30
Nikhil Nandagopal
5dad85ff3e Update form.json 2020-05-12 09:48:56 +00:00
Arpit Mohan
f4d79ae25b Merge branch 'bug/curl-error-reporting' into 'release'
Report error when cURL command is invalid.

See merge request theappsmith/internal-tools-server!327
2020-05-12 04:12:55 +00:00
Shrikant Kandula
7f4d32e7d4 Report error when cURL command is invalid. 2020-05-12 04:12:55 +00:00
Trisha Anand
963a3388c3 In CI, buidling and packaging ACL branch with a new tag for the deployment. 2020-05-11 21:15:19 +05:30
Shrikant Kandula
f3e448019d Auth mechanism is not added to URI in the MongoPlugin. Fixed now. 2020-05-11 12:16:09 +05:30
Trisha Anand
6cdab92bbe Merge branch 'feature/acl-action-inheritance' into 'feature/acl-spring-object'
Action Permission Inheritance during create.

See merge request theappsmith/internal-tools-server!329
2020-05-08 15:39:36 +00:00
Trisha Anand
b7435e546f Added action inheritance for permissions during create. No update permissions for action added. Fixed the existing test cases to run with the new code.
TODO : Add test cases for action permissions.
2020-05-08 15:39:36 +00:00
Trisha Anand
02de2ea1f6 Removing Arn because its not being used anymore. 2020-05-08 21:08:16 +05:30
Trisha Anand
f7bb87824c Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-server/src/main/java/com/appsmith/server/domains/User.java
2020-05-08 20:57:51 +05:30
Trisha Anand
d7637355fe Create Page always sets the inherited policies from the application. Update Application policy remains to be done. Leaving it as a TODO for now. 2020-05-08 16:32:46 +05:30
Shrikant Kandula
ffc4379a4d Migration to install existing default plugins to existing organizations. 2020-05-08 11:46:13 +05:30
Shrikant Kandula
7673ee49eb Merge branch 'chore/remove-index-annotations' into 'release'
Remove index annotations as they don't accurately reflect actual indexes

See merge request theappsmith/internal-tools-server!322
2020-05-08 01:58:43 +00:00
Shrikant Kandula
b8de4ef659 Remove index annotations as they don't accurately reflect actual indexes 2020-05-08 01:58:43 +00:00
Shrikant Kandula
2e9a94341b Guard against NPE when action is null due to cURL command being invalid. 2020-05-08 01:22:02 +00:00
Trisha Anand
44ce0bbf01 Added baseservice function add and remove policies to an object. This would be used for updating permissions for an object. 2020-05-07 19:39:36 +05:30
Trisha Anand
957116409d Resolved the review comments. Changed the structure of the DTO returned. Added the userPermissions as part of the base domain leading to this field always computed before returning any object to the user. 2020-05-07 10:49:48 +00:00
Trisha Anand
485eb29e03 Added timeout in DslActionDTO which is used to represent actions inside a layout and in turn is used for page load action execution. 2020-05-07 15:06:16 +05:30
Shrikant Kandula
3e2dea8f84 Merge branch 'bug/hide-exception-class-in-plugin-error-message' into 'release'
Hide Exception class details in the Plugin error message.

See merge request theappsmith/internal-tools-server!321
2020-05-05 11:08:38 +00:00
Shrikant Kandula
e99c104fe7 Hide Exception class details in the Plugin error message. 2020-05-05 16:34:09 +05:30
Nikhil Nandagopal
8f95fe22a9 Update form.json 2020-05-05 10:46:58 +00:00
Nikhil Nandagopal
c4f3ccfd8b Update form.json 2020-05-05 10:34:02 +00:00
Shrikant Kandula
bc55baeb1f Merge branch 'feat/add-delete-datasource-perm-existing-groups' into 'release'
Add `delete:datasources` permission to all existing groups.

See merge request theappsmith/internal-tools-server!320
2020-05-05 09:19:40 +00:00
Shrikant Kandula
172be7e7e5 Merge branch 'bug/missing-default-database-name-in-mongo-form' into 'release'
Add missing default database field in Mongo plugin form.

See merge request theappsmith/internal-tools-server!319
2020-05-05 09:06:32 +00:00
Shrikant Kandula
f7f03c5ad7 Add delete:datasources permission to all existing groups. 2020-05-05 13:52:03 +05:30
Shrikant Kandula
57dc2205e2 Add missing default database field in Mongo plugin form. 2020-05-05 13:39:03 +05:30
Arpit Mohan
77b4ef9a00 Adding a docker image tag for the master commit. This will allow us to revert to previous versions of the image (if required) 2020-05-05 12:54:46 +05:30
Trisha Anand
c43218eea6 Merge branch 'release' into feature/acl-spring-object 2020-05-01 17:05:43 +05:30
Trisha Anand
1f25aac3a5 Untested mock get applications for home page. 2020-05-01 16:56:05 +05:30
Shrikant Kandula
8ea8fb295e Handle 500 when JSON body doesn't make up an object data type. 2020-04-30 13:32:24 +00:00
Trisha Anand
bc99ce9244 Merge branch 'release' into feature/acl-spring-object 2020-04-30 17:50:32 +05:30
Shrikant Kandula
c8e8c9136d Check the value of Content-Type before trying to make an HTTP call. 2020-04-30 16:50:17 +05:30
Shrikant Kandula
50a8bad19e Merge branch 'bug/restapi-test-without-port' into 'release'
Fix testing of REST API datasources fails when no port is set.

See merge request theappsmith/internal-tools-server!307
2020-04-30 06:02:28 +00:00
Shrikant Kandula
be7f1c0a81 Fix testing of REST API datasources fails when no port is set. 2020-04-30 06:02:28 +00:00
Shrikant Kandula
fc1b73773e More readable plugin names. 2020-04-29 11:49:06 +00:00
Shrikant Kandula
86669fa7e4 Merge branch 'feat/updated-plugin-form-configs' into 'release'
Update form.json for datasource configurations.

See merge request theappsmith/internal-tools-server!314
2020-04-29 10:59:46 +00:00
Shrikant Kandula
06e85c308f Update form.json for datasource configurations. 2020-04-29 16:25:30 +05:30
Shrikant Kandula
7dfa1bd8ca Add deletedAt field into the unique index of datasources and pages. 2020-04-29 16:16:09 +05:30
Trisha Anand
8db71d00a9 Merge branch 'release' into feature/acl-spring-object 2020-04-29 15:49:57 +05:30
Trisha Anand
89f179397f Create action with template id was leading to mock response. Removing this to allow for copy of actions which have been created using 3p API 2020-04-29 10:19:01 +00:00
Trisha Anand
0b496e1ecc Untested add policies to an object code. 2020-04-29 15:03:56 +05:30
Shrikant Kandula
079e185ed2 Add allowUserDatasources to plugins to hide from create datasource UI. 2020-04-28 12:44:56 +00:00
Trisha Anand
2d1fe9d8b4 Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-interfaces/src/main/java/com/appsmith/external/models/SSHPrivateKey.java
#	appsmith-server/src/main/java/com/appsmith/server/filters/AclFilter.java
#	appsmith-server/src/main/java/com/appsmith/server/services/CurlImporterService.java
#	appsmith-server/src/test/java/com/appsmith/server/services/CurlImporterServiceTest.java
2020-04-28 18:13:06 +05:30
Shrikant Kandula
23bd4e1722 Add NO_SSL option to SSL authType to turn off SSL explicitly. 2020-04-28 12:31:34 +00:00
Trisha Anand
219a594a4c URL decoding the name before searching for it. 2020-04-28 16:31:19 +05:30
Trisha Anand
e99ede9d86 Minor comments added for TODOs 2020-04-28 16:18:28 +05:30
Shrikant Kandula
89d04f11e7 Merge branch 'bug/show-password-in-datasource-form' into 'release'
Show passwords in datasource forms.

See merge request theappsmith/internal-tools-server!308
2020-04-28 09:34:46 +00:00
Shrikant Kandula
b092692922 Merge branch 'bug/npe-if-opa-not-ready' into 'release'
Fix NPE when accessing services before OPA is ready.

See merge request theappsmith/internal-tools-server!300
2020-04-28 09:22:05 +00:00
Shrikant Kandula
6fd23f38b8 Merge branch 'bug/curl-parser' into 'release'
Fix cURL import bugs with new cURL command parser

See merge request theappsmith/internal-tools-server!306
2020-04-28 09:09:03 +00:00
Shrikant Kandula
1dbb98e1e8 Fix cURL import bugs with new cURL command parser 2020-04-28 09:09:03 +00:00
Shrikant Kandula
0a05036f9f Show passwords in datasource forms. 2020-04-28 11:12:03 +05:30
Trisha Anand
82eb02b88c Invite user to application as viewer or admin works now works in setting the correct permissions for the application. Next step is to set the correct permissions for the pages. 2020-04-27 18:19:28 +05:30
Shrikant Kandula
2adad6b3b5 Merge branch 'bug/spread-operator-in-mustache-templates' into 'release'
Fix page-load action not being picked up when using the spread operator.

See merge request theappsmith/internal-tools-server!299
2020-04-27 08:11:22 +00:00
Shrikant Kandula
ce930181cd Fix page-load action not being picked up when using the spread operator. 2020-04-27 08:11:21 +00:00
Shrikant Kandula
d0e47ea2ea Merge branch 'feat/delete-datasources-api' into 'release'
Add delete service operation for datasources.

See merge request theappsmith/internal-tools-server!305
2020-04-27 08:01:16 +00:00
Shrikant Kandula
090e00ee13 Add delete service operation for datasources. 2020-04-27 08:01:16 +00:00
Shrikant Kandula
16f2df38f1 Merge branch 'bug/npe-in-appsmith-exception' into 'release'
Fix potential NPE in AppsmithException. Also removed unused methods.

See merge request theappsmith/internal-tools-server!298
2020-04-27 07:51:18 +00:00
Shrikant Kandula
a96b1005ff Fix potential NPE in AppsmithException. Also removed unused methods. 2020-04-27 07:51:18 +00:00
Trisha Anand
2fa879fbd4 Minor code cleanup 2020-04-24 15:15:39 +05:30
Trisha Anand
6ee1a58a9a Added endpoint in marketplace to fetch provider by id if required 2020-04-23 19:02:14 +05:30
Shrikant Kandula
e0880c7d31 Support separate default database for MongoPlugin, besides authDatabase. 2020-04-23 11:09:02 +00:00
Trisha Anand
a8f32d8b2a Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-server/src/main/java/com/appsmith/server/services/MarketplaceService.java
2020-04-23 14:45:40 +05:30
Nikhil Nandagopal
18acf373f5 Update form.json 2020-04-23 06:08:25 +00:00
Trisha Anand
dacc6a5c9e The header key should be matched to all possible variations : Content-Type, content-type, etc. This fixes that. 2020-04-22 18:13:31 +05:30
Trisha Anand
0c76b8f394 Minor comments 2020-04-22 17:27:55 +05:30
Trisha Anand
11cb6f6c56 Refactored some code which was being repeated. 2020-04-22 16:59:01 +05:30
Shrikant Kandula
a8842e962b Fix NPE when accessing services before OPA is ready. 2020-04-22 08:41:40 +05:30
Shrikant Kandula
1a19a9b698 Merge branch 'bug/mongodb-multiple-endpoints' into 'release'
Support SSL connections with self-signed from MongoPlugin.

See merge request theappsmith/internal-tools-server!297
2020-04-21 13:34:18 +00:00
Shrikant Kandula
3ad98a4367 Support SSL connections with self-signed from MongoPlugin. 2020-04-21 18:53:30 +05:30
Trisha Anand
3148dec921 Search endpoint is now implemented with mock response deleted. It currently does exact name searches in providers by hitting the marketplace service. 2020-04-21 12:42:11 +00:00
Shrikant Kandula
3dfc62034f Merge branch 'feature/datasource-form-config-apis' into 'release'
Add form config JSONs for individual plugins and an API for GETting them.

See merge request theappsmith/internal-tools-server!295
2020-04-21 12:23:23 +00:00
Shrikant Kandula
58c0f94508 Add form config JSONs for individual plugins and an API for GETting them. 2020-04-21 17:42:14 +05:30
Shrikant Kandula
9f2427f1df Merge branch 'bug/mongo-plugin-test-on-unavailable-host' into 'release'
Fix MongoPlugin test returning success even when host is unavailable.

See merge request theappsmith/internal-tools-server!294
2020-04-21 10:22:50 +00:00
Shrikant Kandula
d94a231934 Fix MongoPlugin test returning success even when host is unavailable. 2020-04-21 15:39:44 +05:30
Shrikant Kandula
5c703d765e Merge branch 'bug/invalid-port-in-restapi-test-gives-500' into 'release'
Fix 500 on invalid port sent for restapi plugin test request.

See merge request theappsmith/internal-tools-server!292
2020-04-21 08:23:03 +00:00
Trisha Anand
4cde1413fc Provider credential steps is not a write only property. It must be readable. 2020-04-21 13:45:28 +05:30
Trisha Anand
504a165411 Added a few comments to ease understanding 2020-04-21 13:44:19 +05:30
Shrikant Kandula
a49ef95d5b Fix 500 on invalid port sent for restapi plugin test request. 2020-04-21 13:40:12 +05:30
Trisha Anand
d7d31a43da Fixed compile time error. 2020-04-20 18:30:47 +05:30
Trisha Anand
373c9ac738 Code formatting corrected. 2020-04-20 18:17:25 +05:30
Trisha Anand
6be0b7ae23 Merge branch 'release' into feature/acl-spring-object
# Conflicts:
#	appsmith-server/pom.xml
#	appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog.java
#	appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepositoryImpl.java
#	appsmith-server/src/main/java/com/appsmith/server/services/LayoutActionServiceImpl.java
#	appsmith-server/src/test/java/com/appsmith/server/services/OrganizationServiceTest.java
2020-04-20 18:13:55 +05:30
Shrikant Kandula
02a384698b Merge branch 'bug/missing-response-meta-in-test-api' into 'release'
Fix missing `responseMeta` in response for /datasources/test endpoint.

See merge request theappsmith/internal-tools-server!291
2020-04-20 12:40:42 +00:00
Shrikant Kandula
94b166b3cb Fix missing responseMeta in response for /datasources/test endpoint. 2020-04-20 17:40:42 +05:30
Trisha Anand
1e000c295f In case the children tag exists in the DSL but is empty, we shouldnt try to extract widget names in that scenario. 2020-04-20 13:58:25 +05:30
Shrikant Kandula
654f1fa61e Merge branch 'bug/missing-auth-type-throws-500' into 'release'
Fix 500 error when authentication.type is not provided in request body.

See merge request theappsmith/internal-tools-server!288
2020-04-20 04:58:57 +00:00
Shrikant Kandula
e0add48bd6 Fix mustache parsing fail when keys have double-quotes or backslashes. 2020-04-17 19:26:42 +05:30
Shrikant Kandula
ee556b729c Fix 500 error when authentication.type is not provided in request body. 2020-04-17 14:35:53 +05:30
Arpit Mohan
46879fae2b Committing the plugin.properties to let us run the code from IntelliJ 2020-04-17 13:35:07 +05:30
Shrikant Kandula
65d4c0e3e5 Fix NPE when invalids in Datasource is not initialized yet. 2020-04-17 13:17:05 +05:30
Shrikant Kandula
08b7f51d5d Datasource API cleanup and better error reporting 2020-04-17 07:27:56 +00:00
Trisha Anand
133eaa7475 Setting the organization id in case of missing plugin. This was being skipped over earlier. 2020-04-16 22:19:35 +05:30
Trisha Anand
801cd59c14 Merge branch 'bug/marketplce-fixes' into 'release'
Updated Rapid API key. Also, now URL Encoding the route parameters as well.

See merge request theappsmith/internal-tools-server!285
2020-04-16 15:59:56 +00:00
Trisha Anand
8aaff70ef0 Updated Rapid API key. Also, now URL Encoding the route parameters as well. 2020-04-16 21:13:37 +05:30
Shrikant Kandula
822afdc064 Rich datasource support for MongoPlugin 2020-04-16 08:21:40 +00:00
Shrikant Kandula
6d5a1b9dd1 Fix mustache key parsing failing due to escaping in JSON serialization. 2020-04-15 10:24:12 +00:00
Shrikant Kandula
2dbf9d1c6b Test API for data sources 2020-04-15 10:02:09 +00:00
Trisha Anand
684edfe406 Because of db migrations, the older provider ids saved in actions are no longer available. This leads to api pane not loading. Removing the error to return an empty provider so that the api pane can be loaded. 2020-04-14 14:18:04 +05:30
Trisha Anand
03b8de3300 If an action is being created from 3P template, since the marketplace service has been migrated, hit the marketplace server to fetch provider instead of local ProviderService. 2020-04-13 23:08:12 +05:30
Trisha Anand
b64ae7ee5c First cut of code changes for update action where after the action is saved, the page layout is updated. 2020-04-13 08:57:57 +00:00
Trisha Anand
3692b4fa3e Stupid coding error of using OR instead of AND.
Also Mono.zipping the update Action and update Layout instead of this.then because in some optimization done by Spring, one mono doesnt end up emitting.
2020-04-13 08:49:30 +00:00
Shrikant Kandula
01dd54eaea Merge branch 'feature/enable-ssh-boolean-datasource' into 'release'
Add a boolean field for enabling/disabling SSH Proxy on datasources.

See merge request theappsmith/internal-tools-server!271
2020-04-13 07:22:29 +00:00
Shrikant Kandula
781eec0d24 Add a boolean field for enabling/disabling SSH Proxy on datasources. 2020-04-13 07:22:29 +00:00
Trisha Anand
a82070648a Slug should be set by the application instead of insisting on the slug being present in the organization object. Added to the create valid organization test case to assert that the slug must exist. 2020-04-11 17:18:02 +05:30
Shrikant Kandula
abd9235360 Richer plugin validations 2020-04-10 09:59:50 +00:00
Shrikant Kandula
42d0060ecd Upgrade pf4j-spring to 0.6.0 so we can consistently use pf4j 3.2.0. 2020-04-09 19:55:58 +05:30
Shrikant Kandula
91dd8bf5c3 Fix old enums being used in Postgres plugin. Build failed because of this. 2020-04-08 12:45:18 +00:00
Shrikant Kandula
edf4043430 Merge branch 'bug/datasource-enum-mismatches' into 'release'
Fix Datasource data structure to be inline with UI

See merge request theappsmith/internal-tools-server!268
2020-04-08 12:32:57 +00:00
Shrikant Kandula
1b75be0fe3 Fix Datasource data structure to be inline with UI 2020-04-08 12:32:56 +00:00
Shrikant Kandula
06dd5fccae Merge branch 'bug/duplicate-key-error-on-app-name' into 'release'
Fix: Duplicate key error when reusing the name of a deleted application

See merge request theappsmith/internal-tools-server!264
2020-04-08 12:09:41 +00:00
Shrikant Kandula
0ad15b4cb6 Fix: Duplicate key error when reusing the name of a deleted application 2020-04-08 12:09:41 +00:00
Shrikant Kandula
065f0f1c3d Suppress redundant-if warning in datasource validation method.
This method can be simplified, but is more readable this way.
2020-04-08 11:50:58 +00:00
Shrikant Kandula
c8dee3f279 Add Spring application property to enable/disable Rollbar.
It is enabled by default.
2020-04-08 11:23:28 +00:00
Trisha Anand
16742403ec Merge branch 'bug/restapi-data-buffer-limit-exception' into 'release' 2020-04-08 12:11:53 +05:30
Trisha Anand
f657e2f2d2 newUser is getting written over and the current organization id before the createUser call is not preserved. Extracting this information before calling createUser lets us set the invited organization id as the newly created user's current organization id. 2020-04-08 12:09:52 +05:30
Shrikant Kandula
ff6b0ce6bc Increase restapi client buffer size from 256KB to 10MB. 2020-04-07 11:20:46 +00:00
Shrikant Kandula
b8adb96608 The pf4j-spring dependency should be declared before appsmith-interfaces. 2020-04-06 13:44:22 +05:30
Shrikant Kandula
c12cbe0693 Merge branch 'fix-enum-put-not-working' into 'release'
Don't nest into Enum properties when copying bean properties.

See merge request theappsmith/internal-tools-server!258
2020-04-06 07:27:24 +00:00
Shrikant Kandula
6d24b996e1 Don't nest into Enum properties when copying bean properties. 2020-04-06 07:27:24 +00:00
Trisha Anand
69d32de888 Merge branch 'bug/delete-duplicate-dependency' into 'release'
Remove the pf4j dependency's duplicate from pom.xml

See merge request theappsmith/internal-tools-server!253
2020-04-06 07:22:12 +00:00
Trisha Anand
2fd7b3378b This change handles the new DTO received from Marketplace Service over the network. The new DTO contains list of providers and total count of providers in the given category. If no category is mentioned, Business Software is assumed to be the category being fetched. 2020-04-03 22:59:38 +05:30
Trisha Anand
5911234276 To ensure that special characters like "\n", "\t", etc are preserved in the request json body, convert the json string into object. 2020-04-03 14:27:10 +00:00
Shrikant Kandula
00da41c7c7 Remove duplicate presence of pf4j-spring dependency. 2020-04-03 13:10:10 +05:30
Shrikant Kandula
e287583cfe Don't include stack traces in plugins migrations. 2020-04-03 06:29:46 +00:00
Trisha Anand
063df9d5ed Merge branch 'bug/marketplace-client' into 'release'
Marketplace Client bug fixes

See merge request theappsmith/internal-tools-server!252
2020-04-02 16:14:38 +00:00
Shrikant Kandula
e5fd048205 New parser for extracting interpolations from Mustache templates 2020-04-02 13:24:55 +00:00
Trisha Anand
4760bab964 Fixed the subscribe provider API that is being hit. 2020-04-02 18:24:03 +05:30
Trisha Anand
2e09f7923c Merge branch 'release' of gitlab.com:theappsmith/internal-tools-server into release 2020-04-02 17:17:52 +05:30
Trisha Anand
dcb74a7be7 Updated the marketplace URL after deploying of marketplace service 2020-04-02 17:17:19 +05:30
Arpit Mohan
b7b7328c3f Merge branch 'release' into feature/acl-spring-object 2020-04-02 13:53:31 +05:30
Arpit Mohan
f165f0b772 Setting the active profile as environment in Rollbar configuration
This will help us segment errors from different environments more easily in the Rollbar UI
2020-04-02 13:49:53 +05:30
Arpit Mohan
01c4a2cc8b Updating the redis credentials for staging because Heroku keeps changing it 2020-04-02 13:22:11 +05:30
Arpit Mohan
1b18c4d6b3 Writing the initial test and implementation for the application user invite flow.
The permissions are being translated to the application domain. Need to also be translated to the page & action domain.
2020-04-02 13:21:01 +05:30
Trisha Anand
f882ffcdf3 Fetching the providers from the Marketplace using webclient. Introduced a temporary end point to support the new source for Providers 2020-04-01 18:53:39 +00:00
Trisha Anand
f51751aba8 Merge branch 'bug/rest-api-post-body' into 'release'
Fixing the double escaping to a single escape.

See merge request theappsmith/internal-tools-server!249
2020-04-01 11:54:16 +00:00
Trisha Anand
8ef59460af Fixing the double escaping to a single escape. 2020-04-01 17:20:07 +05:30
Shrikant Kandula
1f524827b9 Datasource CRUD APIs 2020-04-01 08:50:36 +00:00
Arpit Mohan
4927e7b8d8 Adding a custom SecurityContextFactory to instantiate Mock anonymous user in the test cases.
Now we have a lot of flexibility around the SecurityContext during testing. We can instantiate any type of mock users bearing different roles & permissions.
2020-04-01 10:20:04 +05:30
Arpit Mohan
995bfd0bbd * Adding CustomRepository interfaces and implementations to all the domain objects in the classpath
* Adding generic get(Multivalue<String, String> params) implementation to the BaseService. Now all the domain obejcts can simply leverage this base implementation for get queries out of the box for all the fields.

* IMP: For some reason, the query by example has stopped working across the board. Even the super implementation in SimpleReactiveMongoRepository doesn't work. No idea why this is happening. For the time being, have moved to Criteria queries for the get request.
2020-04-01 10:00:18 +05:30
Trisha Anand
e4ab1635cc Double escaping java to support "\n" to be conserved through the proxy. 2020-03-30 15:11:25 +05:30
Arpit Mohan
9f9098268b Fixing the user service test cases 2020-03-29 17:06:20 +05:30
Arpit Mohan
036bd3a392 Fixing the test cases and SeedMongoData
Only userServiceTest is failing now.
2020-03-28 23:07:31 +05:30
Arpit Mohan
381f2f6b4f Resolving merge conflicts from release branch 2020-03-28 21:52:35 +05:30
Arpit Mohan
9ce82bdcb6 Fixing json serialization issue for new line and JSON bodies.
Now we escape all the bindings once on the server to ensure that the unescaping that Spring did is reversed.
2020-03-28 13:48:41 +00:00
Shrikant Kandula
35a2722305 Fix add-slug migration messing up existing slugs, if any.
Migrations should be more resilient in regards to existing data.
2020-03-28 11:15:50 +00:00
Shrikant Kandula
31fa5a66f1 Use mongock for migrations.
Mongock is a fork of Mongobee with a better integration with
Spring. It also does not suffer from trying to access the
`system.indexes` collection.
See https://github.com/mongobee/mongobee/pull/87.
2020-03-28 10:08:11 +05:30
Shrikant Kandula
0947ddcd0f Remove findByName method for Organization domain.
Organization names are no longer unique, so this method
doesn't make as much sense. The `findBySlug` should serve
in it's place.
2020-03-27 14:52:25 +00:00
Trisha Anand
89215fab43 In case of the erroneous state of no DSL, don't allow refactor names. 2020-03-25 18:19:27 +05:30
Trisha Anand
a7cceaf0f1 After adding a rapid api template, the action created was being returned. This has been extended so that the transient fields required for UI are also set before returning the created action. 2020-03-24 19:15:02 +00:00
Trisha Anand
c12cb88265 Added transient field plugin id to set in action everytime its read. 2020-03-24 17:13:30 +05:30
Shrikant Kandula
60e9a1f18e Show Appsmith as the From name in sent emails. 2020-03-19 18:29:13 +05:30
Arpit Mohan
d7ec1f3c52 Merge branch 'release' into feature/acl-spring-object 2020-03-19 13:06:20 +05:30
Arpit Mohan
135280abaa Moving the propertyPane config to generic JSONObject
This ensures that the client can change the config at will without depending on the platform team to add the field to the POJO.

Also deleting redundant classes and controllers for propertyPane and Widget. These are no longer required and can be removed from the codebase.
2020-03-19 12:34:24 +05:30
Arpit Mohan
4725421cba Merge branch 'release' into feature/acl-spring-object 2020-03-19 11:54:36 +05:30
Arpit Mohan
d384dac7ec Minor code clean up 2020-03-19 00:54:04 +05:30
Arpit Mohan
7316a77f42 Moving ActionRepository to the new custom repository format 2020-03-19 00:40:19 +05:30
Arpit Mohan
c5ac557961 Fixing the test cases for pageService and LayoutService
Also adding a helper query function in BaseAppsmithRepository that will make the code much cleaner for custom repository functions.
2020-03-19 00:24:30 +05:30
Arpit Mohan
9bf7bab85b Moving organization repository functions to the custom class.
Also fixing the SeedMongoData file with the seed data to correspond to the changes made in the OrganizationRepository. We will default to using the mongoTemplate in the SeedMongoData file in the future so that we don't have to deal with ACL when we are simply populating the DB.
2020-03-18 22:56:32 +05:30
Trisha Anand
44d5dccbbb Rest API and Rapid api plugin url encode the query parameters. The Providers returned are sorted by sortOrder in ascending order 2020-03-18 20:35:50 +05:30
Arpit Mohan
fc6f225935 Adding user policy to manage organization and fixing the organization create flow to ensure the right permissions are set
Also adding test case for get applications. Now we will fetch all applications that the user has read permissions to by default. It's not dependent on the organization that they are a part of.
2020-03-18 16:09:47 +05:30
Arpit Mohan
c06e16db83 Making changes to get the page tests to pass. Also minor improvements to LayoutServiceTest 2020-03-18 14:47:00 +05:30
Trisha Anand
0b7b4716db Credential steps should only be written but not read. 2020-03-18 14:40:02 +05:30
Trisha Anand
fad606a156 Updated Provider to include fields to help with display and sort order 2020-03-18 14:21:38 +05:30
Trisha Anand
015713f409 1. Add to Page changes : In case the sample response is null, don't set the cached response for the action.
2. Add to Page changes : Documentation object has been added in Action to handle the extra Template documentation for actions that have been imported from 3p marketplace
3. Added basic structure for rapid api plugin by copy pasting the rest api plugin
2020-03-17 18:19:22 +00:00
Arpit Mohan
19b0d53c22 Fixing the tests for page creation. Also adding policies when a new page is created. 2020-03-17 18:47:45 +05:30
Shrikant Sharat Kandula
3679613561 Use updated short error messages. 2020-03-17 12:02:43 +00:00
Arpit Mohan
1f35bd6a07 Adding the policy hierarchy graph and the lateral policy graph
These graphs help us map policies that are inherited from the parent and also lateral policies that are assigned to the users given that the user has a particular permission. Currently, the hierarchy has been defined for org & application. Need to cascade it to more documents such as pages & actions.
2020-03-16 10:46:28 +05:30
Trisha Anand
edd640a722 isJsConvertible is a boolean, not a string 2020-03-13 15:26:15 +05:30
Trisha Anand
89a9baebac Added label isJsConvertible to the config 2020-03-13 15:25:20 +05:30
Arpit Mohan
a892ee90b5 Merge release branch 2020-03-13 12:47:16 +05:30
Trisha Anand
1d404cb9bf Get all categories now return Mono of List instead of Flux. 2020-03-12 20:01:43 +05:30
Trisha Anand
7c1434e274 Merge branch 'feature/action-provider-fields' into 'release'
Transient Provider fields added in Action which are filled before an Action is read.

See merge request theappsmith/internal-tools-server!225
2020-03-12 13:21:03 +00:00
Trisha Anand
2543be8668 Provider fields added with the transient property which is set for Actions when they are read. 2020-03-12 18:46:30 +05:30
Arpit Mohan
cc676e3393 Merge branch 'feature/mono-cache' into 'release'
Correcting the writeKey for Segment in Staging

Also adding Mono.cache in the user invite flow to ensure that the same Mono is not executed multiple times.

See merge request theappsmith/internal-tools-server!224
2020-03-12 11:18:22 +00:00
Arpit Mohan
0c5fc27450 Correcting the writeKey for Segment in Staging
Also adding Mono.cache in the user invite flow to ensure that the same Mono is not executed multiple times.
2020-03-12 16:44:31 +05:30
Trisha Anand
6050b370d4 1. Add to Page changes : In case the sample response is null, don't set the cached response for the action.
2. Add to Page changes : Documentation object has been added in Action to handle the extra Template documentation for actions that have been imported from 3p marketplace
3. Added basic structure for rapid api plugin by copy pasting the rest api plugin
2020-03-11 19:31:21 +00:00
Trisha Anand
5927271c71 Merge branch 'feature/rapid-api-plugin' into 'release'
Partial Rapid API Plugin + Minor bug fix.

See merge request theappsmith/internal-tools-server!218
2020-03-11 17:16:15 +00:00
Trisha Anand
b17fae8e44 1. Add to Page changes : In case the sample response is null, don't set the cached response for the action.
2. Add to Page changes : Documentation object has been added in Action to handle the extra Template documentation for actions that have been imported from 3p marketplace
3. Added basic structure for rapid api plugin by copy pasting the rest api plugin
2020-03-11 17:16:15 +00:00
Trisha Anand
668b91665d 1. Added an endpoint to get all categories.
2. When provider is being fetched without a category, only Business Software category providers are returned.
2020-03-11 13:03:48 +00:00
Arpit Mohan
2da4727cbd Removing document version from all the Mongo documents.
Also adding Origin header to the user invite flow so that we can send the correct links to the user
2020-03-11 18:18:10 +05:30
Arpit Mohan
68fd2f21d9 Updating the communication emails to users for signup, forgot password and invite user flows
Also adding the Origin header to the BaseController create function. This is required by the user creation flow in order to customize the links in the email. For most of the controllers overriding the BaseController, the request header parameter is non-mandatory and can be skipped for testing or otherwise.
2020-03-10 18:58:28 +05:30
Trisha Anand
580bfc76c7 Removing the soft delete right now. Due to the indexing this would lead to duplicate key errors. The index needs to be removed and the allowed naming should be done at application level. 2020-03-09 14:20:43 +05:30
Trisha Anand
e5f8f2bea9 Segment Events Fixed + Soft delete actions 2020-03-09 14:20:32 +05:30
Arpit Mohan
35b0c22334 Adding /profile endpoint to return enhanced user profile to the client. 2020-03-06 06:17:00 +00:00
Arpit Mohan
40964c3dfe WIP commit of trying to create an inheritance structure with permissions.
Also, moving all permissions to READ & MANAGE. Not maintaining separate permissions to create, update & delete.
2020-03-06 09:29:45 +05:30
Arpit Mohan
1475d9124a Fixing all the test cases for OrganizationService
We still need to add a lot more test cases to ensure that no functionality has broken. But this is a start in the right direction.
2020-03-05 19:35:24 +05:30
Arpit Mohan
c9a885d605 Modifying the create application flow in ApplicationPageService. All the tests in ApplicationService are passing
In order to create an application with valid permissions, we copy the relevant permissions from the organization of the user. This involves changes to the organizationService and OrganizationRepository as well.
2020-03-05 18:53:40 +05:30
Arpit Mohan
c813678f49 Adding the AclPermission enum to track all possible permissions globally
Also moving the argument AclPermission to the custom Repository interface level. This is to ensure that all the service functions can invoke the same repository function with different permissions based on their requirements.
2020-03-05 15:33:41 +05:30
Arpit Mohan
c5e8f3bef4 Removing unnecessary and extra code in AclFilter, MongoAspect and CustomWebExpressionHandler 2020-03-04 19:12:34 +05:30
Arpit Mohan
243376642b Deleting the unnecessary annotations and aspects 2020-03-04 19:02:24 +05:30
Arpit Mohan
f47e7eb882 Adding ACL policy filters to CustomApplicationRepository functions 2020-03-04 18:57:46 +05:30
Arpit Mohan
0914acdca6 Adding default principal for anonymous Users in SecurityConfig
Also, hard-coding the document fields in BaseRepositoryImpl criteria queries.
2020-03-04 18:57:46 +05:30
Arpit Mohan
7019bae082 Adding policy to the document object instead of the user
The login has broken and all users are being treated as un-authenticated users
2020-03-04 18:57:46 +05:30
Arpit Mohan
a1ee6d9508 Adding querydsl properties instead of hardcoded names 2020-03-04 18:57:46 +05:30
Arpit Mohan
3a1673dfca Adding QueryDsl to the appsmith-server and appsmith-interfaces modules
This will generate the annotated classes so that we can refer to the fields easily and scalably.
2020-03-04 18:57:46 +05:30
Arpit Mohan
125982dabf Adding the ARN object and parsing it for user login and while checking permissions in PreAuthorize & custom repo implementations 2020-03-04 18:57:46 +05:30
Arpit Mohan
e078382b94 Adding the user policy object that has permissions for ARN objects.
Now we need to parse the ARN and match it to the policy in the PreAuthorize & Custom repository functions.
2020-03-04 18:57:46 +05:30
Arpit Mohan
bd5424095a Adding default implementations for a few functions which filter by ACL clause.
This is present in the BaseRepositoryImpl. In this manner, we can add default conditions to all the basic JPA queries. Now we only need to figure out how to intercept the custom queries to add user details into.
2020-03-04 18:57:46 +05:30
Arpit Mohan
5b09427b6c Removing the aspect and trying to implement the application repository directly 2020-03-04 18:57:46 +05:30
Arpit Mohan
29ae5fd360 Adding default implementation for applicationrepository to test 2020-03-04 18:57:46 +05:30
Arpit Mohan
63f4056a8a Another WIP commit.
At the moment, we cannot fetch the user from securityContext in the SoftDeleteMongo Query Lookup
2020-03-04 18:57:46 +05:30
Arpit Mohan
d5ed147111 Getting the AclAspect to work for both Mono & Flux methods.
This is done by checking the return type of the function via the joinPoint method signature
2020-03-04 18:57:46 +05:30
Arpit Mohan
bd1c390402 Allowing user to define multiple AclPermissions for a given permission
Also adding proper Acl permissions on ApplicationService and PageService functions
2020-03-04 18:57:46 +05:30
Arpit Mohan
9f3197792a WIP Commit to save the dev state 2020-03-04 18:57:46 +05:30
Arpit Mohan
f53a444635 Adding sessionId to the MDC logging to make debugging simpler 2020-03-04 18:16:12 +05:30
Trisha Anand
0cba85c95b Filter providers by category added. 2020-03-04 15:24:14 +05:30
Trisha Anand
f97053a314 Marketplace GET Controller & Add an action/template to current page 2020-03-04 07:50:54 +00:00
Trisha Anand
65ceb24fcf Merge branch 'hotfix/curl-parser-test' into 'release'
Fixing the curl parser test. Required setting a MockBean for pluginExecutor...

See merge request theappsmith/internal-tools-server!208
2020-03-02 09:07:33 +00:00
Trisha Anand
6b5faa6218 Added more detail to the invalid action error to pin point which action is invalid at least in the logs. 2020-03-02 14:34:48 +05:30
Arpit Mohan
d239f25697 Fixing the curl parser test. Required setting a MockBean for pluginExecutor bean and adding RestTemplateExecutor to the SeedMongoData file.
Also moving the plugin search in CurlImporterService to packageName instead of just name.
2020-02-29 10:05:10 +05:30
Arpit Mohan
2ad6d3f11b Adding test cases in ActionService for some create Action workflows 2020-02-26 12:46:10 +05:30
Arpit Mohan
971c1c3c24 Fixing the spring data auditable issue by creating a dummy embedded Datasource object in Action
This is to ensure that setting the createdAt nad updatedAt properties by spring-data will still succeed even if the client doesn't provide us with the datasource details.
2020-02-26 12:45:07 +05:30
Arpit Mohan
249bbbde39 Adding the field shouldCacheResponse to the ActionExecutionResult to make the response caching generic across various plugins 2020-02-25 11:36:02 +00:00
Arpit Mohan
a835c84582 Merge branch 'feature/embedded-datasource' into 'release'
Creating an embedded datasource for the action

Now the user can create an embedded datasource as well as a saved datasource for the action. 

This MR also fixes the import for a curl command by setting defaults when an action is created via the curl command. For now, the curl command only accepts short flags and not the long form flags.

See merge request theappsmith/internal-tools-server!204
2020-02-25 08:54:16 +00:00
Trisha Anand
609045747b Creating an embedded datasource for an action.
Also setting defaults for an action when created via a curl command.
2020-02-25 08:54:16 +00:00
Arpit Mohan
3020af632b When deleting a page, also remove it from the application page cache.
This fixes the bug where the application could not be published because it assumed a page existed when that page had been deleted.
2020-02-25 11:26:41 +05:30
Arpit Mohan
6a93b948b7 Increasing the request buffer size to 5 MB in the default application.properties file
This is required for file uploading widgets to be able to successfully upload files.
2020-02-24 14:30:11 +05:30
Arpit Mohan
786aca059e Revert "Merge branch 'feature/embedded-datasource' into 'release'"
This reverts commit 35b49833615d88bc484207670b8ddf645f70d1ad, reversing
changes made to 29bee80c426b4c469bf8e774b7febf4f63b196b4.
2020-02-24 11:31:58 +05:30
Arpit Mohan
df2d7d2b3d Increasing the maximum buffer size for requests to 5 MB 2020-02-24 10:53:45 +05:30
Trisha Anand
a3cd991fd3 Merge branch 'feature/embedded-datasource' into 'release'
Embedding datasource inside Action to get CURL Importer to work

See merge request theappsmith/internal-tools-server!200
2020-02-21 07:19:47 +00:00
Trisha Anand
a7881935da This fixes the bug during refactor of name of a widget/action. This bug is recreatable if in the page there is an action with no jsonPathKeys. Handled the null pointer exception by first checking for the null pointer. 2020-02-21 07:19:46 +00:00
Trisha Anand
6109bd4b6c Added valueOptions to store the permitted values for a key (which is being sent by rapidApi today) 2020-02-21 11:16:07 +05:30
Trisha Anand
977bac62dc Added hashValue and scraperid to Template 2020-02-20 19:18:48 +05:30
Trisha Anand
1795be3c76 Added route parameters to action configuration to handle the scenario of rapid api putting variables in the path 2020-02-19 17:47:26 +05:30
Trisha Anand
8ea5d6663c Making the Templates searchable by name, provider id, versionId, and Id 2020-02-19 14:07:49 +05:30
Trisha Anand
634a625906 1. Adding provider plan subscribed to and list of all the plans to Provider
2. Curl Importer should call create action instead of saving it directly so that all the defaults can be set up properly.
2020-02-17 10:08:35 +00:00
Trisha Anand
78bae54f55 Instead of using the latest docker image, using a particular docker image to overcome the latest docker bbuild being brocken issue. 2020-02-17 10:44:18 +05:30
Trisha Anand
62fba19011 Checking if the docker packaging step in CI/CD pipeline has fixed itself over the weekend. 2020-02-17 10:36:14 +05:30
Trisha Anand
88e1ce26e2 Removing docker packaging from release branch because it's getting stuck in Gitlab CI
Don't know why this is happening
2020-02-14 18:23:46 +05:30
Arpit Mohan
f76d40482d Merge branch 'release' of gitlab.com:theappsmith/internal-tools-server into release 2020-02-14 14:23:13 +05:30
Arpit Mohan
a05adf4293 Adding checks to ensure that we can remove the oauth2 allowed domains from the properties file
We now create another list from the value provided in the properties file. All checks in the codebase are performed against this list. This ensures that there are no NPE and exceptions when the property oauth2.allowed-domains is removed from the properties file.
2020-02-14 14:22:59 +05:30
Trisha Anand
96cd15e9ce Extended the ActionConfiguration to accept rest api body in the form of key-value for form-data input. Also extended Property to include fields which would help the user in configuring the API (like description, mandatory, etc.) 2020-02-14 13:18:26 +05:30
Trisha Anand
2e11a5c2d5 Added datasource configuration to the provider to support the provider level configurations in rapid api 2020-02-14 06:32:34 +00:00
Arpit Mohan
23641a7e9a Removing Google Auth domain restrictions for all environments
In the SaaS version, we want folks from all domains to be able to sign up to the platform
2020-02-13 10:03:25 +05:30
Arpit Mohan
b28073cd4b Merge branch 'feature/acl-unauthorized-response' into 'release'
Correcting the error response returned by the AclFilter to match the ErrorDTO...

Correcting the error response returned by the AclFilter to match the ErrorDTO returned from controller functions

This ensures consistent responses from different parts of our application. The client can then rely on the server to provide a constistent response structure.

See merge request theappsmith/internal-tools-server!194
2020-02-07 10:15:48 +00:00
Arpit Mohan
bd65ba41e0 Correcting the error response returned by the AclFilter to match the ErrorDTO returned from controller functions
This ensures consistent responses from different parts of our application. The client can then rely on the server to provide a constistent response structure.
2020-02-07 15:41:45 +05:30
Trisha Anand
8661f71a80 Mock apis for 3P frontend work 2020-02-07 09:05:14 +00:00
Arpit Mohan
5031f40897 Merge branch 'feature/pagination-type' into 'release'
Renaming isPaginated to PaginationType to support different types of pagination on the frontend

If the API is paginated via the table's page number, then the next and prev URLs in the action don't play any role. Those fields are only required when the paginationType is of type URL. In all other scenarios, the action is executed normally.

See merge request theappsmith/internal-tools-server!192
2020-02-05 09:24:06 +00:00
Arpit Mohan
ffc7328e13 Renaming isPaginated to PaginationType to support different types of pagination on the frontend
If the API is paginated via the table's page number, then the next and prev URLs in the action don't play any role. Those fields are only required when the paginationType is of type URL. In all other scenarios, the action is executed normally.
2020-02-05 14:41:53 +05:30
Arpit Mohan
3fc9c36919 Refactoring the code to fix bug where a user creating an organization wasn't getting assigned the default groups
Now, regardless of the route with which an organization is created (invitation, signup or self-create by user), the correct groups and permissions are assigned to the user.
2020-02-05 13:20:09 +05:30
Arpit Mohan
440de34857 Refactoring the code to add page archival for a given application
The code for archiving an application has been moved to ApplicationPageService so that both the PageService and ApplicationService can access it.
2020-02-05 08:37:48 +05:30
Arpit Mohan
3838338099 Adding the permission to delete pages to acl.rego file 2020-02-05 08:34:32 +05:30
Arpit Mohan
fbada3051d Adding default implementation in BaseRepositoryImpl for default JPA queries defined by Spring Data.
We override the SimpleReactiveMongoRepository with our custom implementation to add criteria for filtering soft deleted records.
Also, adding a new function to archive record instead of a hard delete.
2020-02-04 12:02:51 +00:00
Arpit Mohan
05cfa3f72f Merge branch 'bug/actions-by-orgId' into 'release'
/actions should return all the actions of the current organization only.

Added organizationId to Action. This gets set only during create operation. Whenever get is performed on actions, it is filtered using organizationId.

See merge request theappsmith/internal-tools-server!164
2020-02-01 05:09:28 +00:00
Trisha Anand
c6a18aed87 /actions should return all the actions of the current organization only. 2020-02-01 05:09:28 +00:00
Trisha Anand
5e640a3608 This ensures that the action (with any changes) is saved along with the new page id. 2020-01-31 18:10:46 +05:30
Trisha Anand
7f52c34d55 If the json path key contains the action itself, then it should be removed from the dependents. This is because otherwise we would end up in an infinite loop trying to calculate the action dependents in a recursive fashion. 2020-01-31 17:26:52 +05:30
Arpit Mohan
0e7bbe1479 WIP commit on soft deletes
ANother WIP
2020-01-31 09:34:36 +00:00
Trisha Anand
c437d7fc3c Fixed the run time issues seen with page load action dependency changes 2020-01-30 16:00:50 +05:30
Trisha Anand
77cfc0d9bd All the page load actions and their dependent page load actions now are stored as part of on page load actions 2020-01-30 09:48:48 +00:00
Trisha Anand
4ba6344cfd When user creates an organization, the user automatically gets added to the said org. 2020-01-30 09:24:31 +00:00
Arpit Mohan
15cbd266b3 Ignoring the createdAt, updatedAt and version fields in BaseDomain object.
This is because the client sends us the complete document as is. This causes conflicts in MongoDB for versioning and java Instant deserialization.
2020-01-30 12:55:33 +05:30
Arpit Mohan
d313f37f5c Adding mongo auditing to add createdAt and updatedAt timestamps to the documents in the DB.
At the moment, reactive Spring does not support AuditorAware implementation which also inserts the username of the user making the changes. Reference: https://jira.spring.io/browse/DATACMNS-1231.
2020-01-30 06:15:20 +00:00
Trisha Anand
655e26a986 Removing logs added to debug release for pagination. 2020-01-29 16:17:42 +05:30
Trisha Anand
d3769bad62 In case of duplicate key, send the application error code instead of http error code so that frontend can handle the duplicate key error gracefully 2020-01-29 10:22:21 +00:00
Arpit Mohan
8e8152ea63 Adding permission to delete the application by a user 2020-01-29 14:52:45 +05:30
Trisha Anand
c6da910c2b In case of duplicate key, send the application error code instead of http error code so that frontend can handle the duplicate key error gracefully 2020-01-29 08:50:50 +00:00
Trisha Anand
a9dd24152c Fixed the null pointer exception which is happening because of isPaginated field not being available for non paginated APIs 2020-01-29 11:04:48 +05:30
Trisha Anand
17f4a6f2e8 Handle server side pagination in action 2020-01-28 14:40:59 +00:00
Arpit Mohan
7764038ce9 Moving the form login & logout endpoints to /api/v1/login and /api/v1/logout
This is to ensure that when we deploy in production, we can add redirect rules on Nginx. Now /api and /oauth2 urls will proxy to the API server while all other URLs will proxy to the frontend server.
2020-01-28 17:12:46 +05:30
Trisha Anand
687b664011 Because the action was being saved directly, the isValid and invalid fields which are computed every time an action is updated, was not getting computed. isValid and invalids being null led to null pointer error after the action was moved. Fixed that by calling update instead of saving the action directly. 2020-01-27 09:17:45 +00:00
Trisha Anand
d1705a1931 Corrected receiving the response from String to byte[] array. This ensures that binary responses can also be handled. Added handling of content type Image. 2020-01-24 07:49:52 +00:00
Trisha Anand
ff56dc9661 Added controller end point to make a page default. When creating a new application, the default page created is set to default=true. Also, when returning pages by application id and by application name, the page's default status is returned as well as part of PageNameIDDTO 2020-01-23 14:45:05 +00:00
Trisha Anand
c9cf2f4b94 Removing enum for WidgetSectionName and converting to a String
This is to ensure that the frontend can create sections as per their requirement and not be mandated by an enum in the server codebase.
2020-01-23 09:36:44 +00:00
Trisha Anand
de722fff4e UpdateLayout Null Pointer Exception : In case the layouts are null or the DSL is null, it should be handled gracefully. 2020-01-21 05:57:35 +00:00
Trisha Anand
d1c104a0e6 First attempt at refactoring widget name. Not tested. Pushing because of intellij constantly crashing 2020-01-20 12:26:13 +00:00
Arpit Mohan
ebfddeda94 Fixing minor bug in the invite flow which was causing the password to be hashed twice 2020-01-16 16:59:49 +05:30
Arpit Mohan
bf6a80074e Adding connection pooling to MongoDB to prevent too many connections from opening up 2020-01-16 15:07:15 +05:30
Trisha Anand
576453639f Converted Exceptions thrown to Appsmith Plugin Exception so that its handled correctly. 2020-01-15 17:59:11 +05:30
Trisha Anand
670ca4cb7e Added log for execute action 2020-01-15 09:13:27 +00:00
Arpit Mohan
428b93683a Merge branch 'release' of gitlab.com:theappsmith/internal-tools-server into release 2020-01-14 17:14:26 +05:30
Arpit Mohan
bb8b127e2d Fixing bug again to save the reset password token in the DB.
We need to use flatMap instead of map else the Mono will not run to save the token in the passwordResetToken collection
2020-01-14 17:13:42 +05:30
Trisha Anand
f4a2a73abe In case of non json results, set the result body as string, otherwise parse the json and then store it as jsonNode 2020-01-14 09:48:43 +00:00
Arpit Mohan
9e6c54b343 Merge branch 'hotfix/github-login-cleanup' into 'release'
Cleaning up the Github OAuth2 login flow by adding userNameAttribute to properties

This property helps define for Spring security which field in the OAuth2 user info to read in order to determine the username of the user. This is because this field is non-standard across different OAuth2 implementations. For each new OAuth2 provider that we support, this field will be required. Else the default name field will be picked up by Spring security (which is usually the id of the user).

See merge request theappsmith/internal-tools-server!156
2020-01-14 03:10:44 +00:00
Arpit Mohan
2b0a21bbab Cleaning up the Github OAuth2 login flow by adding userNameAttribute to properties
This property helps define for Spring security which field in the OAuth2 user info to read in order to determine the username of the user. This is because this field is non-standard across different OAuth2 implementations. For each new OAuth2 provider that we support, this field will be required. Else the default name field will be picked up by Spring security (which is usually the id of the user).
2020-01-14 08:36:54 +05:30
Trisha Anand
660e47a819 Mock delete application which returns the application object which was being attempted to be deleted. 2020-01-13 13:06:42 +00:00
Trisha Anand
28e20ed3bd Move action also works successfully in removing the action from the previous page's onLoadActions while moving to another page. 2020-01-13 12:07:10 +00:00
Arpit Mohan
a542abc563 Adding quick fix for email validation check before we send an email to the user.
This is because there are OAuth2 providers who don't provide an email ID of the user. In those scenarios, we cannot send a welcome email to the user.
2020-01-13 17:35:23 +05:30
Arpit Mohan
56b54e1d17 Fixing bugs in the Github login flow to check for uniqueness of user
Github auth doesn't return the email ID of the user. Hence, we need to use the `login` attribute of the user profile information.
2020-01-13 15:50:00 +05:30
Arpit Mohan
db27e7c86c Adding Github login feature. Also adding condition to limit domain access in Google OAuth2
The domain restriction has been done by adding parameter `hd` in the function CustomServerOAuth2AuthorizationRequestResolver#authorizationRequest. We still verify if the OAuth2 response has the parameter `hd` to ensure that no client side manipulation has been performed.
2020-01-13 12:13:53 +05:30
Arpit Mohan
7622d76f32 Adding the property server.use-forward headers in order for Spring security to function properly behind a Nginx load balancer
This property helps the spring security library derive the host name, protocol and port accurately even while running behind a Nginx load balancer. This is because nginx adds X-Forward-* headers that are parsed by Spring security library.
2020-01-13 10:25:43 +05:30
Arpit Mohan
f374638d98 Adding exception stack trace to the login failure scenarios for debugging. 2020-01-10 18:11:29 +05:30
Arpit Mohan
60b7c69346 Adding a check for referrer header incase we don't find the origin header in authenticationFailureHandler
This is required for OAuth2 failure handling. When the client makes an OAuth2 request, we don't receive an origin header. If the OAuth2 login fails for some reason, our failure handler will not redirect correctly unless we also check for the referer header.
2020-01-10 18:06:15 +05:30
Arpit Mohan
70e9adbef6 Correcting the redirect uri property name in the config file for custom OAuth2 redirection
This is required because when we host inside a docker container, the default host and port picked up by the code is the docker container's name & port. This will not work when Google (for example) needs to redirect back to our server after authentication is complete. Hence, we need to customize the default redirect uri for all OAuth2 endpoints.
2020-01-10 17:06:05 +05:30
Arpit Mohan
8b9d865c5a Revert "Adding logs to debug docker OAuth2 login issue"
This reverts commit e3773bdf9f1c0ee543b98a2f9ac01b07efaf1858.
2020-01-10 16:44:02 +05:30
Arpit Mohan
73a6ca13f0 Adding logs to debug docker OAuth2 login issue 2020-01-10 16:18:36 +05:30
Arpit Mohan
6f76ba99d6 Handling the case where the user tries to reset the password for a user that doesn't yet exist in the system. 2020-01-10 14:54:10 +05:30
Trisha Anand
34b170bc5c Update layout was failing for when the mustache key was {{fetchUsers2[0].}}. When the word splitting happened, it got split into fetchUsers2, 0 and '.'. This means that when each word was finally split again, there was nothing before the '.' leading to null pointer exception. This has been fixed by adding a check for the same. 2020-01-08 16:34:28 +05:30
Arpit Mohan
2dced0818e Fixing the bug which prevented the reset password token from being saved in the DB
The issue was that the chain would receive a mono instead of an object. This would cause it to not persist the token in the DB. Moving to flatMap fixes this problem as we then deal with the actual object instead of the Mono.

Also fixing the url encoding in the email to ensure that the links generated are correct. By default mustache does HTML escaping and not URL encoding.
2020-01-08 14:30:45 +05:30
Trisha Anand
6f6dcbe4d4 Added logs which must be removed in 24 hours. 2020-01-07 20:50:10 +05:30
Trisha Anand
4a7b1632ad Removed the creation of dependency graph during update layout. Instead simple mustache finding are done now to get pageload actions. 2020-01-07 11:34:44 +00:00
Arpit Mohan
36f6b35c09 Increasing the redis inactive session timeout to 30 days
Now when a user doesn't log into the Appsmith system for 30 days, they will get logged out.
2020-01-07 13:05:44 +05:30
Arpit Mohan
296ea7beee Filtering out the groups based on the user's current organization ID
Also refactoring the code to use the MultiValueMap for filter params which is a generic implementation and can support filtering on multiple fields of the domain object groups. This can be replicated to other domain objects as well.
2020-01-06 17:40:44 +05:30
Arpit Mohan
d8e9be9465 Merge branch 'feature/create-user-workspace-name' into 'release'
Ensuring that a user's personal workspace name is their first name by default.

This is because the full name makes the entire workspace name very long. If we just use the first name, it'll be a shorter string and easier to read by the end user as well.

See merge request theappsmith/internal-tools-server!142
2020-01-03 14:50:35 +00:00
Arpit Mohan
68092c19cc Ensuring that a user's personal workspace name is their first name by default.
This is because the full name makes the entire workspace name very long. If we just use the first name, it'll be a shorter string and easier to read by the end user as well.
2020-01-03 20:15:23 +05:30
Arpit Mohan
db8c88efbc Merge branch 'bug/body-replace-json' into 'release'
Action Execution should handle rest api body for mustache replacement scenario

See merge request theappsmith/internal-tools-server!141
2020-01-03 14:43:30 +00:00
Trisha Anand
934771761b Handling the json body scenario where html escaping lead to json body for rest api being incorrect. 2020-01-03 20:09:44 +05:30
Arpit Mohan
e0a03c74e5 Filtering out the groups to only query those that belong to the user's current organization 2020-01-03 15:57:31 +05:30
Arpit Mohan
b8bc4514ba Adding default flag to the group domain object so that the client can select a default permission group for the user. 2020-01-03 10:05:51 +00:00
Arpit Mohan
ca40bb842f Sending HTML template emails to users when they signup, invite another user or reset their password. 2020-01-03 09:44:17 +00:00
Trisha Anand
30b094c7a5 Curl Parsing for http. Extracts : Method, Headers, Query Params, URL (without query params). Yet to finish Body 2020-01-02 13:38:55 +00:00
Trisha Anand
cef09282eb 1. For creating the dependency graph, only APIs with HTTP method GET is used. The other actions used in the DSL are ignored.
2. Only dependencies of actions over other actions are counted. If the action is dependent on widgets, thats is not counted as a dependency and is left for the frontend to handle.
2020-01-02 13:38:40 +00:00
Arpit Mohan
2bd871a589 Send email to new user on signup 2020-01-02 13:09:05 +00:00
Arpit Mohan
99010d08dc Fixing the bug where the custom authentication failure handler wasn't being invoked
This was because we need a custom authentication entry point to override the failure handler as well.
2020-01-02 17:25:34 +05:30
Arpit Mohan
868cad2648 Modifying the logoutSuccessHandler to return success and failure JSONs instead of redirecting the client to the login page
This allows the client to invoke the logout call via a XHR request instead of a form post.
2020-01-02 16:13:19 +05:30
Arpit Mohan
08b70d0e7d Adding a logout handler to redirect the client back to the login page after the user logs out of the application. 2019-12-31 15:01:28 +05:30
Arpit Mohan
8e2fde20a5 Fixing bug where we shouldn't query the DB to find action and store cached result if it's a dry run 2019-12-31 14:14:32 +05:30
Arpit Mohan
e0f26cc5ab Updating mongo seed.js to reflect the new domain objects when a new instance of Mongo is setup via docker-compose. 2019-12-31 13:25:33 +05:30
Arpit Mohan
ff6794e931 Fixing bug where we were returning all the organizations in the db instead of just the ones that belong to the user. 2019-12-31 13:25:07 +05:30
Arpit Mohan
a663d8d38a Adding the redirect back to the client's index page on successful oauth2 login by the user
We use the referer header to find the client's endpoint and redirect to that endpoint once the OAuth2 login is successful. This is implemented via CustomServerOAuth2AuthorizationRequestResolver and AuthenticationSuccessHandler
2019-12-30 18:07:30 +05:30
Arpit Mohan
8ff5c7d1fc Merge branch 'feature/401-redirect' into 'release'
Responding with 401 unauthorized http response header for all unauthenticated requests

This ensures that the client can redirect to the login page whenever it receives the http status 401 in the response header. Now, the server is no longer responsible for redirecting to the login page. All server redirects have been disabled.

See merge request theappsmith/internal-tools-server!128
2019-12-23 14:49:05 +00:00
Arpit Mohan
d32eaf11d8 Responding with 401 unauthorized http response header for all unauthenticated requests
This ensures that the client can redirect to the login page whenever it receives the http status 401 in the response header. Now, the server is no longer responsible for redirecting to the login page. All server redirects have been disabled.
2019-12-23 20:15:33 +05:30
Trisha Anand
f13356a6e2 Successful action execution results are saved in the action. 2019-12-23 20:00:46 +05:30
Trisha Anand
71a8936e10 Handles http redirect upto 5 times. In case it exceeds the same, it would error out. 2019-12-23 09:12:15 +00:00
Arpit Mohan
2b9dadb582 Merge branch 'feature/user-invite' into 'release'
Adding the invite user flow to invite a new user into the organization.

This includes multiple APIs:
1. Invite user which creates an invite token for the user and then sends it to the new user via email. This token is valid for 1 hour (for now).
2. An endpoint to verify the invite token so that the client can pre-emptively show any errors or expired token messages. This endpoint is publicly accessible and doesn't require a session.
3. An endpoint for the new user to sign up and set their password by providing their invite token. This endpoint is publicly accessible and doesn't require a session.

Also extending the redis session timeout to 1 day instead of 30 mins.

See merge request theappsmith/internal-tools-server!125
2019-12-23 03:30:08 +00:00
Arpit Mohan
5081292fd8 Adding the invite user flow to invite a new user into the organization.
Also extending the redis session timeout to 1 day instead of 30 mins.
2019-12-23 08:54:12 +05:30
Arpit Mohan
b30626b274 Returning only the plugins installed by the user's current organization
This ensures that we don't return all the plugins available in the marketplace if they haven't been installed by the user.
2019-12-19 11:47:26 +00:00
Arpit Mohan
5ba754b430 Merge branch 'hotfix/forgot-password-duplicate' into 'release'
Handling duplicate email in forgotPassword flow.

Now if the user requests for the reset password token multiple times, we will override the previous token and save the new token against that user.

See merge request theappsmith/internal-tools-server!122
2019-12-19 07:41:40 +00:00
Arpit Mohan
7a8eacb44f Merge branch 'feature/forgot-password-authorization' into 'release'
Correcting the HTTP methods in SecurityConfig and acl.rego to fix bug in forgotPassword and resetPassword authorization.

See merge request theappsmith/internal-tools-server!121
2019-12-19 07:38:12 +00:00
Arpit Mohan
e129fecca7 Handling duplicate email in forgotPassword flow.
Now if the user requests for the reset password token multiple times, we will override the previous token and save the new token against that user.
2019-12-19 13:07:01 +05:30
Arpit Mohan
9caa6d42b8 Merge branch 'feature/email-disable' into 'release'
Adding a flag to determine if we should send emails for that particular environment

This is to prevent us from sending erroneous emails from our dev/test environments

See merge request theappsmith/internal-tools-server!120
2019-12-19 07:36:10 +00:00
Arpit Mohan
20ea476dc7 Correcting the HTTP methods for the public urls of forgotPassword & resetPassword 2019-12-19 13:04:13 +05:30
Arpit Mohan
f75331b116 Adding a flag to determine if we should send emails for that particular environment 2019-12-19 13:02:48 +05:30
Arpit Mohan
a1271d5746 Merge branch 'hotfix/update-page-layout-bug' into 'release'
Removing the logic to bind actions to pages when a dynamic binding happens.

This is because when an action is created, it is already bound to that page. This assumption will not change. Also, adding the pageId when searching for an action because the action name and pageId is a unique index. There may be actions with similar names across multiple pages.

See merge request theappsmith/internal-tools-server!119
2019-12-19 07:11:07 +00:00
Arpit Mohan
738b693d9a Removing the logic to bind actions to pages when a dynamic binding happens.
This is because when an action is created, it is already bound to that page. This assumption will not change. Also, adding the pageId when searching for an action because the action name and pageId is a unique index. There may be actions with similar names across multiple pages.
2019-12-19 12:35:43 +05:30
Arpit Mohan
a54e8b1559 Fixing bug where the public URLs need to be defined in SecurityConfig as well 2019-12-17 12:05:52 +05:30
Arpit Mohan
bcba9d3415 Creating a list of public endpoints that anonymous users can access.
OPA controls access to all endpoints and the list of authenticated resources and public URLs is defined in a single place in that file.

The url_allow function in acl.rego is an overloaded function that replicates the OR condition in Rego. Either the user is authenticated and has permissions to access those resources, or the URL is public and accessible by any user.
2019-12-17 09:28:59 +05:30
Arpit Mohan
3760849aa6 Removing basic auth from our securityConfig 2019-12-16 14:32:27 +05:30
Arpit Mohan
82a6d96b1a Upgrading to Spring boot 2.2.2 for features in Spring security
Now, we have an authenticationSuccessHandler & authenticationFailureHandler for OAuth & Form sign ups. This makes the whole flow much easier to handle.
2019-12-16 10:53:17 +05:30
Arpit Mohan
274a686e51 Modifying the form submit error handler to redirect the browser to login error page.
This is because the client cannot handle a JSON response for form submit requests. They can only be handled in Ajax requests.
2019-12-12 18:22:18 +05:30
Arpit Mohan
69e73ad240 Disabling the GET for the login page to ensure that the server login page is not loaded 2019-12-12 16:07:57 +05:30
Arpit Mohan
eb825f37e9 Adding endpoint to fetch current user's profile.
Also redirecting the browser to this user profile endpoint on username password login success. This ensures that the client fetches the profile along with setting the session ID cookie in the browser
2019-12-12 15:25:09 +05:30
Arpit Mohan
af96c11d3e On username + pwd auth success, we redirect the browser to the client's index page via the origin header. 2019-12-12 09:46:38 +00:00
Trisha Anand
d8fc726f79 Merge branch 'feature/user-login-redirect' into 'release'
Sending custom JSON in form login success and failure scenarios

See merge request theappsmith/internal-tools-server!111
2019-12-12 07:32:20 +00:00
Arpit Mohan
c12f90ca1e Sending custom JSON in form login success and failure scenarios
This involves overriding the default success and failure handlers for login in the SecurityConfig class. The handlers are defined in the filters package.
2019-12-12 12:57:23 +05:30
Trisha Anand
9c62029ff0 Removed unbinding of actions from the page if not present in the DSL. 2019-12-12 12:30:50 +05:30
Arpit Mohan
ec478e5c2a Reverting previous commit with @EnableMongoAuditing because that is causing APIs to return empty data in the API 2019-12-11 17:15:16 +05:30
Arpit Mohan
6f39d39523 Moving the annotation @EnableMongoAuditing to the CommonConfig class because it wasn't being acknowledged by Spring
This now ensures that Spring JPA inserts the createdAt and updatedAt timestamps to the MongoDB along with the document itself.
2019-12-11 16:21:14 +05:30
Trisha Anand
2a47a442be Removes pageId from actions no longer in DSL and adds pageIds for actions in DSL in actions collection 2019-12-11 10:29:12 +00:00
Arpit Mohan
614b1b3f0d Creating default groups for the user's personal organization when the new user signs up
The default groups for an organization are created by copying over data from the groups collection with the organizationId 'default-org'. This ensures that we can update the permissions in the DB and add new permissions without any code changes. The new user is then assigned to these groups so that they have all the permissions required to administer the organization.

Also adding a display name for the groups so that the UI can show a different name than the one used internally within the DB to represent the group.
2019-12-11 10:20:28 +00:00
Trisha Anand
7a3cfe2c52 Create user now also leads to creation of personal organization for the user. It also gets assigned as the default (current) workspace (or currentOrganizationId) 2019-12-10 10:58:34 +00:00
Trisha Anand
66b28e8dec LayoutOnLoadActions are now being copied to the published version. Now viewing the published page would give all three published datastructures : DSL, Layout Actions, and Layout Load Actions 2019-12-10 07:25:08 +00:00
Arpit Mohan
fe82366ace Fixing compilation issue 2019-12-08 21:20:58 +05:30
Arpit Mohan
fdba2f62ef Adding email sending capability when the user resets their password 2019-12-08 15:46:17 +00:00
Trisha Anand
046751b1ba Working version where the top feeding nodes have been discovered in the tree. These would be page load actions. 2019-12-08 13:41:15 +00:00
Trisha Anand
23dbd4c78a Create/Update user used password encoder to encode the user password before storing it in the database 2019-12-06 12:15:28 +00:00
Trisha Anand
3137b54f12 Adding query params to get actions API call 2019-12-06 09:48:31 +00:00
Trisha Anand
b16909de61 JS functions can now be stored to an action. 2019-12-05 09:19:45 +00:00
Arpit Mohan
c5ce086ace Merge branch 'feature/release-base-uri' into 'release'
Checking if the name of the user is not null. Only then inserting it that field into analytics service.

See merge request theappsmith/internal-tools-server!97
2019-11-29 13:29:11 +00:00
Arpit Mohan
d8ef880a5c Checking if the name of the user is not null. Only then inserting it that field into analytics service. 2019-11-29 18:55:07 +05:30
Arpit Mohan
11c60e8103 Merge branch 'feature/release-base-uri' into 'release'
Modifying the base uri for oauth2 for release environment

Setting the release uri to `https://release-api.appsmith.com` This ensures that it's all under the appsmith domain.

See merge request theappsmith/internal-tools-server!96
2019-11-29 09:16:27 +00:00
Arpit Mohan
ba9c2f0831 Modifying the base uri for oauth2 for release environment 2019-11-29 14:42:16 +05:30
Arpit Mohan
2b959f3af4 Renaming executorClass to packageName and adding uiComponent field to plugin object
This will allow the frontend to be able to dynamically load the component based on the configuration provided in the plugin object.
2019-11-29 13:43:13 +05:30
Trisha Anand
de2bd38e9d Dsl actions now store not just the ids but also the name, plugin type and json path keys. 2019-11-29 07:16:16 +00:00
Arpit Mohan
473bba594a Updating redis properties for heroku environment 2019-11-28 19:01:56 +05:30
Arpit Mohan
8a442d429c Dummy commit to trigger Heroku deployment 2019-11-27 16:37:03 +05:30
Arpit Mohan
fdb2f7a25d Adding query parameters to filter get API calls. Specifically adding filter by plugin type in the get plugins API. 2019-11-27 10:51:43 +00:00
Arpit Mohan
dea2efa776 Merge branch 'feature/oauth2-custom-url' into 'release'
Adding the base uri for google oauth2 redirect uri

This is required because when we host the server in a docker container, by default the baseUri picked up by Spring security is the DNS name of the appsmith server inside the docker networking bridge. These names may not be valid DNS names that Google can redirect to in the event of a successful Oauth2 login. Hence, we are overriding the base uri with our own uri for each environment.

The customer will have to provide this uri when they host it on their internal networks. This uri must be publicly accessible for Oauth2 to work.

See merge request theappsmith/internal-tools-server!90
2019-11-27 08:34:57 +00:00
Arpit Mohan
92ad45091d Adding the base uri for google oauth2 redirect uri
This is required because when we host the server in a docker container, by default the baseUri picked up by Spring security is the DNS name of the appsmith server inside the docker networking bridge. These names may not be valid DNS names that Google can redirect to in the event of a successful Oauth2 login. Hence, we are overriding the base uri with our own uri for each environment.

The customer will have to provide this uri when they host it on their internal networks. This uri must be publicly accessible for Oauth2 to work.
2019-11-27 13:57:01 +05:30
Trisha Anand
b0452b74c6 Datasources are now returned only for the organization of the current user. 2019-11-27 08:22:29 +00:00
Trisha Anand
606c09067e Fixes the test cases : create for PageService and ApplicationService is no longer used. Instead ApplicationPageService provides createPage and createApplication for the same. Updated the test cases to use the correct service to do this. 2019-11-27 08:17:46 +00:00
Arpit Mohan
e492bf2622 Fixing stupid bug in action execution timeout. Applying only on the action execution instead of the whole execute function 2019-11-27 02:10:01 +05:30
Arpit Mohan
ca4ff6a28b Fixing action execution timeout bug which was defaulting the execution timeout to 0 instead of 10.
Now if we provide a null / negative value to action execution timeout, it'll default to 10s
2019-11-26 18:19:12 +05:30
Trisha Anand
7e6e19e14e PageController : Find pages by application name instead of application id. This first fetches the application from name and then fetches pages using the application id. 2019-11-26 12:21:20 +00:00
Trisha Anand
0fd6351a76 Added timeout on the plugin execution.
Next TODO : Make the timeout duration configurable
2019-11-26 11:34:27 +00:00
Arpit Mohan
2e31a74cd9 Converting the docker conatiners to appsmith organization 2019-11-21 13:20:15 +05:30
Trisha Anand
4c0aa5956e Converted list to set to ensure unique action ids in the list of actions per dsl 2019-11-21 07:44:20 +00:00
Trisha Anand
781788f4a3 Extracting mustache keys from layout and finding all the action names from the same. This is then stored to the layout 2019-11-21 07:30:07 +00:00
Trisha Anand
9a4fea1c56 Updates for getting the test cases for Organization service to run. Since unique name is a new constraint added, the old test cases didnt account for the same. 2019-11-19 09:02:14 +00:00
Trisha Anand
44e17eef7b Added fields : flag isValid & string array of invalids to track if an action/datasource is invalid and what are the invalidities. This allows for the creation of actions and datasources even if they are invalid. Each update to the object leads to new computation of the validity.
When executing the isValid flag is tested and if false, the execution is stopped.
2019-11-18 12:20:10 +00:00
Arpit Mohan
c5445533f3 Merge branch 'master' into 'release'
Merging master into release to sync up the branches

See merge request theappsmith/internal-tools-server!78
2019-11-18 08:46:59 +00:00
Arpit Mohan
8fbf61502f Creating dockerfile that creates the server image.
Also modifying .gitlab-ci file to push docker image to the registry
2019-11-14 12:50:37 +00:00
Trisha Anand
31cf94f08e 1. Added datasource validator function in the plugin interface which simply returns true for all the current plugins.
2. Added static method getPluginExecutor as a util function which removes duplicate code from across different files.
2019-11-14 08:50:02 +00:00
Arpit Mohan
f62cd1f21a Endpoint to view published page using just PageId. The layoutId is no longer required. 2019-11-14 07:06:34 +00:00
Trisha Anand
0d21680f08 Action only with name now supported 2019-11-13 12:26:12 +00:00
Arpit Mohan
f4daa33493 Adding CRUD API for configurations. The name for the config will be unique across the dataset. 2019-11-13 12:17:32 +00:00
Trisha Anand
f81e22b1a5 Adding the capability to associate a user with multiple organizations 2019-11-13 10:23:23 +00:00
Trisha Anand
55a29c448c Datasource without any configuration is not valid. Deter the user from creating one in such a scenario 2019-11-13 06:08:36 +00:00
Trisha Anand
df904539ca Datasource instead of DatasourceId is expected as part of Action. During create and update action, datasource can also be created, which is automatically saved as part of datasource collection 2019-11-13 05:51:01 +00:00
Trisha Anand
41be720335 Get all actions returns them in sorted order 2019-11-12 09:59:29 +00:00
Trisha Anand
cb4493dc2d Datasource instead of DatasourceId is expected as part of Action. During create and update action, datasource can also be created, which is automatically saved as part of datasource collection 2019-11-12 09:58:14 +00:00
Trisha Anand
e6d9f1df88 Datasource instead of DatasourceId is expected as part of Action. During create and update action, datasource can also be created, which is automatically saved as part of datasource collection 2019-11-12 09:15:09 +00:00
Arpit Mohan
aac31235f6 Merge branch 'master' of gitlab.com:theappsmith/internal-tools-server
# Conflicts:
#	appsmith-plugins/restApiPlugin/src/main/java/com/external/plugins/RestApiPlugin.java
#	appsmith-server/src/main/java/com/appsmith/server/services/ResourceContextServiceImpl.java
2019-11-07 14:28:09 +05:30
Trisha Anand
63c0f07708 Query param handling has been added to Rest API plugin using URIComponentsBuilder 2019-11-06 12:30:56 +00:00
Arpit Mohan
bcda3f0feb Renaming all the references of resource to datasource
This renaming is reflective of the entity and it's potential values in the future.
2019-11-06 16:25:08 +05:30
Arpit Mohan
a61b9ab325 Handling null values in the request body 2019-11-05 12:25:08 +00:00
Trisha Anand
3c1b08d911 Page Controller now can return list of pages by application id and list of page names & ids by application id 2019-11-05 11:49:52 +00:00
Trisha Anand
3f968afac6 Page Controller now can return list of pages by application id and list of page names & ids by application id 2019-11-05 11:36:10 +00:00
Arpit Mohan
0c0956ca46 Adding ACL bundle for datasources API 2019-11-05 16:36:09 +05:30
Arpit Mohan
3622d8b0d3 Converting actionConfiguration to a string to extract mustache keys
Also making jsonPathKeys a read-only field. Cannot be written via the API.
2019-11-05 10:40:09 +00:00
Trisha Anand
00fa2e80f7 Added ActionCollectionService which would act on composite functions. Need to handle all scenarios here. 2019-11-05 09:39:54 +00:00
Trisha Anand
bd846bfc8d Fix for dsl getting rewritten 2019-11-05 07:37:39 +00:00
Trisha Anand
68e30ff297 Handles empty params in a request 2019-11-05 05:51:14 +00:00
Trisha Anand
daeba007a1 Bug/rest api 2019-11-04 11:20:18 +00:00
Arpit Mohan
023ef93969 Fixing Heroku credentials again. Need to find permanent solution to this. 2019-11-01 08:52:20 +01:00
Arpit Mohan
00cd806259 Changing the Redis credentials because Heroku changed them again 2019-10-28 13:15:02 +01:00
Arpit Mohan
d17927e1f8 Reducing data response for application publish API
Instead of sending complete application information, we now only send the boolean true or false value to indicate to the client the success or failure of the publish action
2019-10-24 15:41:38 +05:30
Arpit Mohan
2bd8113229 Moving JsonPathKeys from Page document object to Action
This is to ensure that the Action object is independent by itself and the client can derive the mustache keys by looking at the action object directly.
2019-10-24 12:38:52 +05:30
Arpit Mohan
314cdd29d9 Handling error in RedisListenerConfig
When we shut down the server, the redis subscription is not closed cleanly leading to the server to hang. Adding an error handler solves for this issue.
2019-10-23 05:20:44 +00:00
Trisha Anand
d178b1c729 Publishing an application has been implemented by introducting publishedDsl field inside Layout. On Publish, for all pages in the application, for all layouts inside each page, the dsl json object is copied into the publishedDsl json object. 2019-10-23 04:41:51 +00:00
Trisha Anand
f8dddb212f Action Service - Delete 2019-10-21 14:01:21 +00:00
Trisha Anand
8ac0203b83 Fixing stupid bug in the acl rego file 2019-10-21 18:39:41 +05:30
Arpit Mohan
6eb7311197 Adding the permissions for fetching and updating applications & groups.
Also adding permission for deleting actions
2019-10-21 12:57:36 +05:30
Arpit Mohan
fc1a275670 Merge branch 'master' into hotfix/java-oom-fix 2019-10-21 12:25:05 +05:30
Arpit Mohan
5c1ef9f98a Adding the JVM parameter to ensure that java stays within the memory limits set by the container 2019-10-21 12:23:00 +05:30
Trisha Anand
74a8466528 Analytics Service now caters to all the events that need to be published. Every service should now call the analytics service's sendEvent function for tracking events. 2019-10-18 13:45:18 +00:00
Trisha Anand
84837fe57f Mongo Plugin works here. Barring the scenarios where the query json contains special characters in keys ($, .) it works properly. 2019-10-18 08:27:19 +00:00
Arpit Mohan
0473e3d48e Removing Heroku API key from gitlab-ci file 2019-10-17 12:44:37 +05:30
Arpit Mohan
04a8467095 Fixing the docker credentials in maven so that we don't require the docker daemon for CI/CD 2019-10-17 11:55:55 +05:30
Arpit Mohan
9550f6210d Removing image name from the package step in gitlab-ci file 2019-10-17 11:39:37 +05:30
Arpit Mohan
75a5e48c4d Adding docker hub access token to gitlab-ci for container upload 2019-10-17 09:47:23 +05:30
Arpit Mohan
3a9f344a51 Removing plugins from appsmith-interfaces module 2019-10-17 09:25:58 +05:30
Arpit Mohan
d295875ee3 Removing the git-commit plugin because it doesn't run properly on heroku 2019-10-17 09:18:17 +05:30
Arpit Mohan
135b61a4bc Adding mongo seed data that will be recreated whenever docker-compose causes the containers to restart
Note that we have to delete the Mongo volume for the inidtb script to take effect. Else, it will not execute. To be used only for testing right now. Will figure out a more robust solution later.

Also using Google's JIB Maven plugin to reduce our Docker image footprint. Will make container upload and download much faster
2019-10-16 11:27:02 +00:00
Arpit Mohan
f51de50725 Adding more acl rules for properties and action controllers 2019-10-14 12:29:20 +00:00
Arpit Mohan
cf5b2c325b Adding a folder for public resources in order to serve OPA bundle
Open Policy Agent requires a bundle in the form of tar.gz in order to bootstrap itself with base policy and data. The server will serve this policy under the public domain. In the future, we will enable a Basic Authentication scheme in order to lock down this pocliy.
2019-10-14 09:24:09 +00:00
Trisha Anand
e1d59ca3a6 Multi data source support for plugins using Resource Context 2019-10-11 10:32:18 +00:00
Arpit Mohan
632aff4faa Adding basic ACL functionality with Open Policy Agent.
Currently, ACLFilter communicates with the OPA daemon to determine if the request should be validated or not based on the resource and permissions in user and group
2019-10-11 10:31:28 +00:00
Trisha Anand
7315802508 Fixing redis connection changes 2019-10-10 11:53:03 +00:00
Trisha Anand
d1bcc282f8 Adding the redis listener via spring-data-redis-reactive.
The listeners need to be configured in the RedisConfig class via Beans. These beans can then invoke complex business logic based on requirements.
2019-10-07 09:02:02 +00:00
Arpit Mohan
ad22e1a406 Adding the redis listener via spring-data-redis-reactive.
The listeners need to be configured in the RedisConfig class via Beans. These beans can then invoke complex business logic based on requirements.
2019-10-07 08:18:54 +00:00
Trisha Anand
59752254b4 On install, the plugins are loaded and started again. This ensures that we don't have to restart the server every time a new plugin is installed. Earlier the plugins were loaded and started only during the boot 2019-10-04 04:27:11 +00:00
Trisha Anand
8658df95a9 All action executions now return object of type ActionExecutionResult. RestApiPlugin returns the same object which contains statusCode, headers and body. 2019-09-30 18:17:35 +00:00
Arpit Mohan
71ac6f4488 Updating to the latest spring boot version 2019-09-30 11:32:16 +05:30
Trisha Anand
51d5c93119 Fixing minor bugs in the Segment analytics flow 2019-09-25 17:06:28 +00:00
Trisha Anand
566a245451 Segment & Rollbar Integration 2019-09-25 16:20:51 +00:00
Trisha Anand
bec8b2e0a1 Adding the docker-compose up command to the build
This should ideally run the mongo-seed container to restore the DB before each run
2019-09-24 12:14:41 +00:00
Trisha Anand
de55ec8f8e Property Pane for Widget 2019-09-24 11:40:53 +00:00
Arpit Mohan
280f8d4dcb Fixing the Cors configuration to ensure that pre-flight requests return the Access-Control-Allow-Origin header 2019-09-18 09:45:00 +00:00
Arpit Mohan
ac44e2c970 Modifying the ResponseDTO to contain the ResponseMeta object. Also moving ErrorDTO inside ResponseMeta object.
This also fixes the logic for multiple ResponseDTOs that were being sent when the service level response was a Flux. Now we only return a single array inside a Mono ResponseDTO object.
2019-09-18 08:52:14 +00:00
Trisha Anand
3d82809d2a CI/CD with Heroku and docker via gitlab 2019-09-18 08:24:03 +00:00
Arpit Mohan
6f4bfdd728 Ensuring that the plugins directory is in the same path as the jar 2019-09-17 18:02:58 +05:30
Arpit Mohan
b618bfc5d8 Adding a very initial version of the RestApiPlugin
Requires a bunch of testing for corner cases and error scenarios.
2019-09-17 12:24:45 +00:00
Arpit Mohan
0edc0f6363 Adding the executeAction API in the ActionController.
Also changed the interface for the PluginExecutor to include the resourceConfig and ActionConfig as well.
2019-09-17 12:18:23 +00:00
Trisha Anand
4498a301a6 Docker 2019-09-17 09:35:13 +00:00
Trisha Anand
14ec5260d9 Incorporated review comments from Nikhil on action 2019-09-17 07:23:30 +00:00
Trisha Anand
5468436d9f Add Page Actions to Page object. 2019-09-17 06:25:07 +00:00
Arpit Mohan
f5ea85f636 Running only part of build.sh in the buildpack-run.sh. This is because all the buildpacks in Heroku are run sequentially 2019-09-16 17:19:55 +05:30
Arpit Mohan
cdba3a5b68 Adding Procfile for custom run command in Heroku 2019-09-16 17:12:26 +05:30
Arpit Mohan
bb84e74c23 Re-arranging the files to fix bad merge that threw compile errors 2019-09-16 17:04:07 +05:30
Arpit Mohan
661111daaa Setting java version to 11 in system.properties.
This is required by Java Heroku buildpack
2019-09-16 16:54:28 +05:30
Arpit Mohan
b3c987a9f9 Convert the project into a multi-module structure
We are moving to a multi-module structure so that different parts of the codebase can be exposed to the public while others can remain private. Using pf4j for plugin framework.

Also adding a build script `build.sh` which compiles the code and creates the `dist` folder for distribution purposes. Now we can build the code via

```
$ ./build.sh -DskipTests
```
2019-09-16 11:21:57 +00:00
Trisha Anand
467b3e6db5 Fixes nested data object in Layout. Renamed data to 'dsl' 2019-09-11 11:51:25 +00:00
Trisha Anand
07614d8980 CRUD for pages and layouts. 2019-09-11 10:44:31 +00:00
Trisha Anand
7e0cb75ed2 Added domains for application and pages. Edited the layout domain to make it an embedded object inside a page instead of existing in the database on its own. 2019-09-09 06:54:36 +00:00
Arpit Mohan
9c47e1cb2f A hacky approach to limiting the Google OAuth2 to a set of custom domains.
This is not the prettiest way to do it. Ideally, we should send a query parameter to Google with key "hd=example.com" in order to get Google to list accounts with only those domains. For now, we send an error when the domains don't match in a custom `ClientUserRepository` function.
2019-09-09 05:16:42 +00:00
Trisha Anand
bea5f53f46 Signup flow 2019-09-06 10:49:48 +00:00
Arpit Mohan
f71bd9a4e0 Migrating from Tenant nomenclature to Organization.
This makes it consistent with the terminology that we want in the product. The hierarchy will be organization -> team -> user.
2019-09-04 15:08:40 +05:30
Arpit Mohan
bf908025e2 Adding some basic unit tests for the TenantService class. We should add more tests for other CRUD flows as well. 2019-09-04 09:24:38 +00:00
Trisha Anand
4258f85a81 Removed DBRef from action. Added DBRef of plugin because while execution, this will be used. So instead of fetching plugin on every execution, plugin is fetched once during create action and stored as part of action (DBRef). Because of DBRef, eager loading would happen which would lead to plugin being present on get without loading plugin again. 2019-09-03 11:36:49 +00:00
Trisha Anand
7bc8948116 Correcting tenant id on staging 2019-08-29 15:39:42 +05:30
Arpit Mohan
bdc53195f0 Sending standardized HTTP error codes to the client application. This structure ensures that we can define the http error code, app error code and (in future) localized string when we want to.
Now when we want to send any error message to the client, we should add it to the enum `AppsmithError` and throw an `AppsmithException` by passing this enum value to the constructor. In the future, we can also localize these error messages by defining the template message in a `messages_en.properties` file.
2019-08-28 09:35:06 +00:00
Trisha Anand
bbbdfbada3 Action CRUD implemented 2019-08-27 11:31:44 +00:00
Arpit Mohan
06945ff10f Renaming Mobtools to Appsmith everywhere for consistency 2019-08-27 15:14:50 +05:30
Trisha Anand
43780a6550 Action configuration now contains all the configurations. The global and mustache configurations now exist under the same object. Data template object has been removed. This is inline with the design discussion. 2019-08-27 09:37:38 +00:00
Arpit Mohan
5a1f9ab132 Adding MDC logging via RequestIdFilter and MDCFilter
This ensures that we can send header values and those will be printed in the logs. In the class MDCFilter, we are adding the logContext to the reactive logger along with the normal MDC logger as well.
2019-08-27 06:25:29 +00:00
Trisha Anand
0449633997 Removed wild card imports. Now wild card imports would only happen if the import class count exceeds 20. 2019-08-22 12:03:42 +00:00
Trisha Anand
e852ec6c15 The create tenant flow is completely reactive. This was done because the earstwhile implementation was erroneous leading to unpredictable crashes. 2019-08-12 04:44:28 +00:00
Trisha Anand
ae0fd72d48 The create tenant flow is completely reactive. This was done because the earstwhile implementation was erroneous leading to unpredictable crashes. 2019-07-28 04:46:53 +00:00
Trisha Anand
68e1bef0f6 Introduced TenantSetting to store the real setting value. Setting would exist as set of settings that can be configured for a given tenant. The TenantSetting document stores the configured values for each setting.
Also, introduced the util cascadeSave. This is done with the aim of storing the lower order documents first before storing the higher order composite documents (which contain DBRef).
2019-07-25 07:11:05 +00:00
Arpit Mohan
2a5656afbb Changing the query execution to execute by name. Will make the API a lot simpler. 2019-04-02 21:55:19 +05:30
Arpit Mohan
bbb6e511d7 Adding a working version of the rest template plugin executor. 2019-04-02 21:10:36 +05:30
Arpit Mohan
6d91ab32ce Adding the bean corsWebFilter to enable CORS in our codebase 2019-04-02 20:05:48 +05:30
Arpit Mohan
c14b34193d Refactoring the plugin implementations to have their own package.
Will keep the code more organized
2019-03-31 21:55:27 +05:30
Arpit Mohan
5570020f6d Adding Configuration annotation on CORS config class 2019-03-31 21:49:39 +05:30
Arpit Mohan
cffb83a781 Disabling CORS by effectively allowing requests to be made from all hosts 2019-03-31 21:48:50 +05:30
Arpit Mohan
303f42945c Correcting the properties reading from PostgresDBPluginExecutor
Don't use static variables if using spring to feed the config values in
2019-03-31 21:42:29 +05:30
Arpit Mohan
a82a931093 Adding mustache template substitution to QueryObj.
Now we can query postgres DB on the fly! Yipee!
2019-03-31 21:22:06 +05:30
Arpit Mohan
28ef85b893 Adding name and confirmationMsg to the query collection 2019-03-30 16:41:44 +05:30
Arpit Mohan
ad2310bae0 Adding properties to a widget 2019-03-30 16:22:14 +05:30
Arpit Mohan
3bdfd13284 Adding the APIs to add plugins and query commands
Currently, there is a single executor implemented PostgresDBPluginExecutor which returns some dummy results. The entire framework exists to choose and instantiate the appropriate executor implementation at runtime.
2019-03-30 16:14:54 +05:30
Arpit Mohan
a57d31fbb2 Adding the system.properties file for java version
Heroku needs this for determining java version
2019-03-30 13:12:49 +05:30
Arpit Mohan
8f4bfd59fc Adding application-local.properties
This is to ensure that we can provide different types of mongo configurations for different environments
2019-03-30 13:08:43 +05:30
Arpit Mohan
e553470095 Moving the code to the top level to remove one-level of folder indirection 2019-03-30 13:04:05 +05:30
Arpit Mohan
4733ebf95b Removing Go code from the repo. This is now pure Java spring boot app 2019-03-30 13:01:06 +05:30
Arpit Mohan
d786890834 Adding the staging properties with mongodb atlas setup 2019-03-30 12:58:34 +05:30
Arpit Mohan
cef6946859 Adding the LayoutController that will store the DDL for the page layouts
Also adding the getById function in the BaseController so that all CRUD APIs will automatically support that API call.
2019-03-30 12:23:21 +05:30
Arpit Mohan
f8b382940d Adding basic authentication to the server.
This will allow us to host it on a webserver for integration purposes.
2019-03-30 12:01:24 +05:30
Arpit Mohan
8ccd001652 Adding abstractions for CRUD APIs.
Now we can easily add controllers for any resource quickly by simply adding a few files.
2019-03-19 19:39:05 +05:30
Arpit Mohan
f7aaafacfb Moving to Mongo instead of Postgresql for storage.
This will allow us to store the widget, plugin & page information much more cleanly and directly into the DB.
2019-03-19 12:13:21 +05:30
Arpit Mohan
9cea9f94f2 Completing the CRUD for the widget domain. 2019-03-19 02:28:00 +05:30
Arpit Mohan
e4f59ff941 Adding the Spring java API for creating Widget.
Migrating the code to Spring Java instead of Golang
2019-03-19 01:50:32 +05:30