Commit Graph

698 Commits

Author SHA1 Message Date
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
cf2ebe53b3 Merge branch 'feature/new-user-group-assignemtn' into 'release'
Assigning groups & permissions to new user signups

When a new user signs up, a new personal organization is created for that user. Default permission groups are created for this  personal organization based on the database that contains this information in the `groups` collection with organization name `default-org`. These default groups should NEVER be deleted from the DB. 

The user is then assigned to these default groups which allows him/her to administer their personal organization as org admins 
would.

Also, the `User` domain object now returns the email ID as the username of the user.

See merge request theappsmith/internal-tools-server!108
2019-12-11 10:20:29 +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
Arpit Mohan
f0af6a06fe Merge branch 'feature/signup-create-organization' into 'release'
Create personal workspace/organization on user create

Create user now also leads to creation of personal organization for the user. It also gets assigned as the default (current) workspace (or currentOrganizationId)

See merge request theappsmith/internal-tools-server!105
2019-12-10 10:58:34 +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
85303ab188 Merge branch 'release' into 'master'
Release to Master sink

See merge request theappsmith/internal-tools-server!106
2019-12-10 10:46:32 +00:00
Arpit Mohan
cebd1cfef3 Merge branch 'bug/published-actions' into 'release'
Published page has layout on load actions and layout load actions now.

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

See merge request theappsmith/internal-tools-server!104
2019-12-10 07:25:08 +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
69f77c19da Merge branch 'feature/reset-password-email' into 'release'
Adding email sending capability when the user resets their password

At the moment, the email sending is sent in the same thread that slows down the API request. Future changes should include:
1. Publish the request to send an email to Redis and actually send the email on subscribe event.
2. Disable the email sending in local environments.

See merge request theappsmith/internal-tools-server!102
2019-12-08 15:46:17 +00:00
Arpit Mohan
fdba2f62ef Adding email sending capability when the user resets their password 2019-12-08 15:46:17 +00:00
Trisha Anand
73cf8955d1 Merge branch 'feature/dsl-parsing' into 'release'
Find the page load actions

See merge request theappsmith/internal-tools-server!98
2019-12-08 13:41:15 +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
Arpit Mohan
c937c234b9 Merge branch 'feature/user-password' into 'release'
Implementing Forgot Password flow + DB based password authentication

Changes include:
1. Create/Update user APIs now use `passwordEncoder` to encode the user password before storing it in the database.
2. Forgot password flow has been added.
3. Added a `PasswordEncoderConfig` to configure the encoder from a single location
4. Moving from in-memory `MapUserDetails` to DB for checking the password for a user during login.
5. Using `WithUserDetails` in all the tests because we now use our custom `User` domain object instead of Spring's `User` object in our session. The earlier implementation in the test cases was using Spring's implementation.
6. Adding a bunch of javadoc comments to `UserServiceImpl`

See merge request theappsmith/internal-tools-server!101
2019-12-06 12:15:28 +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
e058ec1614 Merge branch 'feature/actions-by-page-application' into 'release'
Get actions by pageId & applicationId

Query params "pageId" and "applicationId" can be used on Get call to actions api to all the actions by page Ids and application ids.

See merge request theappsmith/internal-tools-server!99
2019-12-06 09:48:32 +00:00
Trisha Anand
3137b54f12 Adding query params to get actions API call 2019-12-06 09:48:31 +00:00
Trisha Anand
243d12ad64 Merge branch 'feature/js-actions' into 'release'
JS functions can now be stored to an action.

See merge request theappsmith/internal-tools-server!100
2019-12-05 09:19:45 +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
feb9e0726f Merge branch 'feature/plugin-fields' into 'release'
Renaming executorClass to packageName and adding uiComponent field to plugin object

See merge request theappsmith/internal-tools-server!95
2019-11-29 08:18:21 +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
29258d6913 Merge branch 'feature/dsl-action-extension' into 'release'
Dsl actions now store not just the ids but also the name, plugin type and json path keys.

See merge request theappsmith/internal-tools-server!94
2019-11-29 07:16:16 +00:00
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
Trisha Anand
3b75da393f Merge branch 'release' into 'master'
Release

See merge request theappsmith/internal-tools-server!92
2019-11-27 11:59:20 +00:00
Arpit Mohan
8a442d429c Dummy commit to trigger Heroku deployment 2019-11-27 16:37:03 +05:30
Arpit Mohan
15e6eee725 Merge branch 'feature/filter-plugin-type' into 'release'
Adding query parameters to filter get API calls

Fixes #92 

Adding MultiValueMap in the BaseService class to ensure that all controllers support query parameters for the GET API call. Each service will have to handle this independently though. There is no generic default implementation for handling query parameters as of now. 

In the Plugin APIs handling the filtering of fetching plugins specifically by type. This should be used as a template implementation to create a generic implementation of this nature to query the db generically for a list of given fields and values. Will make future API implementations much simpler.

See merge request theappsmith/internal-tools-server!91
2019-11-27 10:51:43 +00:00
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
cfa5d57157 Merge branch 'bug/get-datasource-per-organization' into 'release'
Datasources are now returned only for the organization of the current user.

Fixes #67

See merge request theappsmith/internal-tools-server!83
2019-11-27 08:22:30 +00:00
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
313b2707aa Merge branch 'feature/default-create-page-on-application-creation' into 'release'
Create application also leads to a new page being created along with it.

Closes #78

See merge request theappsmith/internal-tools-server!82
2019-11-27 08:17:46 +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
1637d2c7c2 Merge branch 'hotfix/action-execution-timeout-bug' into 'release'
Fixing action execution timeout bug which was defaulting the execution timeout to 0 instead of 10.

See merge request theappsmith/internal-tools-server!89
2019-11-26 12:52:54 +00:00
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
Arpit Mohan
bd1373cd10 Merge branch 'feature/name-instead-of-id-for-page-application' into 'release'
Use page and application names instead of ids

Fixes #85

We now introduce the ability to fetch application & page details via their names and not just with the ids. This is to ensure that the frontend can navigate through pages and applications using just the name. It's a lot more user friendly.

See merge request theappsmith/internal-tools-server!81
2019-11-26 12:21:20 +00:00
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
6a16c34583 Merge branch 'feature/plugin-execution-timeout' into 'release'
Feature/plugin execution timeout

Action execution timeout can now be configured inside actionConfiguration. If the execution takes longer than the configured value (or default 10s) an error with message "Plugin Execution timed out." is returned.

Fixes #61 

See merge request theappsmith/internal-tools-server!88
2019-11-26 11:34:27 +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
db5deb520e Merge branch 'feature/gitlab-ci-docker-org' into 'release'
Converting the docker conatiners to appsmith organization

See merge request theappsmith/internal-tools-server!87
2019-11-21 07:53:56 +00:00
Arpit Mohan
2e31a74cd9 Converting the docker conatiners to appsmith organization 2019-11-21 13:20:15 +05:30
Trisha Anand
4966cb760e Merge branch 'bug/unique-action-per-dsl' into 'release'
Converted list to set to ensure unique action ids in the list of actions per dsl

Closes #90

See merge request theappsmith/internal-tools-server!85
2019-11-21 07:44:20 +00:00
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
4fad584158 Merge branch 'feature/action-page-bind' into 'release'
Extract action names from the DSL and bind the action to the page.

Closes #84

See merge request theappsmith/internal-tools-server!80
2019-11-21 07:30:07 +00:00