Commit Graph

357 Commits

Author SHA1 Message Date
appsmithguru
b64df3e1c9
chore: rename_triggerUtils (#18405)
Refactored Renamed TriggerUtils.java to RestAPIActivateUtils.java and its usage
2022-12-07 15:03:50 +03:00
Nilesh Sarupriya
68bb871fa8
chore: add events related to roles and groups (#18611) 2022-12-01 20:53:30 +05:30
Vaibhav Tanwar
bc516a5583
fix: Google sheet datasource fix (#18199)
null check added for object value
2022-11-17 18:54:21 +05:30
subratadeypappu
eaf9b95bd6
fix: Internal server error in case of ARRAY type in MySQL (#17702) (#17838)
Fix internal server error in case of ARRAY type in MySQL (#17702)

This commit adds support for handling array like data in MySQL
- If the data type identified by the client side is of type ARRAY it will be treated as STRING as MySQL doesn't have support for ARRAY data type
2022-10-28 11:51:59 +05:30
Nidhi
204a187bc2
fix: Refactor entities with specific rules (#17523)
* Refactor changes for DSL

* Spaces

* Action and collection refactor logic

* Changes to some logic for DSL

* Fixed tests, added dynamic trigger path list logic as well

* Added test for dynamicTriggerList condition

* added analytics data to response in ast

* Fix for peer closed connection on AST

* Added comments for clarity

* Added logs for time taken by AST call

* handle export default and update success param accordingly

* updates for review comments

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
2022-10-26 20:23:06 +05:30
amogh2019
9e1303905e
fix: ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (#17707)
* get a string casted value safely from form data

* letting warning be and removing unwanted line
2022-10-25 18:56:35 +06:00
subratadeypappu
19e2e5785e
Fix/16994 refactor common datatype handling (#17429)
* fix:Add array datatype to execute request

* feat: Consume and store type of array elements in Param class (#16994)

* Append param instead of clientDataType in varargs (#16994)

* Refactor common data type handling w.r.t newer structure (#16994)

This commit takes care of the following items:
- It minimizes the number of usage to the older stringToKnownDataTypeConverter method
- Modifies the existing test cases to conform to the newer structure
- Marks stringToKnownDataTypeConverter method as deprecated to discourage further use

* Remove comma delimited numbers from valid test cases (#16994)

* Fix extracting clientDataType from varargs in MySQL (#16994)

* Pass param as a dedicated parameter in json smart replacement (#16994)

* Remove varargs from json smart replacement method (#16994)

* Move BsonType to mongoplugin module (#16994)

* Introduce NullArrayType and refactor BsonType test cases (#16994)

* Add new test cases on numeric string with leading zero (#16994)

* Refactor test case name (#16994)

* Add comment on the ordering of Json and Bson types (#16994)

* Add comment on the ordering of Json and Bson types (#16994)

* Add NullArrayType in Postgres and introduce postgres-specific types (#16994)

* Add data type test cases for Postgres and change as per review comments (#16994)

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
2022-10-18 11:02:37 +05:30
Arpit Mohan
70f79ae69a
chore: Updating the tenant API to return the complete object instead of just the configuration (#17615) 2022-10-17 14:21:28 +05:30
Nidhi
c3e935ef40
fix: Remove datasource connection from cache when datasource is deleted (#17364)
* Changes to testDatasource interface method and archive flow

* Tests for plugin level testDatasource implementations

* Added test for refreshing cache on deleting datasource

* Modified warnings to errors in logs

* Fixed test

* Fixed test
2022-10-17 10:31:26 +05:30
Shrikant Sharat Kandula
0989aca511
Upgrade commons-text (#17566) 2022-10-14 19:36:16 +05:30
Vishnu Gp
0f73e43cd7
feat: Added analytics events for admin settings updates (#17491)
* feat: Added analytics events for admin settings updates

* Review changes - Variable name change
2022-10-13 12:13:29 +00:00
Nidhi
74c3dbbc1a
fix: Modified on page load actions calculation using AST (#17074)
* Changes to on page load logic and consumption for update layout

* Slight clean up, tests and stuff

* - Added evaluationVersion logic based on application configuration
- Added configuration for slim and fat container rts availability
- Added backup logic of string comparison for slim containers
- Added tests for both paths

* Changes to on page load logic and consumption for update layout

* Slight clean up, tests and stuff

* Cleaned up comments all over

* Why isn't there even a setting to disable auto re-formats

* update rts logic to use updated shared AST logic

* Make changes to naming conventions

* Some temp stuff to check if update layout API changes will work out

* Added health check endpoint in RTS

* Added types for AST request

* update: type for save page request object

* update: return type for getEditorConfigs func

- Added applicationId to the type.
- Fetching from the redux store -> applications -> currentApplication -> id

* update: url generation func for update page API

- added applicationId as query param for the call

* Fixed test failures

* Fixed merge from release with on page load failure messages

* Fixed tests failing after merge

* Review comments, more tests, and fix for array index ref directly after .data path

* Test fix

* Addressed review comments

* Updated comment

* Fixed rts temporarily, added handling for data as function name, left with tests

* fix: failing rts server

* Tests for all types of actions and references

* Changes to test

* Modified type to set

* Test fixes

* Trying to make a test pass

* Added app id in cypress test update dsl

* Added app id in cypress test update dsl

* Added app id in cypress test update dsl

* Removed dep tree temp file

* Resolving compile issues after merging from release

* updated tests for applicationId

* corrected a typo

* fixed some more tests

* updated test

* Updated test

* DSL load AppId fix

* appId removal

* AgHelper LocalStorageCache()

* AgHelper LocalStorageCache() - commit 2

* AgHelper LocalStorageCache() - commit 3

* AgHelper LocalStorageCache() - commit 4

* AllWidgets_Reset_spec - Dsl fix

* Json_spec fix

* S3_2 spec fix

* fixes

* LocalStorageCache fixes

* fixes

* fixes

* fix

* OnLoadActions spec fix

* Promises spec fix

* S3_2 spec fix

* 16702 spec update

* OnLoadActions spec trial fix

* RTS fix

Co-authored-by: Nidhi Nair <cataclysm@Nidhis-MacBook-Pro.local>
Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
Co-authored-by: Ayush Pahwa <ayush@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Apple <nandan@thinkify.io>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-10-11 11:02:44 +05:30
subratadeypappu
d2de8f7cec
feat: Implement data type handling in MySQL (#16621) (#17017)
* feat: Implement data type handling in MySQL (#16621)

With this implementation we can now achieve the following under prepared statement:
- Ability to distinguish between null object and "null" string
- Ability to distinguish values like {{"098765"}} and {{098765}}. The former is identified as a string and the latter is identified as an integer

* feat: Add unit test cases on data type handling in MySQL (#16621)

* chore: Move MySQL specific types to a separate class (#16621)

* chore: Remove import shortening (#16621)

* Fix testStructure test case to have loose coupling with the order of tables (#16621)

* Fix: Add missing client-side data types in params in a few test cases (#16621)

* Fix query in test case (#16621)

* Fix test cases and add small refactoring (#16621)

* Refactor assertion with a check on Optional (#16621)

* additional cypress test cases for mysql

* updated test case object

* update for failing test cases

* mysql failure point fix

* mysql false spec failure point fix

* fix flacy test cases

* flacky JSON test cases

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-10-04 10:45:10 +00:00
Nidhi
ca5499c358
chore: Tests pass, server runs w/ analytics (#17205)
* Tests pass, server runs w/ analytics

* Fix okhttp
2022-09-30 11:49:25 +05:30
Nidhi
66f3dfe790
chore: Move to Jupiter JUnit5 (#17083)
* Upgrading to Jupiter tests for everything but plugins

* Whoops, too soon

* Fixed failing tests

* Imports fixed

* Removed PowerMock dep and JUnit4 from interfaces

* Woohoo! That's testcontainers

* Added maven enforcer to disallow junit4

* Update app/server/appsmith-server/src/test/java/com/appsmith/server/services/GitServiceTest.java

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>

* Update app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceTest.java

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>

* Update app/server/appsmith-server/src/test/java/com/appsmith/server/services/ce/ActionServiceCE_Test.java

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>

* Update app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/CreateDBTablePageSolutionTests.java

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>

* Weird formatting and version upgrades

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2022-09-29 08:54:07 +05:30
Anagh Hegde
cf17eaa447
chore: Add view mode to the analytics events (#15791)
* Add view mode to the analytics events

* Add view mode to the analytics events

* Fix UnSupported operation with template

* Replace hardcoded strings
2022-09-29 00:31:14 +05:30
Shrikant Sharat Kandula
4456687400
Fix domain resolution in Elasticsearch (#17026)
Signed-off-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2022-09-26 08:55:54 +05:30
Manish Kumar
bfc79bdfd3
feat: Informative error messages on cyclic dependency for queries on page load (#16634)
* This commit addresses the feature https://github.com/appsmithorg/appsmith/issues/16154

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2022-09-24 15:31:52 +05:30
subratadeypappu
2751af6810
fix: Fix NPE in execute API (#16722) (#16888)
* Fix NPE in execute API (#16722)

* Add unit tests with usual and unusual ordering of the parts (#16722)
2022-09-21 15:36:09 +05:30
Shrikant Sharat Kandula
769719ccfe
fix: Better support for disallowed hosts (#16842) 2022-09-19 12:41:57 +05:30
Shrikant Sharat Kandula
98776e9e94
Fix h2 version mismatch (#16845) 2022-09-19 08:04:30 +05:30
subratadeypappu
cf2ef37527
feat: Add a service layer to get AppsmithType from client-type (#16508) (#16619)
* feat: Add a service layer to get AppsmithType from client-type (#16508)

This commit takes care of the following things
- It creates a service layer to get the target AppsmithType from the client-side data type and the evaluated value
- This service layer is currently not consumed by any plugins
- A full JUnit test suit for MySQL-specific types

* feat: Remove FloatType and add comments for better understanding (#16508)

* feat: Add FallbackType and covert the DataTypeService to a util class (#16508)

This commit takes care of these
- Introduce FallbackType as a separate type
- Convert the DataTypeService to a util class
- Add java doc around the methods in DataTypeService class

* feat: Rename DataTypeService to DataTypeServiceUtils (#16508)
2022-09-16 17:40:28 +06:00
Chris Maeda
0351b0e9a3
fix: Deserialize java.time.Instant objects that are represented as JSON objects (#16321)
Deserialize java.time.Instant objects that are represented as JSON objects; e.g {"nano": 790000000,"epochSecond": 1641498664}
2022-09-15 09:41:23 +05:30
Shrikant Sharat Kandula
83fc89f1a1
fix: No-op Asserts (#16690) 2022-09-13 13:55:33 +05:30
Sumit Kumar
0cbe81dfde
feat: merge GraphQL plugin to release (#16554)
* merge GraphQL plugin to release
2022-09-09 21:29:47 +05:30
Vishnu Gp
43ee8b2089
chore: Changes in user invited analytics event (#16611) 2022-09-09 10:31:18 +05:30
Shrikant Sharat Kandula
06c8210a3a
fix: Fix LinkageError with macOS DNSResolver class (#16581)
On macOS, when running a MySQL query, we see the following error:

```
java.lang.ClassCastException: class io.netty.channel.kqueue.KQueueEventLoopGroup cannot be cast to class io.netty.channel.EventLoopGroup
```

This is because of a `LinkageError`, caused because these classes exist both in the parent `server` module classpath, as well as in this plugin's classpath separately. To fix this, we removed this dependency from the server module.

But then, this caused a problem with how the `DNSResolver` class was being, well, resolved by the application class loader, vs the plugin class loader. This is a macOS specific problem, and doesn't affect other operating systems.

For this, we add just this package as a dependency to the MySQL plugin.
2022-09-06 22:00:53 +05:30
subratadeypappu
3725834fb4
feat: Add server-side base data types (#15784) (#16240)
* feat: Add server-side base data types (#15784)

This commit takes care of the following two things
- It adds the server-side base data types which are considered common data types across plugins
- It adds a few MySQL specific types

* feat: Add MySQLBooleanType and refactor MySQLDateTimeType with camelCase (#15784)

* feat: Move MySQL specific types to mysqlPlugin folder (#15784)
2022-09-02 16:25:36 +05:30
Shrikant Sharat Kandula
8a0838505a
All outgoing requests should go through the configured proxy (#14427)
Signed-off-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-09-01 11:16:45 +05:30
Anagh Hegde
043705f343
chore: refactor git constants (#16287) 2022-08-25 20:52:25 +05:30
Trisha Anand
8f3591615a
feat: RBAC framework (#14823)
Co-authored-by: Sidhant Goel <sidhant@appsmith.com>
Co-authored-by: Ankita Kinger <ankita@appsmith.com>
Co-authored-by: Sangeeth Sivan <sangeeth@appsmith.com>
Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com>
2022-08-22 23:27:07 +05:30
subratadeypappu
0e2637b1b2
chore: Modified action execution payload to support data types (#16106)
* POC: Datatype handling autogenerated naming params client

* added array and file datatype

* handles all primitive types

* paramproperties convetred to map instead of array

* parametermap inversion

* handled no bindings bug

* feat: Consume action execution payload changes w.r.t. data type mapping (#15555)

This commit does the following things
1. It consumes data type metadata from payload
2. It consumes the mapping between the pseudo binding name and original binding name
3. It doesn't apply any logic w.r.t. data type identification after consumption

* added comments and cleaned code with proper datatypes

* removed URLencoding for binding params names

* feat: Remove URL decoding on param keys from server-side codebase (#15555)

* Remove unused import (#15555)

Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
2022-08-19 01:01:47 +05:30
Arpit Mohan
f5c67840ea
chore: Closing resources to ensure there are no memory leaks (#15343)
This is based on warnings from Sonar's static code analysis.
2022-07-29 19:51:10 +05:30
Nidhi
82ed999d85
fix: Added type static hierarchy to allow compatible types (#15470)
* fix: Added type static hierarchy to allow compatible types

* Removed unnecessary logging
2022-07-29 08:43:23 +05:30
Nidhi
daea0a8545
chore: Added analytics for C, U, D operations on actions (#15069)
* chore: Added analytics for C, U, D operations on actions

* chore: Added isTemplateOrMock field in datasource

* fix: Set mock datasource field as true on creation

* Split template and mock identifiers into two. Added them to analytics as well

* Added tests as well as felt like a noob.

* Add isMock and isTemplate fields to datasources of created Actions

* Removed execute action triggered props

* Revert "Removed execute action triggered props"

This reverts commit cad1b8af504218813daa5f563f7b417fa263101b.

* Stringified response body before recording event

* Adding ds fields

* Reverting client side changes

* Fixed failing tests

Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
2022-07-28 09:40:47 +05:30
Nidhi
6df4dafead
chore: Better server logging infra (#15440)
* Fixed a bunch of server side logging issues

* Tests

* Added ISO8601 timestamp to log format
2022-07-28 09:40:03 +05:30
Vishnu Gp
828f734b18
Added missing analytics events and extra data (#15408)
This adds a few missing analytics events and some more extra data for audit purposes. The missing event added are,

    User login (login_USER)
    User logout (logout_USER)
    Import Application (import_APPLICATION)
    Export Application (export_APPLICATION)
    Clone Application (clone_APPLICATION)
    Create Workspace (create_WORKSPACE)
    Delete Workspace (delete_WORKSPACE)
    View Page (view_NEWPAGE)
2022-07-27 21:01:34 +05:30
Nidhi
50172ecd64
fix: Added support for self signed certificate during OAuth2 flows (#14719)
* Added support for self signed certificate during OAuth2 flows, server side changes

* fix: authentication.useSelfSignedCert key added

* Merging from release

* Fixed issue with dependencies, plus bug with using ssl

* Cypress test attempt 1

* Cypress test attempt 2

* Cypress test attempt 3

* Clean up

* Review comments

* Enabled compression again

Co-authored-by: Aman Agarwal <aman@appsmith.com>
2022-07-21 16:10:36 +05:30
Anagh Hegde
dbf0b94973
feat: Update the table widget to v2 in suggested widget list (#15277)
Co-authored-by: balajisoundar <balaji@appsmith.com>
2022-07-20 12:28:50 +05:30
Shrikant Sharat Kandula
bba78afc3b
chore: Upgrade dependencies reported by Dependabot (#13735)
Upgrades vulnerable dependencies in all plugins except for MySQL. That one is still failing and I'll fix it in a separate PR. Issue #14475

Co-authored-by: Nayan <nayan@appsmith.com>
Co-authored-by: Anagh Hegde <anagh@appsmith.com>
2022-07-19 10:23:27 +05:30
Nidhi
02a5e1d490
fix: Added dropdown to select whether to send credentials in header or body in client credentials flow (#14545)
* Added dropdown to select isAuthorizationHeader in client credentials flow

* Added tests

* Added cypress test

* Oopsie
2022-07-13 14:33:19 +05:30
Anagh Hegde
317f340421
feat: fetch branch speific refs from the remote repo (#15067)
* fetch branch specific refs from the remote repo
2022-07-08 11:29:16 +05:30
Nidhi
906a7298dc
feat: Simplified Google Sheets queries (#14869)
* Client changes 1

* add DSL functionality

* Temp commit for refactoring changes

* Do I even know what I'm doing here?

* chore: Second GS layout

* Update: Visibility conditional outputs for schemas

- Added the output from conditional outputs for schema children too

* Update: Entity selector visibility control

- Added logic for controlling visibility of sub components via the JS expressions system

* Update: Passing disabled prop to toggle button

* Update: Passing disabled prop to toggle btn

* Update: Styled component for toggle button

- Added disabled styles based on the disabled prop sent to the toggle form view JSON button

* Update: configProperty role in Entity Selector

- Removed dependance of the configProperty of the entity selector children to it's parent component

* Update: type of placeholder key

- Made placeholder key from form config JSON to accept either string or an object
- Earlier only string was accepted
- This is for pagination component

* Update: Added placeholder control for pagination

* Client changes 1

* add DSL functionality

* Do I even know what I'm doing here?

* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design

* fix: updated tooltip component for wrong ui on entity explore

* temp triggers

* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395)

* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design

* fix: updated tooltip component for wrong ui on entity explore

* fix: updated tooltip ui, where condition placement, sort by ui

* temp form data access logic

* fix: updated sorting type width ui

* fix: updated ui for spacing, width and text issues

* Update: Type for tooltip of UQI forms

- Added option to send an object to the tooltipText object.
- This allows for composite components like pagination to have tooltips for each sub component

* Update: tooltip for pagination component

- Added handling to parse the tooltip for multiple components.
- This allows for composite components like pagination to have tooltips for each sub component

* Update: Type cast for tooltip component

- Made the content passed to tooltip component as a string only

* Update: Fixed tooltip component CSS

* Update: Dropdown option component

- Added a tooltip wrapper to each option
- This is to show on hover text like disabled state

* fix: updated ẇhere clause broken ui for condition

* Add: functions to check and extract expressions

- Loop through the formConfig and find any keys that have a value that is bindable
- Used pre defined regex to check if value is a moustache binding

* Add: Types for evaluated form configs

- Added types for the form configs to be evaluated and their output post eval

* Add: Flow to run the form config

- Run the form config and update the result to the redux state

* Update: Name of the type for formconfigs

- Updated since it was clashing with a component of the same name

* Add: Function to enforce config type checks

- This is done so that the improper configs can be weeded out and the rest of the form can be shown

* Add: Function to update evaluated config

- Added option to update the config if it's values needed evaluation

* Add: Type check for schema sections

* Update: Error handling for invalid control type

- We were throwing an exception till now, changed it to a warning text

* Add: Exposed tooltip for dropdown option disabled state

* Update: switch to json mode functionality

- Added logic to convert data to a string rather than an object when the first switch to JSON mode happens

* Update: Added key to tooltip for dropdown options

* Trigger API modification

* Add: function to fetch default trigger URL

* Update: Made URL optional in dynamic trigger config

* Update: Dynamic trigger API call

- Made the API call for dynamic triggers have URL as optional field
- Added type check to the response of the API call

* Update: resp type for trigger APIs

* Update: Moved code to utils folder

- Moved functions for UQI form eval processing to utils file

* Update: passing original controltype to JS switch

* Update: config for JSON editor mode

- Updated the config to have different options for JSON mode depending on the original control type

* Update: Connected line numbers flag to config

* Revert: CSS changes for tooltip

* Refactor: Removed consle

* Add: type for the config of dynamic values

* Add: Feature to evaluate config for triggers

* Refactor: fix type check errors

* fix: dropdown ui width with text alignment

* Update: fixed selector for dynamic values

* Update: selector call for fetchDynamicValues

* Add table header index prop for columns selector

* migration partial commit

* migration partial commit

* Refactor: removed unused import

* Update: reused function for checking dynamic value

* Update: removed unused import

* Fix format JSON issues

* Retrieve binding paths from entity selector components

* Fixes 6 remaining issues with UQI implementation

* Fix dropdown issues

* Fix dropdown height issues and fixes triggering of APIs when option is deselected

* Migration changes

* Fix QA generated UQI issues

* Fix projection component height and route change logic

* Fix multi select dropdown placeholder text issue and json stringify issue with switching view types

* Reset entity type value when command value changes

* Test changes

* Review comments

* Moved migrations around

* Corrected import statement

* Added JSON schema migration

* Updated schema version

* perf improvements and filter dropdown options feature

* Fix Code mirror component config for toggleComponentToJson input fields.

* Fix prettier issues

* fix prettier issues

* Fix style issues as a result of the merged conflicts

* Fix failing test case

* Fixed a few other flows (#14225)

* Fixed a few other flows

* Review comments

* Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues.

* More fixes (#14367)

* Factor in the root formconfig parent key.

* Fix flickering issues, and evaluatedFormConfig issues

* fix: Teeny bugs (#14455)

* Teeny bugs

* Added previous functionality as is

* Improvements in the way we fetch dynamic values

* Fix stringiification issue and cyclic dependency issues

* Resolve projection component values deletion

* Resolve merge conflicts and fix prettier issues

* fix: Tsc issues

* Fix property pane connection navigation

* updating ee locator

* updating inputfield locator

* dropdown locator update

* Merge conflict not properly resolved.

* Fix s3 spec

* Fix Mongo Spec

* Fix some more tests

* fix: prevent cyclic dependency when switching to js mode (#14668)

* add delete events for change from array to string in diff

* add test to assert absence of cyclic dependency error when switching to js in switchgroup widget

* Assert that evaluation is not disabled when no cyclic dependency happens

* Cypress test preparations for google sheets and form controls

* Fixed a few test errors (#14874)

* Add: unit tests for uqi UI updates

- view type tests
- conditional output extraction
- processing conditional output to handle view/enabled state of the component

* Add: completed isValidFormConfig test

* Update: improved tests for update config

- These tests cover the functionality to update a section config after it's components are done evaluating

* Fix failing cypress tests and cyclic dependency issue

* Fixes some more tests

* Fixed migration of row objects (#14896)

* Bumped the version of design system package

* Update: reverted change to EE selector

* Fix deletion pointer

* Update: selector for js on load spec

- Synced with changes related to ADS dropdown

* Fix mongoDBShoppingCart spec

* Remove comments

* Fix: mongo shopping cart test failures

* fix: mongo shopping cart spec

* Dummy push to retrigger vercel

* fix: mongo shopping cart spec

* Update MongoDBShoppingCart_spec.js

* fix: removed unused click away

* dummy commit

* Update: moved helper functions to separate file

* Add: added tests for saga functions

- Worked on testing for
   - extractFetchDynamicValueFormConfigs
   - extractQueueOfValuesToBeFetched

* Add if check for queueOfValuesToBeFetched

* Resolve review comments

* Empty-Commit

Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayush Pahwa <ayush@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com>
Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 11:13:27 +05:30
Nidhi
049de6b58f
chore: Added actionId and requestedAt fields in ActionExecutionRequest (#14720)
* chore: Added actionId and requestedAt fields in ActionExecutionRequest

* Reverted unrelated failing test

* Fix test failures

* Refactor test

Co-authored-by: Anagh Hegde <anagh@appsmith.com>
2022-06-22 22:43:31 +05:30
Anagh Hegde
14eb9b4cb5
feat: Add API for git docs and supported shh keys (#14641) 2022-06-22 21:50:04 +05:30
Vishnu Gp
63205dce27
Merge pull request #14184 from appsmithorg/feat/git-delete-only-removed-resources
Feat: Perform file ops only when the resource is updated
2022-06-22 10:53:45 +05:30
Abhijeet
ebc4090b53
chore: Enable serialisation for JsonIgnore fields during export flow to avoid adding intermediate fields in DTO (#14120)
* Add separate DTO for import export to serialise JsonIgnored fields

* Move remove unwanted field method for app in aaplication class

* Refactor sanitise objects before export

* Write migrations as per updated serialization implementation

* Fix migration

* Fix NPE during import

* Refactor

* Fix partial import scenario

* Fix testcases for DSLActionDTO

* Remove unwanted testcase

* Fix testcases for orgId to workspaceId migration

* Fix empty repo import testcase
2022-06-17 10:09:28 +05:30
Ankita Kinger
9b7944e7ee
feat: migrate organisation to workspace (#13863)
* migration from organization to workspace on code level

* updated a few more files

* fixed runtime errors

* update org settings URL

* Renamed organizationId in domain objects

* changed field named from organization to workspace

* Reverted AppsmithRole changes

* fixed migrations

* recreating indexes

* migration update

* seed data runs before migration, undo changes

* mock commit

* seedmongo to populate upgraded data, datasource upgrade

* fixed two test cases

* updated migrations

* updated prop name

* Upgraded AclPermission

* comment

* migrated AppsmithRole

* more changes

* final set of changes

* variable name changes

* update cypress variable name

* Update app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationControllerCE.java

* Update app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/Datasource.java

Co-authored-by: Trisha Anand <trisha@appsmith.com>

* reverting encryption handler change

* migrated a few missed out org to workspace

* migrated a few missed out org to workspace

* migration changes

* Removed Permission import

* fixed AppsmithRole

* mongodb version update

* fixed compile error

* fixed compile issue

* fixed some tests

* simplified embedded mongodb config

* updated a cypress test

Co-authored-by: Sidhant Goel <sidhant@appsmith.com>
Co-authored-by: Trisha Anand <trisha@appsmith.com>
Co-authored-by: Sidhant Goel <sidhant@hexcod.in>
2022-06-15 21:07:41 +05:30
sidhantgoel
0ccc1aee93
fix: Fixes issue where CI was not executing all tests (#14338)
* made test classes public

* added surefire compatible with junit 4

* Revert the changes of tests class accessibility

* Fix test failures

* test case fixes

* fixed NPE

* Fixed failing tests

Co-authored-by: Anagh Hegde <anagh@appsmith.com>
Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
2022-06-15 12:04:28 +05:30
sidhantgoel
6b8b6c0bb2
Fix Java package names (#14034)
fix for java file path based on package name otherwise it was not working in vscode
2022-06-07 13:40:00 +05:30
Anagh Hegde
4c6c109edf
fix: Update the widget from drop down to select widget in suggested widget list (#13944)
* Update the widget from drop down to select widget
2022-06-03 07:49:56 +00:00
subratadeypappu
531f5f89d5
fix: Upgrade Lombok package version to 1.18.22 to avoid build error (#14080) (#14156)
Update lombok packages to version 1.18.22
2022-06-01 10:29:42 +00:00
Nayan
a362e536fd
feat: Sort datasources alphabetically and mark recently created datasources (#13958)
Return list of datasources in the GET /api/v1/datasources sorted alphabetically. Also set a flag isRecentlyCreated to the most recently created 3 datasources.
2022-05-29 00:02:39 +06:00
Anagh Hegde
109ff332ef
Update docs links for git (#14058) 2022-05-24 20:29:51 +05:30
sidhantgoel
b4ead512f1
fix: Fixes encryption handler (#13985) 2022-05-23 18:04:11 +05:30
Abhijeet
e7f34b0034
chore: Improve execution time logging (#13811)
* Increate timeout for git APIs and log execution time in mixpanel

* Improve execution time logging
2022-05-16 09:45:34 +00:00
Abhijeet
ad4772f5ea
fix: Improve git error logging (#13580)
* Add appropriate error type

* Fix warnings

* Update repo not found exception
2022-05-06 10:57:35 +05:30
Abhijeet
9fc9f7a774
chore: Commit application files during the connect flow (#12288)
* Commit application files during the connect flow

* Refactor detach remote method name

* updating connectToGitRepo method

* fix git tests

* Update default dsl to remove uncommitted changes for bottomRow and pathlist

* updating git cypress tests

* fixed git bug spec cypress test

* enabled other test case

* with store test

* fixed comment

* closing git sync modal

* updated test logic

Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
Co-authored-by: Parthvi12 <80334441+Parthvi12@users.noreply.github.com>
Co-authored-by: haojin111 <haojin828@outlook.com>
2022-05-04 12:27:07 +05:30
Nidhi
e73fd0a269
fix: Parse nested structures as tables for action execution results (#13328)
* fix: Parse nested structures as tables

* Updated comments
2022-04-27 08:45:15 +05:30
Nidhi
ea6debab20
fix: Added contains and not equals options to where clause in Google Sheets (#13208) 2022-04-26 20:03:17 +05:30
Abhijeet
cebccc5401
Fix issues in git flows when pages don't have reference in application object (#13040)
As a part of git-directory update we have introduced a bug where if the entity names includes the - we were not able to filter the entities in the individual page directory. This commit introduces a new name-seperator to avoid such issues.
2022-04-19 17:25:11 +05:30
Abhijeet
a12750b536
feat: Update directory structure for git-sync to mimic UI (#11705)
* File migration for git

* Testcases added

* Comments added

* Update the action file names to keep unique constraints

* Separate out the theme from metadata

* Update server version to convey the file migration
2022-04-14 23:35:08 +05:30
Nayan
4819907a34
feat: Add analytics events to track user activation (#12611)
Adds some attributes to existing analytics events to track user activation.
2022-04-12 20:09:03 +06:00
Sumit Kumar
cffc445824
fix: update check for GSheet where condition (#12729) 2022-04-08 22:33:47 +05:30
Sumit Kumar
c2f39f4eda
feat: [server side change only] convert Mongo's form data to raw / native query (#10058) 2022-04-01 18:44:32 +05:30
Abhijeet
d9b2a747df
chore: Add git discard and pull documentation url for status API response (#11869)
* Added discard doc url for status API response
2022-03-30 13:10:38 +00:00
Sumit Kumar
40f4e3c755
fix: S3 plugin: provide support for MinIO (#11766)
* update option label

* add minIO as a separate datasource option
add datasource connection changes to support minIO without SSL and when using CA signed certificates

* fix cypress tests
2022-03-24 18:28:00 +05:30
Nidhi
1ca9fd803a
fix: S3 formData path for bucket name (#12049) 2022-03-22 12:56:42 +01:00
haojin111
9cfca0518f
feat: 9754 import work flow (#10453)
* updated import application modal design as v2

* updated import flow

* added title, description, uploadIcon on filepicker ads component for custom file picker

* adding modal of add credential for git import

* added "Git Import" modal

* added generating ssh key for importing flow

* fixed issue of merging

* chore: fix import

* chore: show old import modal based on feature flag

* seperated import api from connect

* added datasource list on reconnect credential modal

* chore: minor changes

* chore: move ssh keys to git sync reducer from applications reducer

* chore: minor fixes

* chore: fetch datasource config for import

* for pulling

* for review of displaying of datasource

* added reconnect datasources after git import

* fix: initialize datasource with default values

* fix: initialise redux for after updating datasource with default values

* fixed issue of git connection init when importing

* if there is a datasource config missing in import, reconnect modal should be opened

* updated logic for unconfigured datasources

* commented unnecessary code

* fixed issue of successful import

* updated import app error logic

* Add un-configured datasources to Import via file response

* Add test

* fix

* chore: refactors

* change per review

* fix: reset ssh keys / url

* Fix issue with newly created datasources not sent

* fix

* chore: minor updates

* chore: minor fix

* WIP

* added saas and rest api datasource form

* feat: fixes and updates for file import flow

* chore: close on upload

* Refactor logic ofr finding unconfigured datasources

* fix: minor fixes

* Fix issue with IsPartialImport

* fix

* Add PartialImport flag for ImportExport service

* refactoring of datasource editor form for both of importing app and editing app

* fixed collapse config

* Fix tests

* Handle redirection back to the /applications for oAuth type

* Show reconnect button on the datasources pages if the datasource configuration is skipped

* added analytic events for reconnecting datasource modal

* Fix the repo limit check for git import

* updated test of importing app from json as new work flow

* updated exported app json while testing automatically

* Add isImport flag for handling OAuth redirection in import flow

* WIP

* updated card UI for import from git title and message in import app modal

* chore: cleanup

* chore: lint

* fix: add is import query param to get token for oauth

* fix

* When the user imports the application there should not be any uncommitted changes displayed on the commit icon

* Add flag to identify OAuth redirection for git import

* Update the variable name

* refactoring reconnect datasource modal

* close git import modal when repo limit error responded

* fixed issue of restoring draft data of datasource form without save on reconnect datasource modal

* chore: update query

* updated query name of oauth redirection url

* Fix duplicate name issue in git import

* fixed rest api reconnect issue on reconnect modal

* init datasources and plugins after imported app, updated reconnect modal as new design

* added unconfigured datasource list logic when importing and updated rest api form delete button visible

* removed put default config of datasource and fixed issue on it

* Add logic to check isCOnfugred in datasource API

* Expose API to get un configured datasources for git import

* added fetch unconfigured datasource list api when redirecting form OAuth

* Remove sensitive fields from application json during export

* update put call response to check for datasourceConfig

* chore: use @appsmith for constants/messages

* chore: use download icon and Import for Importing application label

* chore: move import application text up a bit

* Fix bad merge

* chore: update skip to application tooltip text

* fixed tooltip content of skip to application CTA

* init values of datasource when importing

* updated ui of git import modal as figma design

* fixing padding issue of reconnect datasource modal

* fixed cursor issue on import app modal

* Fix issue with datasource config

* chore: make code compile

* chore: sort lines

* fixed save button issue of dbform on reconnecting modal

* fixed style of import application modal

* Fix iisue with wrong value updated to flag

* reverted from reconnection form style

* fix: update design as per slack discussions on 2022.02.23

* fix: move modal close button to the left

* Remove check for the flag and use the one from db

* Set siCOnfigured as true for mockdata sets

* updated creating datasource with isConfigured as false

* Fix NPE while importing

* fixed scrollbar issue and text alignment on reconnect datasource modal

* fixed style of form container in reconnect datasource and redirecting to app if all are configured

* remove unwanted fields from application json

* FIx NPE for file import

* fix: move close button up in import modal

* remove delete button on reconnect datasource modal

* Add isConfigured false while creating datasources

* fix: add a gap and update color

gap between git import dialog title and subtitle
update color of subtext to GREY_800

* fix: use git import feature flag

* fix: do not use older modal

* updated selecting logic of unconfigured datasource in reconnect modal

* cleanup: auto format

* cleanup: refactor react component

* cleanup: refactor some more

* cleanup: autoformat

* Fix reconnect flag for mockdatasource

* During git import set the isConfigured to false for datasources

* Remove decrypted field from the applicationJson file

* Remove decrypted field from the applicationJson file

* Add app slug to remote repo

* fixed cypress test related with git

* updated json while testing

* Changes per review

* Update the method name

* fixed cypress test related with git

* fixed migration cypress test

* set is configured field as true on tour app

* Fix issue with datasource creation for welcome tour

* fixed issue of replay_editor cypress test

Co-authored-by: Rishabh Saxena <rishabh@appsmith.com>
Co-authored-by: Anagh Hegde <anagh@appsmith.com>
Co-authored-by: Anubhav <anubhav@appsmith.com>
Co-authored-by: f0c1s <iamanubhavsaini+git@gmail.com>
2022-03-17 15:58:54 +05:30
Nidhi
aaf12c513d
fix: Adds user set on load prop from actions to exported JSON file (#11718) 2022-03-09 16:57:45 +05:30
Leo Thomas
18104b9291
fix: 9824 Google Sheet to filter empty condition ver.2 (#11435)
* fix: 9824 Google Sheet to filter empty condition ver.2

* Code review comments updated

* Updates as per review comments - Ver 3

* Resolved errors found during testing

* Code review comments fix

Co-authored-by: Leo Thomas <leoweb2010@gmail.com>
2022-03-02 22:34:34 +05:30
Mojtaba
29be75e0e9
feat: add smart substitution handling for known MongoDB types (#11135)
* shelf: start working on substitution for `ISODate`

* a draft for Sumit to check what I did wrong in my tests

* test: tests are working

* test: cleanup

* refactor: add replacementDataType parameter to DataTypeStringUtils.jsonSmartReplacementPlaceholderWithValue

* fix: remove quotes for Mongo Types work in single form, arrays and json.

* add handling for more use cases
add/update more TCs

* add comments

* add more comments

* add space (cosmetic change)

Co-authored-by: Sumit Kumar <sumit@appsmith.com>
2022-03-02 22:33:50 +05:30
Leo Thomas
69f7136a81
fix: 8878 - To handle Comma delimited float values (#11207)
* fix: 8878 - To handle Comma delimited float values

* Code review comments fixes

Co-authored-by: Leo Thomas <leoweb2010@gmail.com>
2022-02-17 13:30:01 +05:30
Anagh Hegde
9992a9ae3c
feat: Add api to check the git connection after the key is regenerated (#11144)
* Add api to check the git connection

* Add analytics event for test connection api
2022-02-16 22:25:38 +05:30
Leo Thomas
4c81347128
fix: 7794 Google Sheet Fails with Mixed Datatype (#11089)
* fix: 7794 Google Sheet Fails with Mixed Datatype

* resolved failing test cases after new implementation

* Added code comments to the changes

Co-authored-by: Leo Thomas <leoweb2010@gmail.com>
2022-02-16 08:22:40 +00:00
Arpit Mohan
286864eb3d
feat: Support body in GET API requests (#7127)
* WIP

* Refactoring HTTP Method & Content Type to be objects instead of arrays

TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request

* Almost working implementation for the None type

Currently, the body still gets sent in non-GET requests even if the None tab is selected.

* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM

* WIP: Using enum & const for ts autocomplete

* working implementation for NONE type, apiContentType prop added to API actions

* WIP

* Refactoring HTTP Method & Content Type to be objects instead of arrays

TODO:
1. Set the default content-type for Get request to "None". Currently, it's raw
2. For None content-type, don't send the body field in the API request

* Almost working implementation for the None type

Currently, the body still gets sent in non-GET requests even if the None tab is selected.

* Adding object.freeze to prevent any modifications to HTTP_METHOD_ENUM

* WIP: Using enum & const for ts autocomplete

* working implementation for NONE type, apiContentType prop added to API actions

* adds apiContentType to actionConfiguration.formData object

* Handling apiContentType property in Rest API formData

* change apiContentType when user types content-type value and switches http method

* makes api editor as similar as possible to postman, project postman.

* Correcting the import in ApiEditorConstants

* Resolved all merge conflicts

* replay DSL functtionality

* removes unneccessary files from worker

* Fixes type declarations, naming e.t.c.

* fix server side merge conflicts

* fix client side merge conflicts

* fix failing cypress tests

Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
2022-02-15 11:13:48 +00:00
Nidhi
1868675349
feat: Self-signed certificates for REST APIs (#11043)
* feat: Self-signed certificates for REST APIs

* Changed scope for netty dep
2022-02-15 06:54:26 +00:00
Sumit Kumar
00a7647590
feat: S3 plugin: add command to delete multiple files at a time
* Add a new command Delete multiple files. This command will allow users to delete many files at once. Currently, only one file can be deleted at a time. It takes an array of files as config parameter from the user e.g. ["file1", "file2"]
* Add template for the new command.
* Add template for the command Create multiple files
2022-02-15 12:24:16 +05:30
Trisha Anand
80bab90e28
chore: Minor code refactoring for bean utils and action execution (#11102) 2022-02-14 10:24:54 +05:30
Sumit Kumar
d03f503657 add new command: delete multiple files
add template for delete multiple files
add template for create multiple files
add / update TCs
2022-02-14 10:18:01 +05:30
Abhijeet
860318e0fe
chore: Add stopwatch to log execution time by process name (#11069)
* Add stopwatch to log execution time by process name

* Refactor
2022-02-10 16:59:26 +05:30
Sumit Kumar
aa2290405d
fix: fix refresh token flow in REST API OAuth (#10875)
Co-authored-by: Segun Daniel Oluwadare <dodanieloluwadare@gmail.com>
2022-02-09 09:38:58 +05:30
Abhijeet
fa0e900f3f
fix: Sort unordered set elements before committing to git repo so as to have same serialised output string for identical set of elements (#10933) 2022-02-08 00:48:20 +05:30
Sumit Kumar
5c3e12fc10
handle empty column name in sort component (#10895)
* This PR adds changes to ignore all the empty column names in sort component (or ignore the sort conditon if all column names are empty).
2022-02-07 08:55:26 +00:00
Abhijeet
2e5c1ea4ec
chore: Update doc urls for errors related to git (#10852)
* Update doc urls for errors and SSH key response
2022-02-03 21:13:40 +05:30
Abhijeet
e356fd039f
chore: Commit only unpublished resources to git repo which includes queries, JSObjects, pages to avoid data duplication (#10776)
* Commit only unpublished resources to avoid resolving merge conflicts twice

* Added TCs

* Update directory names, fix pull issue in JSObjects
2022-02-03 11:47:57 +00:00
Sumit Kumar
6f83df976d
feat: add sorting and pagination features to S3 plugin (#10736)
* add sorting and pagination features to S3 plugin
2022-02-03 06:15:01 +00:00
Nidhi
f450ea5be3
fix: Fixed issue with H2 where PS parameters were getting merged if the keys were the same (#10805) 2022-02-02 17:43:53 +00:00
Abhijeet
8d93d06317
feat: Add reference doc url for error responses for git APIs (#10620)
* Added reference doc urls for pull conflicts

* Update TCs
2022-01-27 13:08:21 +05:30
Anagh Hegde
c83f7fb3c1
feat: Git import api (#10282)
* Added API to generate deploy keys and store them in a collection for import flow

* Add tests for the key generation flow

* Move the key generation to helper class

* changes per review

* Fix bad merge

* add api to import application

* handle timeout for git import

* Update the comments

* Add API for git import

* handle duplicate application name error & add profiles while importing

* Add tests for import api

* Hydrate from file system after cloning the repo

* Fix test failures

* Test cases

* changes per review

* throw error when the datasource with same name of different type exists

* Fix test failures

* Fis error messages

* Fix test failures

* Fix issue with checking the datasource types

* Add datasource name check while importing the application

* Refactor SSH key gen code for import

* Resolve issues around defaultResourceIds, don't commit app name

* Resolve the issue related to duplicate name for app during import

* Minor fixes

* WIP

* Add logic to get unconfigured datasources for the application

* Fix tests

* WIP

* revert datasource related changes

* Add a boolean flag to Datasource entity

* Add a boolean flag to Datasource entity

* Add flag to identify import status

* Set application name before importing from json files in git-import

* update the variable name

* changes per review

Co-authored-by: Abhijeet <abhijeet@appsmith.com>
2022-01-26 21:26:22 +05:30
Nidhi
c7d1e87c0a
fix: Removed tracking on Sentry for unsupported plugin operation (#10636) 2022-01-26 19:02:48 +05:30
dependabot[bot]
113c96dc54
chore: bump h2 from 2.0.206 to 2.1.210 in /app/server/appsmith-interfaces (#10554)
Bumps [h2](https://github.com/h2database/h2database) from 2.0.206 to 2.1.210.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.0.206...version-2.1.210)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 19:38:36 +05:30
Abhijeet
62b720ab00
feat: Add documentation URL alongwith the error response to offer more info about the exception (#10325)
* Add doc url param in error response

* Modify TCs

* Update error codes to follow the sequence
2022-01-20 02:48:43 +00:00
dependabot[bot]
7d64d7fa53
chore: bump h2 from 2.0.202 to 2.0.206 in /app/server/appsmith-interfaces (#10414)
Bumps [h2](https://github.com/h2database/h2database) from 2.0.202 to 2.0.206.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.0.202...version-2.0.206)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-15 04:13:05 +05:30
Snyk bot
65b5b61840
chore: [Snyk] Security upgrade com.h2database:h2 from 1.4.200 to 2.0.202 (#9500) 2022-01-15 03:37:21 +05:30
Sumit Kumar
18edb18b20
fix: implement getStructure method for S3 plugin (#8919)
* Add `getStructure` implementation for S3 to return a list of accessible buckets.
* Add command templates for S3.
  - List files
  - Read file
  - Create file
  - Delete file
* Remove getDatasourceMetadata implementation as getStructure method can be directly used now.
2022-01-13 11:33:50 +05:30
Sumit Kumar
4b75f77caa
feat: add support for projection, sort and pagination. (#9712)
* Add API server support for UQI's Projection, Sorting and Pagination feature.
2021-12-23 14:16:49 +00:00
Anagh Hegde
4f4d0fd7df
fix: Clear the cache - git limit number of repos (#9874)
* Error handling for git limit

* clear cahe of git limit on connect api

* update per review

* check the repo is public before checking for the limit

* changes per review

* check if the repo is public or private during connect flow
2021-12-21 14:17:26 +00:00
Sumit Kumar
c858edf726
fix Mongo smart substitution for quotes around ObjectId (#9856)
- fix Mongo plugin's smart substitution feature to handle quotes around ObjectId in array. e.g. Initial replacement value: ["ObjectId(xyz)"] , final replacement value: [ObjectId(xyz)]
- unrelated: added version number to lombok dependency to stop build failures in IntelliJ.
2021-12-21 18:47:19 +05:30
Nidhi
e48a51c166
fix: Ignore form data elements with null keys (#9769)
* fix: Ignore form data elements with null keys

* Added reference to constant instead of using a String
2021-12-16 09:54:38 +00:00