Feature/datatype handling v1 p1 c1
Summary
As part of the Datatype Handling project, the client-side will send the possible data type of each binding parameter along with its value. The client-side will send such payload with the autogenerated name of the actual binding parameter with a view to reducing the payload size.
Description
The client-side will send the possible data type (JS Type) of each binding parameter along with its value. The client-side will send such payload with the autogenerated name of the actual binding parameter with a view to reducing the payload size. The client-side will also send the mapping between the autogenerated name and the actual binding parameter name in a different part called parameterMap. The sample request with three binding parameters would look as follows:
------WebKitFormBoundaryj9bhZXa3DECRp83J
Content-Disposition: form-data; name="executeActionDTO"
{"actionId":"627a09673b06f26463e16ba8","viewMode":false, "paramProperties": {"k1": "STRING", "k2": "NULL","k3": "NULL"}}
------WebKitFormBoundaryj9bhZXa3DECRp83J
Content-Disposition: form-data; name="parameterMap"
{"Text1.text": "k1","Table1.data": "k2", "Api1.data": "k3"}
------WebKitFormBoundaryj9bhZXa3DECRp83J
Content-Disposition: form-data; name="k1" filename="blob"
Content-Type: text/plain
abc
------WebKitFormBoundaryj9bhZXa3DECRp83J
Content-Disposition: form-data; name="k2"; filename="blob"
Content-Type: text/plain
null
------WebKitFormBoundaryj9bhZXa3DECRp83J
Content-Disposition: form-data; name="k3"; filename="blob"
Content-Type: text/plain
null
------WebKitFormBoundaryj9bhZXa3DECRp83J--
In this task, the server will consume this new payload and will not apply any logic to the identification of the data type rather it will use the parameterMap in order to decode the original binding parameter's name. It also needs to be ensured that the change in the action execution request body payload doesn't break any existing implementation and hence ensuring compatibility.
Fixes #15555 #14135
Type of change
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
How Has This Been Tested?
- Manual
- JUnit
Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
The latest updates on your projects. Learn more about Vercel for Git ↗︎
| Name | Status | Preview | Updated |
|---|---|---|---|
| appsmith | ✅ Ready (Inspect) | Visit Preview | Aug 10, 2022 at 5:19PM (UTC) |
/ok-to-test sha=e1c1c04
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2797572548.
Workflow: Appsmith External Integration Test Workflow.
Commit: e1c1c04.
PR: 15729.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/2797572548.
Commit: e1c1c04.
Results: Click to view performance test results
| Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Median | Mean | SD.Sample | SD.Population | |
|---|---|---|---|---|---|---|---|---|---|
| SELECT_WIDGET_MENU_OPEN | |||||||||
| scripting | 1139.65 | 1079.62 | 1067.73 | 1013.94 | 1084.25 | 1079.62 | 1077.04 | 4.16 | 3.73 |
| painting | 13.36 | 12.91 | 13.66 | 12.67 | 14.56 | 13.36 | 13.43 | 5.51 | 4.91 |
| rendering | 861.69 | 840.4 | 852.46 | 827.53 | 847.61 | 847.61 | 845.94 | 1.52 | 1.36 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||
| scripting | 156.91 | 231.49 | 163.97 | 146.59 | 148.67 | 156.91 | 169.53 | 20.83 | 18.63 |
| painting | 5.32 | 5.68 | 8.89 | 7.68 | 5.91 | 5.91 | 6.7 | 22.84 | 20.45 |
| rendering | 299.63 | 306.87 | 307.07 | 306.62 | 307.74 | 306.87 | 305.59 | 1.10 | 0.98 |
/ok-to-test sha=37ac61f
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2815820168.
Workflow: Appsmith External Integration Test Workflow.
Commit: 37ac61f.
PR: 15729.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/2815820168.
Commit: 37ac61f.
Results: Click to view performance test results
| Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Median | Mean | SD.Sample | SD.Population | |
|---|---|---|---|---|---|---|---|---|---|
| SELECT_WIDGET_MENU_OPEN | |||||||||
| scripting | 1119.47 | 1115.08 | 1150.58 | 1109.49 | 1075.18 | 1115.08 | 1113.96 | 2.42 | 2.16 |
| painting | 16.2 | 8.02 | 6.7 | 7.18 | 12.49 | 8.02 | 10.12 | 40.51 | 36.26 |
| rendering | 886.78 | 895.64 | 867.47 | 851.51 | 894.23 | 886.78 | 879.13 | 2.17 | 1.94 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||
| scripting | 167.46 | 154.59 | 174.16 | 154.02 | 161.85 | 161.85 | 162.42 | 5.29 | 4.73 |
| painting | 2.6 | 2.42 | 5.19 | 5.31 | 3.29 | 3.29 | 3.76 | 37.23 | 33.24 |
| rendering | 311.85 | 310.91 | 303.51 | 335.49 | 305.51 | 310.91 | 313.45 | 4.09 | 3.66 |
/ok-to-test sha=fa61c53
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2832388376.
Workflow: Appsmith External Integration Test Workflow.
Commit: fa61c53.
PR: 15729.
/ok-to-test sha=192ba88
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2832410876.
Workflow: Appsmith External Integration Test Workflow.
Commit: 192ba88.
PR: 15729.
/ok-to-test sha=3ee3576
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2834405909.
Workflow: Appsmith External Integration Test Workflow.
Commit: 3ee3576.
PR: 15729.
/ok-to-test sha=3ee3576
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2835254360.
Workflow: Appsmith External Integration Test Workflow.
Commit: 3ee3576.
PR: 15729.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/2835254360.
Commit: 3ee3576.
Results: Click to view performance test results
| Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Median | Mean | SD.Sample | SD.Population | |
|---|---|---|---|---|---|---|---|---|---|
| SELECT_WIDGET_MENU_OPEN | |||||||||
| scripting | 1096.47 | 1064.49 | 1068.53 | 1037.45 | 1071.28 | 1068.53 | 1067.64 | 1.97 | 1.76 |
| painting | 7.29 | 13.05 | 8.27 | 7.6 | 19.12 | 8.27 | 11.07 | 45.80 | 41.01 |
| rendering | 844.4 | 825.34 | 840.74 | 824.76 | 839.15 | 839.15 | 834.88 | 1.10 | 0.98 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||
| scripting | 167.45 | 156.99 | 161.09 | 150.94 | 169.41 | 161.09 | 161.18 | 4.70 | 4.20 |
| painting | 3.77 | 2.75 | 7 | 5.93 | 4.75 | 4.75 | 4.84 | 34.92 | 31.20 |
| rendering | 309.97 | 301.52 | 308.32 | 304.41 | 300.46 | 304.41 | 304.94 | 1.36 | 1.22 |
This PR has not seen activitiy for a while. It will be closed in 7 days unless further activity is detected.
Closing this PR as a similar PR was merged directly into the release branch.
Reference PR