Commit Graph

382 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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