appsmith icon indicating copy to clipboard operation
appsmith copied to clipboard

Feature/datatype handling v1 p1 c1

Open subrata71 opened this issue 3 years ago • 7 comments

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

subrata71 avatar Aug 04 '22 14:08 subrata71

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)

vercel[bot] avatar Aug 04 '22 14:08 vercel[bot]

/ok-to-test sha=e1c1c04

subrata71 avatar Aug 04 '22 14:08 subrata71

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2797572548. Workflow: Appsmith External Integration Test Workflow. Commit: e1c1c04. PR: 15729.

github-actions[bot] avatar Aug 04 '22 14:08 github-actions[bot]

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

github-actions[bot] avatar Aug 04 '22 16:08 github-actions[bot]

/ok-to-test sha=37ac61f

ChandanBalajiBP avatar Aug 08 '22 06:08 ChandanBalajiBP

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2815820168. Workflow: Appsmith External Integration Test Workflow. Commit: 37ac61f. PR: 15729.

github-actions[bot] avatar Aug 08 '22 06:08 github-actions[bot]

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

github-actions[bot] avatar Aug 08 '22 07:08 github-actions[bot]

/ok-to-test sha=fa61c53

subrata71 avatar Aug 10 '22 11:08 subrata71

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2832388376. Workflow: Appsmith External Integration Test Workflow. Commit: fa61c53. PR: 15729.

github-actions[bot] avatar Aug 10 '22 11:08 github-actions[bot]

/ok-to-test sha=192ba88

subrata71 avatar Aug 10 '22 11:08 subrata71

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2832410876. Workflow: Appsmith External Integration Test Workflow. Commit: 192ba88. PR: 15729.

github-actions[bot] avatar Aug 10 '22 11:08 github-actions[bot]

/ok-to-test sha=3ee3576

subrata71 avatar Aug 10 '22 17:08 subrata71

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2834405909. Workflow: Appsmith External Integration Test Workflow. Commit: 3ee3576. PR: 15729.

github-actions[bot] avatar Aug 10 '22 17:08 github-actions[bot]

/ok-to-test sha=3ee3576

subrata71 avatar Aug 10 '22 18:08 subrata71

Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2835254360. Workflow: Appsmith External Integration Test Workflow. Commit: 3ee3576. PR: 15729.

github-actions[bot] avatar Aug 10 '22 19:08 github-actions[bot]

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

github-actions[bot] avatar Aug 10 '22 20:08 github-actions[bot]

This PR has not seen activitiy for a while. It will be closed in 7 days unless further activity is detected.

github-actions[bot] avatar Aug 27 '22 16:08 github-actions[bot]

Closing this PR as a similar PR was merged directly into the release branch. Reference PR

subrata71 avatar Aug 28 '22 18:08 subrata71