Commit Graph

153 Commits

Author SHA1 Message Date
Trisha Anand
cdf3c720de Merge branch 'bug/72' into 'master'
Fix for dsl getting rewritten

See merge request theappsmith/internal-tools-server!56
2019-11-05 07:37:39 +00:00
Trisha Anand
bd846bfc8d Fix for dsl getting rewritten 2019-11-05 07:37:39 +00:00
Trisha Anand
9fa01ab06a Merge branch 'bug/73' into 'master'
Handles empty params in a request

See merge request theappsmith/internal-tools-server!55
2019-11-05 05:51:14 +00:00
Trisha Anand
68e30ff297 Handles empty params in a request 2019-11-05 05:51:14 +00:00
Trisha Anand
566a56778a Merge branch 'bug/restApi' into 'master'
Bug/rest api

Closes #70

See merge request theappsmith/internal-tools-server!54
2019-11-04 11:20:18 +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
a10a707ec0 Merge branch 'hotfix/heroku-build' into 'master'
Fixing Heroku build that's failing because of git-commit-id maven plugin

See merge request theappsmith/internal-tools-server!42
2019-10-17 04:07:07 +00:00
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
15bee1679d Merge branch 'feature/docker-compose-install' into 'master'
Create docker-compose file for custom installation

Adding the maven docker container build command via Maven. This ensures that we don't need to local Docker daemon to build the container. Also, the container layers are smaller because of the usage of `jib` a maven-plugin by Google. Read more at: https://phauer.com/2019/no-fat-jar-in-docker-image/

Also adding seed data for MongoDB that allows us to ship with existing data in the database when users install our app.

See merge request theappsmith/internal-tools-server!41
2019-10-16 11:27:03 +00:00
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
90e6b7a939 Merge branch 'hotfix/acl-bundle' into 'master'
Adding more acl rules for properties and action controllers

See merge request theappsmith/internal-tools-server!40
2019-10-14 12:29:20 +00:00
Arpit Mohan
f51de50725 Adding more acl rules for properties and action controllers 2019-10-14 12:29:20 +00:00
Arpit Mohan
7f6b249bfd Merge branch 'feature/acl-bundle' into 'master'
Serving static bundle for ACL in Open Policy Agent

Open Policy Agent requires the server to serve a static bundle (tar.gz) file that contains the list of policies and data (if any) on which the authorization will be conducted on. This has been implemented using RouterFunctions (for lack of a better implementation) and at the moment, the bundle is served without any authentication. 

TODO: In the future, add authentication just for this endpoint so that only the OPA server can access this bundle.

Also optimizing the AclFilter to make a single MongoDB query instead of multiple for each group that the user is a part of.

See merge request theappsmith/internal-tools-server!39
2019-10-14 09:24:10 +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
0d4d9dd7c2 Merge branch 'feature/postgres' into 'master'
Multi data source support for plugins using Resource Context

See merge request theappsmith/internal-tools-server!38
2019-10-11 10:32:18 +00:00
Trisha Anand
e1d59ca3a6 Multi data source support for plugins using Resource Context 2019-10-11 10:32:18 +00:00
Arpit Mohan
9d01cecbd5 Merge branch 'feature/acl-opa' into 'master'
ACL Framework for limiting access to various controllers

We use open policy agent (OPA) in order to control ACL. The policy file is present in `src/main/resources/acl.policy` file.

The `ACLFilter` will apply the ACL policy for all endpoints. In the future, we'll add a regex to the URL matcher to ensure that public URLs do not have ACL filters applying to them. The actual API call to OPA side-car is made through `ACLService`

For permissions, the hierarchy of data is org -> groups -> permissions. Users will be part of groups and also have individual permissions (if required). While evaluating their ACL, we will consider a union of the resolved permissions from groups and user-specific permissions. All control will then be applied on those permissions only. 

Also adding a `signupController` & `SignupService` that creates the org, default groups for the org and assigns the admin user to the org. This will ensure that on user signup, the user becomes the admin of their created or. This flow will undergo more changes as we develop the signup flow with the client.

See merge request theappsmith/internal-tools-server!36
2019-10-11 10:31:28 +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
d6651a69ac Merge branch 'bug/redisDown' into 'master'
Fixing redis connection changes

See merge request theappsmith/internal-tools-server!37
2019-10-10 11:53:03 +00:00
Trisha Anand
7315802508 Fixing redis connection changes 2019-10-10 11:53:03 +00:00
Trisha Anand
39f0cb7e83 Merge branch 'feature/redit-install-plugin' into 'master'
redis install plugin for multi Appsmith-server with single mongo db deployments

See merge request theappsmith/internal-tools-server!35
2019-10-07 09:02: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
0d63de8404 Merge branch 'feature/redis-pubsub' into 'master'
Adding the redis listener via spring-data-redis-reactive.

See merge request theappsmith/internal-tools-server!34
2019-10-07 08:18:54 +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
ccf2be5e6c Merge branch 'feature/install-plugin' into 'master'
Install Plugin

See merge request theappsmith/internal-tools-server!33
2019-10-04 04:27:11 +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
ee3a2a8b8b Merge branch 'feature/rest-api-extension' into 'master'
REST API Plugin

Closes #25

See merge request theappsmith/internal-tools-server!31
2019-09-30 18:17:35 +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
4fcdd76588 Merge branch 'feature/spring-update' into 'master'
Updating to the latest spring boot version

See merge request theappsmith/internal-tools-server!32
2019-09-30 06:05:07 +00:00
Arpit Mohan
71ac6f4488 Updating to the latest spring boot version 2019-09-30 11:32:16 +05:30
Trisha Anand
e501de6498 Merge branch 'hotfix/segment-bug' into 'master'
Fixing minor bugs in the Segment analytics flow

See merge request theappsmith/internal-tools-server!30
2019-09-25 17:06:28 +00:00
Trisha Anand
51d5c93119 Fixing minor bugs in the Segment analytics flow 2019-09-25 17:06:28 +00:00