Adding soft delete for application domain object and custom repository functions
This change adds custom implementations of the following for Mongo DB
1. Factory Bean - The bean which instantiates the factory
2. Factory - The factory class that instantiates the custom query lookup strategy class
3. QueryLookupStrategy - The class that adds default filtering for delete=true records from the DB.
At this moment, this change will only work for custom repository functions. Default repository functions exposed by JPA still don't acknowledge the custom query lookup strategy. Refer to: https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.custom-implementations for details on how to do this.
See merge request theappsmith/internal-tools-server!186
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.
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.
Bug : After moving action, the action's isValid field becomes null leading to null pointer error.
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.
See merge request theappsmith/internal-tools-server!175
UpdateLayout Null Pointer Exception : In case the layouts are null or the DSL is null, it should be handled gracefully.
See merge request theappsmith/internal-tools-server!165
Converted Exceptions thrown in RestAPI plugin to Appsmith Plugin Exception so that its handled correctly.
See merge request theappsmith/internal-tools-server!162
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
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).
Mock delete application which returns the application object which was being attempted to be deleted.
See merge request theappsmith/internal-tools-server!155