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
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
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
db0532941d
Automatically add protocol to URL provided to cURL command.
2020-05-19 04:23:58 +00:00
Shrikant Kandula
c4d3d535a1
Rename isExecuteOnLoad to executeOnLoad.
...
The `is` prefix apparently makes Spring unhappy.
2020-05-18 12:13:54 +00:00
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
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
Shrikant Kandula
7f4d32e7d4
Report error when cURL command is invalid.
2020-05-12 04:12:55 +00:00
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
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
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
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
1dbb98e1e8
Fix cURL import bugs with new cURL command parser
2020-04-28 09:09:03 +00:00
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
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
08b7f51d5d
Datasource API cleanup and better error reporting
2020-04-17 07:27:56 +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
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
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
0ad15b4cb6
Fix: Duplicate key error when reusing the name of a deleted application
2020-04-08 12:09:41 +00:00
Shrikant Kandula
6d24b996e1
Don't nest into Enum properties when copying bean properties.
2020-04-06 07:27:24 +00:00
Shrikant Kandula
e5fd048205
New parser for extracting interpolations from Mustache templates
2020-04-02 13:24:55 +00:00
Arpit Mohan
b7b7328c3f
Merge branch 'release' into feature/acl-spring-object
2020-04-02 13:53:31 +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
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
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
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
Arpit Mohan
d384dac7ec
Minor code clean up
2020-03-19 00:54:04 +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
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
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
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
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
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
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
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
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
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
2e11a5c2d5
Added datasource configuration to the provider to support the provider level configurations in rapid api
2020-02-14 06:32:34 +00:00
Trisha Anand
670ca4cb7e
Added log for execute action
2020-01-15 09:13:27 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
bb84e74c23
Re-arranging the files to fix bad merge that threw compile errors
2019-09-16 17:04:07 +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