trishaanand
a5a3a5f4a2
Bug fix - In case of invited user signing up on Appsmith, the password is getting doubly hashed leading to sign in breaking for this user. ( #51 )
...
* Bug fix is working. Added a test case which is not working.
* Code cleanup. Test case fixed. Now, when we set the user to enabled, we also store the password that has been passed to the flatMap.
* Minor code cleanup.
2020-07-08 13:16:13 +05:30
trishaanand
765f1c7164
Get user profile should return anonymousUser instead of 401 unauthorized in case the API is called without logging in. ( #50 )
...
This will help us display the 404 page on the client reliably.
2020-07-08 11:54:00 +05:30
Shrikant Sharat Kandula
ff3c0c0451
Fix column ordering not being consistent in responses from PostgresPlugin
2020-07-07 10:56:56 +05:30
Shrikant Sharat Kandula
8c113834d6
Fix error when dealing with null value columns in Postgres plugin ( #46 )
2020-07-07 10:52:09 +05:30
trishaanand
c9703ea3b1
Special 404 handling and adding a few paths to the unauthenticated list to allow for public applications ( #45 )
...
* 404 error added for a few API calls which would be specially handled on the frontend to display an ACL 404 error.
* Putting everything except GET actions, GET pages, and GET applications behind authenticated. This ensures that in the future public applications (view only) would not lead to 401 but any other page would.
* Code formatted.
2020-07-06 20:21:07 +05:30
Shrikant Sharat Kandula
afe0dfdc75
Dates from Postgres queries now show up as ISO date strings ( #5 )
...
* Dates from Postgres queries now show up as ISO date strings
* Use constant for date column name in PostgresPlugin
* Fix formats for more date-time types on Postgres
* Add support for time and timestamp data types in Postgres plugin
* Add support for timestamptz column data type in Postgres plugin
* Add support for interval data type in PostgresPlugin
2020-07-06 18:52:41 +05:30
Shrikant Sharat Kandula
f0658d69b2
Read RapidAPI variables directly form environment ( #38 )
2020-07-06 14:56:39 +05:30
Shrikant Sharat Kandula
56547ec02f
Move application configuration to be loaded from environment variables ( #23 )
...
* Move application configuration to be loaded from environment variables
* Remove unused sentry.properties
* Make missing value sentinel a constant and ignore all *.env files
* Removed now-used ACL properties
* Prefix RapidAPI environment variable with APPSMITH_
* Fix application properties not being loaded into static fields
* Remove application-test.properties file
* Add required env variables for test in GitHub
* Quote URLs for MongoDB and Redis in test config
* Change RAPIDAPI to RAPID_API in environment variable names
* Source .env file in the root of repo in start script
2020-07-06 14:35:56 +05:30
trishaanand
4a05ba6ac5
An invited user on signup should be set to enabled and should not lead to duplicate key exception. ( #36 )
2020-07-06 12:46:46 +05:30
Arpit Mohan
3035ec9bef
Adding the Github action workflow for the server code ( #24 )
...
* Adding the Github action workflow for the server code
* Modifying the redis endpoint in application-test.properties to point to localhost because the Docker service exposes ports to the host
2020-07-03 14:40:57 +05:30
Arpit Mohan
fdeed757ff
Fixing the move action API by removing invocations to subscribe ( #17 )
...
* Fixing the move action API by removing invocations to subscribe
Calling subscribe() inside function calls is an anti-pattern and we shouldn't be doing it.
The reactiveContext is not called if the subscribe() function is called in the middle of execution flows. This breaks DB queries.
* Added test case for move action.
Co-authored-by: Trisha Anand <trisha@appsmith.com>
2020-07-02 15:41:45 +05:30
Shrikant Sharat Kandula
0dd1114917
Clean up MongoDB object types before sending data to client ( #8 )
2020-07-01 16:40:39 +05:30
Shrikant Sharat Kandula
95b9860bf9
Give appropriate error when method is invalid in cURL command ( #1 )
2020-07-01 12:37:59 +05:30
Trisha Anand
930e577f98
Bug Fix : When page name is updated, the policies should not get overwrritten. Changed the base service function to reset the empty policies to null in case the update is not used to update the policies.
2020-06-27 19:45:24 +00:00
Trisha Anand
76e3db497c
Bug fix : Google SSO for sign up led to the organization id for personal organization not getting set up.
2020-06-26 11:59:33 +00:00
Arpit Mohan
bbf0aef450
Merge branch 'bug/embedded-datasource-without-organization-id' into 'release'
...
When organizationId is null in a datasource, fail with the right error message
The organization id is subsequently used to find a matching plugin (checking for installation essentially), but when organization id is missing, this query never returns. But the error message reads as if the plugin is not installed, whereas it should've been that organization id is missing.
See merge request theappsmith/internal-tools-server!406
2020-06-26 11:43:16 +00:00
Shrikant Kandula
d5921ea52d
When organizationId is null in a datasource, fail with the right error message
2020-06-26 11:43:16 +00:00
Trisha Anand
779c79476d
Merge branch 'bug/acl-update-role-race-condition' into 'release'
...
Race condition bug caught in remove user from organization flow where multiple applicaitons/pages/actions exist for an organization.
See merge request theappsmith/internal-tools-server!407
2020-06-25 10:15:07 +00:00
Trisha Anand
57f4f734dd
Race condition bug caught in remove user from organization flow where multiple applicaitons/pages/actions exist for an organization.
2020-06-25 15:39:32 +05:30
Shrikant Kandula
3217daab14
Fix Mustache rendering to work on object fields directly
2020-06-25 09:58:20 +00:00
Trisha Anand
6d103b4939
Untested changes for fixing the bug where duplicate policies are getting created for the same permission.
2020-06-25 08:09:59 +00:00
Trisha Anand
a73d182d73
Merge branch 'bug/org-creation' into 'release'
...
Bug fix : Create Organization is failing because the user is read from the session and not from the repository. Now reading the user at appropriate places.
See merge request theappsmith/internal-tools-server!405
2020-06-24 12:14:25 +00:00
Trisha Anand
aebb50d216
Bug fix : Create Organization is failing because the user is read from the session and not from the repository. Now reading the user at appropriate places.
2020-06-24 17:30:24 +05:30
Arpit Mohan
b63ca6726d
Merge branch 'feat/plugin-templates' into 'release'
...
Add server-side templates support for plugins
Two main themes in this MR:
1. Add support for saving query templates as resource files inside a plugin. This has been done for both Postgres and MongoDB plugins, based on current template contents.
2. Loading of form JSON is now reactive. The blocking call has been moved inside a `Mono.fromSupplier`.
3. The loading of from JSON as well as the templates is cached and are loaded on-demand. This means that the templates are loaded once for a plugin through the lifetime of the server process, and that they are loaded only at the first time they are needed.
4. If loading of these resources fails, we try again when they are needed the next time.
See merge request theappsmith/internal-tools-server!385
2020-06-24 11:08:25 +00:00
Shrikant Kandula
eee2cfcaff
Add server-side templates support for plugins
2020-06-24 11:08:25 +00:00
Shrikant Kandula
40b5466bd8
Fill response body with value when running findAndModify Mongo query
2020-06-24 11:05:19 +00:00
Shrikant Kandula
d7655ebb3c
Add image location and documentation link fields to plugins
2020-06-24 08:28:54 +00:00
Shrikant Kandula
522e6221f7
Make NO_SSL the default for Mongo datasources
2020-06-24 11:02:34 +05:30
Arpit Mohan
0be492e8e9
Fixing OAuth2 SSO login for new ACL flow
2020-06-23 13:19:22 +00:00
Trisha Anand
cd30e36eaa
Hacky solve for setting the action execution request in case of failures in URL/HTTP Method/etc.
2020-06-19 23:43:32 +05:30
Trisha Anand
0603da29ee
User test - Add request URL and http method to the execution result
2020-06-19 16:24:58 +00:00
Shrikant Kandula
5ce19962a3
Merge branch 'chore/sending-email-should-be-nonblocking' into 'release'
...
Sending emails is now done in a non-blocking way
See merge request theappsmith/internal-tools-server!396
2020-06-19 07:14:43 +00:00
Shrikant Kandula
5f0a3034b8
Sending emails is now done in a non-blocking way
2020-06-18 17:29:36 +05:30
Shrikant Kandula
70c312ca40
Merge branch 'bug/disallow-delete-datasource-with-actions' into 'release'
...
Fail deleting datasource if there's actions against it
See merge request theappsmith/internal-tools-server!388
2020-06-18 10:41:49 +00:00
Shrikant Kandula
9f6a4f6ea5
Fail deleting datasource if there's actions against it
2020-06-18 10:41:48 +00:00
Shrikant Kandula
45961ddcde
Merge branch 'bug/fail-on-invalid-page-id-when-creating-action' into 'release'
...
Fail with an error if can't find page when creating an action
See merge request theappsmith/internal-tools-server!394
2020-06-18 10:25:13 +00:00
Trisha Anand
63852041de
Merge branch 'bug/delete-application-app-viewer' into 'release'
...
Bug Fix : Application and page can only be deleted if you have manage application/page permissions respectively.
See merge request theappsmith/internal-tools-server!395
2020-06-18 10:20:50 +00:00
Shrikant Kandula
f19764ab99
Merge branch 'bug/space-not-needed-in-header-in-curl' into 'release'
...
Fix parse error when there's a space in header in curl command
See merge request theappsmith/internal-tools-server!390
2020-06-18 10:11:39 +00:00
Trisha Anand
4337e88934
Application and page can only be deleted if you have manage application/page permissions respectively.
2020-06-18 15:35:30 +05:30
Shrikant Kandula
1d5fa960db
Fail with an error if can't find page when creating an action
2020-06-18 15:05:55 +05:30
Trisha Anand
ec8c63bfee
For invitation, throw a bad request error in case all the invite dto fields are not set.
2020-06-18 14:05:48 +05:30
Trisha Anand
e5282dac11
In case a page is opened in edit mode, it should open with permission of MANAGE_PAGE. In case the user is a viewer, the page must not open.
2020-06-17 17:34:26 +05:30
Trisha Anand
893698f09e
Merge branch 'release' into feature/acl-spring-object
...
# Conflicts:
# appsmith-server/src/main/java/com/appsmith/server/constants/FieldName.java
2020-06-17 15:10:23 +05:30
Trisha Anand
8fc99cf0bd
In case a user is invited to an organization as developer, correct top permissions are being assigned via Appsmith role.
2020-06-17 09:33:00 +00:00
Shrikant Kandula
8e40240f25
Fix parse error when there's a space in header in curl command
2020-06-17 12:32:08 +05:30
Arpit Mohan
c6af229a97
Merge branch 'bug/default-page-action-refactor' into 'release'
...
Adding the widget names set to the default layout for a page
During action name refactor, we require the widget names to exist in the layout. Hence all default layouts must have the widgetName set.
See merge request theappsmith/internal-tools-server!387
2020-06-16 05:25:54 +00:00
Arpit Mohan
a4132d5845
Adding the widget names set to the default layout for a page
2020-06-16 10:50:07 +05:30
Shrikant Kandula
dd0ba857c2
Fix cURL import when using --url argument
...
Also fixes cases where there's a space between `-X` and `POST` and
similar cases.
2020-06-16 09:59:43 +05:30
Trisha Anand
9dfb72720e
Fixed the broken test cases.
2020-06-12 19:35:01 +05:30
Trisha Anand
bb6dc61015
Build fix
2020-06-12 19:16:31 +05:30
Trisha Anand
73757c3425
Merge branch 'release' into feature/acl-spring-object
...
# Conflicts:
# .gitignore
# appsmith-plugins/mongoPlugin/plugin.properties
# appsmith-plugins/postgresPlugin/plugin.properties
# appsmith-plugins/rapidApiPlugin/plugin.properties
# appsmith-plugins/restApiPlugin/plugin.properties
# appsmith-plugins/restApiPlugin/src/main/java/com/external/plugins/RestApiPlugin.java
# appsmith-server/src/main/java/com/appsmith/server/constants/FieldName.java
# appsmith-server/src/main/java/com/appsmith/server/repositories/ActionRepository.java
# appsmith-server/src/main/java/com/appsmith/server/services/ActionServiceImpl.java
# appsmith-server/src/main/java/com/appsmith/server/services/DatasourceContextServiceImpl.java
# appsmith-server/src/main/java/com/appsmith/server/services/DatasourceServiceImpl.java
# appsmith-server/src/test/java/com/appsmith/server/services/ActionServiceTest.java
# appsmith-server/src/test/java/com/appsmith/server/services/ApplicationServiceTest.java
# appsmith-server/src/test/java/com/appsmith/server/services/LayoutServiceTest.java
# appsmith-server/src/test/java/com/appsmith/server/services/PageServiceTest.java
# build.sh
2020-06-12 19:14:31 +05:30
Shrikant Kandula
18476432ac
Don't invite users if they have any access in an org, not just admin.
2020-06-12 17:48:35 +05:30
Shrikant Kandula
b391f46e2c
ACL Migration Script
2020-06-12 11:54:21 +00:00
Trisha Anand
4eab663c8e
Bug fix for forgot password error "user not found". During reset password, the user is not logged in and hence the permissions can not be applied during repository findByEmail
2020-06-12 13:57:57 +05:30
Trisha Anand
3dafccba2e
In case of sending email for an existing user, fixed the URL.
2020-06-12 13:30:53 +05:30
Shrikant Kandula
ab83bc0223
Fix problem where not all apps were getting policies when invited.
2020-06-11 20:56:52 +05:30
Trisha Anand
e7e008dcd2
Fixed the repository function which was failing for fetching actions during updateLayout.
2020-06-11 07:22:16 +00:00
Arpit Mohan
01737b9599
Experimenting with maven-shade-plugin to create a fat-jar of the postgres dependency.
...
Will have to do this for all plugins. Currently, it's not registering the plugin with the SpringPluginManager
2020-06-10 11:11:23 +00:00
Shrikant Kandula
1ce336257c
Mark any 2xx status code in REST API plugin as successful execution.
2020-06-10 10:51:07 +00:00
Trisha Anand
7a658ce5ea
App viewer user in an organization should have read:organizations permission.
2020-06-10 15:55:29 +05:30
Trisha Anand
491afc3599
In case of global datasource, no need to check for organizationId during action create.
2020-06-10 09:08:01 +00:00
Trisha Anand
a89355a5ec
Fixes bugs : 1. read:datasource permission should not be applied to application; 2. A user shouldn't be added to an organization if the user already exists in the organization.
2020-06-10 06:22:16 +00:00
Arpit Mohan
3cf8ff008f
Hacky fix for the postgres plugin to work. Including the dependency in the appsmith-server/pom.xml file instead of the plugin
2020-06-10 10:46:09 +05:30
Trisha Anand
ac06cc9668
1. user permissions during create/update of actions and datasources would now be set.
...
2. During update, policies are set to null in the update object to ensure that the policies are not overwritten to empty set.
2020-06-09 20:25:13 +05:30
Arpit Mohan
bbd33c2968
Removing the query field in ActionConfiguration and using String body as the field to store the query
...
This is to simplify the query pane on the frontend client. The client doesn't need to have separate interfaces for sql and non-sql plugins. All queries will be sent to the server in the form of a String that is parsed in different formats based on the plugin.
Also adding test cases for PostgresPlugin. Used TestContainers to simulate the postgres db in Docker inside the Java test itself. Very useful.
2020-06-09 12:12:27 +00:00
Arpit Mohan
99e7519550
Handling form data via the field bodyFormData in ActionConfiguration
...
This is because the client sends us the data for form-data in the form of a list of Property fields with keys and values. This is consistent with how the client stores & renders headers & query parameters as well.
For MediaType application/x-www-form-urlencoded we will use the bodyFormData field.
2020-06-09 05:48:16 +00:00
Trisha Anand
061577d2c9
Bug : When the user tries to invite without selecting the role user, this leads to null pointer exception.
...
Fix : A user CAN NOT be invited to an organization without specifying the role.
2020-06-08 14:56:12 +00:00
Trisha Anand
a888d54059
Changed the get all actions function to fix the bug where find by Example is not working. Instead the same has now been implemented using criteria.
2020-06-08 12:05:49 +00:00
Trisha Anand
9ac7e817cc
Merge branch 'feature/acl-remove-getCurrentOrganization' into 'feature/acl-spring-object'
...
Removed the usage of get current organization id. Added organization id to a few api calls.
See merge request theappsmith/internal-tools-server!367
2020-06-08 06:45:04 +00:00
Trisha Anand
a31796a216
Removed the usage of get current organization id. Requires addition of organization id to a few api calls.
2020-06-08 06:45:04 +00:00
Trisha Anand
f9d63f9881
Adding a 3P Api to a page now also expects the client to send the organization id.
2020-06-05 16:14:15 +05:30
Trisha Anand
87aafd6cf4
Adding test case for testDatasource
...
Refactoring the testDatasource code by moving the business logic to the service layer.
2020-06-05 10:05:23 +00:00
Arpit Mohan
1a68b7f561
Fixing the DSL Json for default layouts in new pages.
2020-06-04 16:13:47 +05:30
Trisha Anand
9e1742c289
Add OrgId to the output of the api used to return all the page ids and names given an application (id or name)
2020-06-04 08:08:15 +00:00
Arpit Mohan
1ac69bab50
Modifying the default page name to Page1
...
Also creating a default empty layout when a new page is created. This ensures that the client can show the default message on new page creations.
2020-06-04 13:05:34 +05:30
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
d20e92a587
Modifying the Action object to include an array of Property for dynamicBindingPathList
2020-05-27 13:16:38 +05:30
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
59a83d414b
Added description to roles for organization appsmith roles.
2020-05-26 10:49:42 +05:30
Arpit Mohan
a569156029
Merge branch 'hotfix/action-error' into 'release'
...
Creating the actionExecutionResult object for error scenarios as well.
See merge request theappsmith/internal-tools-server!354
2020-05-23 07:23:13 +00:00
Arpit Mohan
e6b7ffca9c
Creating the actionExecutionResult object for error scenarios as well.
...
This ensures that we can populate the request fields for all action executions
2020-05-23 12:49:01 +05:30
Trisha Anand
0c9c95bc9a
Fixed the findAll repository function which was leading to get all actions via application id to throw an internal server error.
2020-05-22 15:56:09 +05:30
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
b13a7a5df3
Fix incorrect call to updatedAt.
2020-05-19 19:25:32 +05:30
Shrikant Kandula
329587f5ff
Fix NPE when using datasources without updatedAt.
2020-05-19 13:48:58 +00:00
Arpit Mohan
14c1778645
Merge branch 'bug/curl-auto-add-protocol' into 'release'
...
Automatically add protocol to URL provided to cURL command.
Notion ref: <https://www.notion.so/appsmith/CURL-import-for-incomplete-but-valid-URLs-like-www-google-com-leads-to-the-URL-not-getting-read-Th-9191456cb1b24cd68b92072c1a6f3ab6 >.
See merge request theappsmith/internal-tools-server!343
2020-05-19 04:23:59 +00:00
Shrikant Kandula
db0532941d
Automatically add protocol to URL provided to cURL command.
2020-05-19 04:23:58 +00:00
Arpit Mohan
85ea6563db
Merge branch 'hotfix/server-use-forward-headers' into 'release'
...
Adding the ForwardedHeaderTransform bean to enable spring to parse...
Adding the ForwardedHeaderTransform bean to enable spring to parse X-Forwarded-* headers from Nginx proxy
See merge request theappsmith/internal-tools-server!344
2020-05-19 03:56:40 +00:00
Arpit Mohan
158f5c8203
Adding the ForwardedHeaderTransform bean to enable spring to parse X-Forwarded-* headers from Nginx proxy
2020-05-19 09:22:33 +05:30
Shrikant Kandula
bffd68b1a9
Merge branch 'bug/postgres-empty-result' into 'release'
...
Don't fail after executing a non-SELECT query on Postgres.
See merge request theappsmith/internal-tools-server!341
2020-05-18 13:42:24 +00:00
Shrikant Kandula
c4d3d535a1
Rename isExecuteOnLoad to executeOnLoad.
...
The `is` prefix apparently makes Spring unhappy.
2020-05-18 12:13:54 +00:00
Shrikant Kandula
c18c344f4b
Don't fail after executing a non-SELECT query on Postgres.
2020-05-15 18:13:36 +05:30
Shrikant Kandula
180002a984
Handle errors when destroying stale connections.
...
This happens when the stale connection is an invalid connection object,
like when if it's created with invalid credentials etc.
2020-05-15 03:26:35 +00:00
Arpit Mohan
4fa254a449
Adding error log message whenever an action execution fails because of invalid datasource
2020-05-14 15:26:05 +05:30
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
9c48f42990
Rename ActionExecutionResult.shouldCacheResponse -> isExecutionSuccess.
2020-05-12 18:25:49 +05:30
Arpit Mohan
d2d0805146
Merge branch 'feat/use-unique-name-on-post-datasource' into 'release'
...
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.
See merge request theappsmith/internal-tools-server!333
2020-05-12 12:23:23 +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
Nikhil Nandagopal
5dad85ff3e
Update form.json
2020-05-12 09:48:56 +00:00
Arpit Mohan
f4d79ae25b
Merge branch 'bug/curl-error-reporting' into 'release'
...
Report error when cURL command is invalid.
See merge request theappsmith/internal-tools-server!327
2020-05-12 04:12:55 +00:00
Shrikant Kandula
7f4d32e7d4
Report error when cURL command is invalid.
2020-05-12 04:12:55 +00:00
Trisha Anand
963a3388c3
In CI, buidling and packaging ACL branch with a new tag for the deployment.
2020-05-11 21:15:19 +05:30
Shrikant Kandula
f3e448019d
Auth mechanism is not added to URI in the MongoPlugin. Fixed now.
2020-05-11 12:16:09 +05:30
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
02de2ea1f6
Removing Arn because its not being used anymore.
2020-05-08 21:08:16 +05:30
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
ffc4379a4d
Migration to install existing default plugins to existing organizations.
2020-05-08 11:46:13 +05:30
Shrikant Kandula
7673ee49eb
Merge branch 'chore/remove-index-annotations' into 'release'
...
Remove index annotations as they don't accurately reflect actual indexes
See merge request theappsmith/internal-tools-server!322
2020-05-08 01:58:43 +00:00
Shrikant Kandula
b8de4ef659
Remove index annotations as they don't accurately reflect actual indexes
2020-05-08 01:58:43 +00:00
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
485eb29e03
Added timeout in DslActionDTO which is used to represent actions inside a layout and in turn is used for page load action execution.
2020-05-07 15:06:16 +05:30
Shrikant Kandula
3e2dea8f84
Merge branch 'bug/hide-exception-class-in-plugin-error-message' into 'release'
...
Hide Exception class details in the Plugin error message.
See merge request theappsmith/internal-tools-server!321
2020-05-05 11:08:38 +00:00
Shrikant Kandula
e99c104fe7
Hide Exception class details in the Plugin error message.
2020-05-05 16:34:09 +05:30
Nikhil Nandagopal
8f95fe22a9
Update form.json
2020-05-05 10:46:58 +00:00
Nikhil Nandagopal
c4f3ccfd8b
Update form.json
2020-05-05 10:34:02 +00:00
Shrikant Kandula
bc55baeb1f
Merge branch 'feat/add-delete-datasource-perm-existing-groups' into 'release'
...
Add `delete:datasources` permission to all existing groups.
See merge request theappsmith/internal-tools-server!320
2020-05-05 09:19:40 +00:00
Shrikant Kandula
172be7e7e5
Merge branch 'bug/missing-default-database-name-in-mongo-form' into 'release'
...
Add missing default database field in Mongo plugin form.
See merge request theappsmith/internal-tools-server!319
2020-05-05 09:06:32 +00:00
Shrikant Kandula
f7f03c5ad7
Add delete:datasources permission to all existing groups.
2020-05-05 13:52:03 +05:30
Shrikant Kandula
57dc2205e2
Add missing default database field in Mongo plugin form.
2020-05-05 13:39:03 +05:30
Arpit Mohan
77b4ef9a00
Adding a docker image tag for the master commit. This will allow us to revert to previous versions of the image (if required)
2020-05-05 12:54:46 +05:30
Trisha Anand
c43218eea6
Merge branch 'release' into feature/acl-spring-object
2020-05-01 17:05:43 +05:30
Trisha Anand
1f25aac3a5
Untested mock get applications for home page.
2020-05-01 16:56:05 +05:30
Shrikant Kandula
8ea8fb295e
Handle 500 when JSON body doesn't make up an object data type.
2020-04-30 13:32:24 +00:00
Trisha Anand
bc99ce9244
Merge branch 'release' into feature/acl-spring-object
2020-04-30 17:50:32 +05:30
Shrikant Kandula
c8e8c9136d
Check the value of Content-Type before trying to make an HTTP call.
2020-04-30 16:50:17 +05:30
Shrikant Kandula
50a8bad19e
Merge branch 'bug/restapi-test-without-port' into 'release'
...
Fix testing of REST API datasources fails when no port is set.
See merge request theappsmith/internal-tools-server!307
2020-04-30 06:02:28 +00:00
Shrikant Kandula
be7f1c0a81
Fix testing of REST API datasources fails when no port is set.
2020-04-30 06:02:28 +00:00
Shrikant Kandula
fc1b73773e
More readable plugin names.
2020-04-29 11:49:06 +00:00
Shrikant Kandula
86669fa7e4
Merge branch 'feat/updated-plugin-form-configs' into 'release'
...
Update form.json for datasource configurations.
See merge request theappsmith/internal-tools-server!314
2020-04-29 10:59:46 +00:00
Shrikant Kandula
06e85c308f
Update form.json for datasource configurations.
2020-04-29 16:25:30 +05:30
Shrikant Kandula
7dfa1bd8ca
Add deletedAt field into the unique index of datasources and pages.
2020-04-29 16:16:09 +05:30
Trisha Anand
8db71d00a9
Merge branch 'release' into feature/acl-spring-object
2020-04-29 15:49:57 +05:30
Trisha Anand
89f179397f
Create action with template id was leading to mock response. Removing this to allow for copy of actions which have been created using 3p API
2020-04-29 10:19:01 +00:00
Trisha Anand
0b496e1ecc
Untested add policies to an object code.
2020-04-29 15:03:56 +05:30
Shrikant Kandula
079e185ed2
Add allowUserDatasources to plugins to hide from create datasource UI.
2020-04-28 12:44:56 +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
23bd4e1722
Add NO_SSL option to SSL authType to turn off SSL explicitly.
2020-04-28 12:31:34 +00:00
Trisha Anand
219a594a4c
URL decoding the name before searching for it.
2020-04-28 16:31:19 +05:30
Trisha Anand
e99ede9d86
Minor comments added for TODOs
2020-04-28 16:18:28 +05:30
Shrikant Kandula
89d04f11e7
Merge branch 'bug/show-password-in-datasource-form' into 'release'
...
Show passwords in datasource forms.
See merge request theappsmith/internal-tools-server!308
2020-04-28 09:34:46 +00:00
Shrikant Kandula
b092692922
Merge branch 'bug/npe-if-opa-not-ready' into 'release'
...
Fix NPE when accessing services before OPA is ready.
See merge request theappsmith/internal-tools-server!300
2020-04-28 09:22:05 +00:00
Shrikant Kandula
6fd23f38b8
Merge branch 'bug/curl-parser' into 'release'
...
Fix cURL import bugs with new cURL command parser
See merge request theappsmith/internal-tools-server!306
2020-04-28 09:09:03 +00:00
Shrikant Kandula
1dbb98e1e8
Fix cURL import bugs with new cURL command parser
2020-04-28 09:09:03 +00:00
Shrikant Kandula
0a05036f9f
Show passwords in datasource forms.
2020-04-28 11:12:03 +05:30
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
Shrikant Kandula
2adad6b3b5
Merge branch 'bug/spread-operator-in-mustache-templates' into 'release'
...
Fix page-load action not being picked up when using the spread operator.
See merge request theappsmith/internal-tools-server!299
2020-04-27 08:11:22 +00:00
Shrikant Kandula
ce930181cd
Fix page-load action not being picked up when using the spread operator.
2020-04-27 08:11:21 +00:00
Shrikant Kandula
d0e47ea2ea
Merge branch 'feat/delete-datasources-api' into 'release'
...
Add delete service operation for datasources.
See merge request theappsmith/internal-tools-server!305
2020-04-27 08:01:16 +00:00
Shrikant Kandula
090e00ee13
Add delete service operation for datasources.
2020-04-27 08:01:16 +00:00
Shrikant Kandula
16f2df38f1
Merge branch 'bug/npe-in-appsmith-exception' into 'release'
...
Fix potential NPE in AppsmithException. Also removed unused methods.
See merge request theappsmith/internal-tools-server!298
2020-04-27 07:51:18 +00:00
Shrikant Kandula
a96b1005ff
Fix potential NPE in AppsmithException. Also removed unused methods.
2020-04-27 07:51:18 +00:00
Trisha Anand
2fa879fbd4
Minor code cleanup
2020-04-24 15:15:39 +05:30
Trisha Anand
6ee1a58a9a
Added endpoint in marketplace to fetch provider by id if required
2020-04-23 19:02:14 +05:30
Shrikant Kandula
e0880c7d31
Support separate default database for MongoPlugin, besides authDatabase.
2020-04-23 11:09:02 +00:00
Trisha Anand
a8f32d8b2a
Merge branch 'release' into feature/acl-spring-object
...
# Conflicts:
# appsmith-server/src/main/java/com/appsmith/server/services/MarketplaceService.java
2020-04-23 14:45:40 +05:30
Nikhil Nandagopal
18acf373f5
Update form.json
2020-04-23 06:08:25 +00:00
Trisha Anand
dacc6a5c9e
The header key should be matched to all possible variations : Content-Type, content-type, etc. This fixes that.
2020-04-22 18:13:31 +05:30
Trisha Anand
0c76b8f394
Minor comments
2020-04-22 17:27:55 +05:30
Trisha Anand
11cb6f6c56
Refactored some code which was being repeated.
2020-04-22 16:59:01 +05:30
Shrikant Kandula
a8842e962b
Fix NPE when accessing services before OPA is ready.
2020-04-22 08:41:40 +05:30
Shrikant Kandula
1a19a9b698
Merge branch 'bug/mongodb-multiple-endpoints' into 'release'
...
Support SSL connections with self-signed from MongoPlugin.
See merge request theappsmith/internal-tools-server!297
2020-04-21 13:34:18 +00:00
Shrikant Kandula
3ad98a4367
Support SSL connections with self-signed from MongoPlugin.
2020-04-21 18:53:30 +05:30
Trisha Anand
3148dec921
Search endpoint is now implemented with mock response deleted. It currently does exact name searches in providers by hitting the marketplace service.
2020-04-21 12:42:11 +00:00
Shrikant Kandula
3dfc62034f
Merge branch 'feature/datasource-form-config-apis' into 'release'
...
Add form config JSONs for individual plugins and an API for GETting them.
See merge request theappsmith/internal-tools-server!295
2020-04-21 12:23:23 +00:00
Shrikant Kandula
58c0f94508
Add form config JSONs for individual plugins and an API for GETting them.
2020-04-21 17:42:14 +05:30
Shrikant Kandula
9f2427f1df
Merge branch 'bug/mongo-plugin-test-on-unavailable-host' into 'release'
...
Fix MongoPlugin test returning success even when host is unavailable.
See merge request theappsmith/internal-tools-server!294
2020-04-21 10:22:50 +00:00
Shrikant Kandula
d94a231934
Fix MongoPlugin test returning success even when host is unavailable.
2020-04-21 15:39:44 +05:30
Shrikant Kandula
5c703d765e
Merge branch 'bug/invalid-port-in-restapi-test-gives-500' into 'release'
...
Fix 500 on invalid port sent for restapi plugin test request.
See merge request theappsmith/internal-tools-server!292
2020-04-21 08:23:03 +00:00
Trisha Anand
4cde1413fc
Provider credential steps is not a write only property. It must be readable.
2020-04-21 13:45:28 +05:30
Trisha Anand
504a165411
Added a few comments to ease understanding
2020-04-21 13:44:19 +05:30
Shrikant Kandula
a49ef95d5b
Fix 500 on invalid port sent for restapi plugin test request.
2020-04-21 13:40:12 +05:30
Trisha Anand
d7d31a43da
Fixed compile time error.
2020-04-20 18:30:47 +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
02a384698b
Merge branch 'bug/missing-response-meta-in-test-api' into 'release'
...
Fix missing `responseMeta` in response for /datasources/test endpoint.
See merge request theappsmith/internal-tools-server!291
2020-04-20 12:40:42 +00:00
Shrikant Kandula
94b166b3cb
Fix missing responseMeta in response for /datasources/test endpoint.
2020-04-20 17:40:42 +05:30
Trisha Anand
1e000c295f
In case the children tag exists in the DSL but is empty, we shouldnt try to extract widget names in that scenario.
2020-04-20 13:58:25 +05:30
Shrikant Kandula
654f1fa61e
Merge branch 'bug/missing-auth-type-throws-500' into 'release'
...
Fix 500 error when authentication.type is not provided in request body.
See merge request theappsmith/internal-tools-server!288
2020-04-20 04:58:57 +00:00
Shrikant Kandula
e0add48bd6
Fix mustache parsing fail when keys have double-quotes or backslashes.
2020-04-17 19:26:42 +05:30
Shrikant Kandula
ee556b729c
Fix 500 error when authentication.type is not provided in request body.
2020-04-17 14:35:53 +05:30
Arpit Mohan
46879fae2b
Committing the plugin.properties to let us run the code from IntelliJ
2020-04-17 13:35:07 +05:30
Shrikant Kandula
65d4c0e3e5
Fix NPE when invalids in Datasource is not initialized yet.
2020-04-17 13:17:05 +05:30
Shrikant Kandula
08b7f51d5d
Datasource API cleanup and better error reporting
2020-04-17 07:27:56 +00:00
Trisha Anand
133eaa7475
Setting the organization id in case of missing plugin. This was being skipped over earlier.
2020-04-16 22:19:35 +05:30
Trisha Anand
801cd59c14
Merge branch 'bug/marketplce-fixes' into 'release'
...
Updated Rapid API key. Also, now URL Encoding the route parameters as well.
See merge request theappsmith/internal-tools-server!285
2020-04-16 15:59:56 +00:00
Trisha Anand
8aaff70ef0
Updated Rapid API key. Also, now URL Encoding the route parameters as well.
2020-04-16 21:13:37 +05:30
Shrikant Kandula
822afdc064
Rich datasource support for MongoPlugin
2020-04-16 08:21:40 +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
684edfe406
Because of db migrations, the older provider ids saved in actions are no longer available. This leads to api pane not loading. Removing the error to return an empty provider so that the api pane can be loaded.
2020-04-14 14:18:04 +05:30
Trisha Anand
03b8de3300
If an action is being created from 3P template, since the marketplace service has been migrated, hit the marketplace server to fetch provider instead of local ProviderService.
2020-04-13 23:08:12 +05:30
Trisha Anand
b64ae7ee5c
First cut of code changes for update action where after the action is saved, the page layout is updated.
2020-04-13 08:57:57 +00:00
Trisha Anand
3692b4fa3e
Stupid coding error of using OR instead of AND.
...
Also Mono.zipping the update Action and update Layout instead of this.then because in some optimization done by Spring, one mono doesnt end up emitting.
2020-04-13 08:49:30 +00:00
Shrikant Kandula
01dd54eaea
Merge branch 'feature/enable-ssh-boolean-datasource' into 'release'
...
Add a boolean field for enabling/disabling SSH Proxy on datasources.
See merge request theappsmith/internal-tools-server!271
2020-04-13 07:22:29 +00:00
Shrikant Kandula
781eec0d24
Add a boolean field for enabling/disabling SSH Proxy on datasources.
2020-04-13 07:22:29 +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
42d0060ecd
Upgrade pf4j-spring to 0.6.0 so we can consistently use pf4j 3.2.0.
2020-04-09 19:55:58 +05:30
Shrikant Kandula
91dd8bf5c3
Fix old enums being used in Postgres plugin. Build failed because of this.
2020-04-08 12:45:18 +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
06dd5fccae
Merge branch 'bug/duplicate-key-error-on-app-name' into 'release'
...
Fix: Duplicate key error when reusing the name of a deleted application
See merge request theappsmith/internal-tools-server!264
2020-04-08 12:09:41 +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
065f0f1c3d
Suppress redundant-if warning in datasource validation method.
...
This method can be simplified, but is more readable this way.
2020-04-08 11:50:58 +00:00
Shrikant Kandula
c8dee3f279
Add Spring application property to enable/disable Rollbar.
...
It is enabled by default.
2020-04-08 11:23:28 +00:00
Trisha Anand
16742403ec
Merge branch 'bug/restapi-data-buffer-limit-exception' into 'release'
2020-04-08 12:11:53 +05:30
Trisha Anand
f657e2f2d2
newUser is getting written over and the current organization id before the createUser call is not preserved. Extracting this information before calling createUser lets us set the invited organization id as the newly created user's current organization id.
2020-04-08 12:09:52 +05:30
Shrikant Kandula
ff6b0ce6bc
Increase restapi client buffer size from 256KB to 10MB.
2020-04-07 11:20:46 +00:00
Shrikant Kandula
b8adb96608
The pf4j-spring dependency should be declared before appsmith-interfaces.
2020-04-06 13:44:22 +05:30
Shrikant Kandula
c12cbe0693
Merge branch 'fix-enum-put-not-working' into 'release'
...
Don't nest into Enum properties when copying bean properties.
See merge request theappsmith/internal-tools-server!258
2020-04-06 07:27:24 +00:00
Shrikant Kandula
6d24b996e1
Don't nest into Enum properties when copying bean properties.
2020-04-06 07:27:24 +00:00
Trisha Anand
69d32de888
Merge branch 'bug/delete-duplicate-dependency' into 'release'
...
Remove the pf4j dependency's duplicate from pom.xml
See merge request theappsmith/internal-tools-server!253
2020-04-06 07:22:12 +00:00
Trisha Anand
2fd7b3378b
This change handles the new DTO received from Marketplace Service over the network. The new DTO contains list of providers and total count of providers in the given category. If no category is mentioned, Business Software is assumed to be the category being fetched.
2020-04-03 22:59:38 +05:30
Trisha Anand
5911234276
To ensure that special characters like "\n", "\t", etc are preserved in the request json body, convert the json string into object.
2020-04-03 14:27:10 +00:00
Shrikant Kandula
00da41c7c7
Remove duplicate presence of pf4j-spring dependency.
2020-04-03 13:10:10 +05:30
Shrikant Kandula
e287583cfe
Don't include stack traces in plugins migrations.
2020-04-03 06:29:46 +00:00
Trisha Anand
063df9d5ed
Merge branch 'bug/marketplace-client' into 'release'
...
Marketplace Client bug fixes
See merge request theappsmith/internal-tools-server!252
2020-04-02 16:14:38 +00:00
Shrikant Kandula
e5fd048205
New parser for extracting interpolations from Mustache templates
2020-04-02 13:24:55 +00:00
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