The release notes from version 1.2.0.0 of C#Bot.
Walkthrough Video
Features
-
File Upload Support
- Added support for the
File
andImage
attributes on the model - Implemented AWS S3 storage provider
- Implemented file system storage provider
- Implemented OWASP security standards for file uploads
- Added support for the
-
Added server-side Test Mocking and Abstractions
- Added interface mocking framework
Moq
to allow for more fine-grain testing of server-side classes. - Updated server-side integration tests to allow dependency injected services to be overridden in the test framework.
- Added interface mocking framework
- Added React component tests
-
Forms behaviour updates:
- New static list form tile
- New datetime question tile
-
Added support for show conditions
- This allows creators of forms to dynamically show or hide question tiles based on the results of other questions.
- Added support for tool tips for questions
- Added validators for questions (i.e. required)
-
Added better support for deploying multiple redundant instances of an application.
- Previously a login token for a user would only work on the server that the token was generated from.
- This has been changed so the login token will work across all applications that share the same database.
Improvements
- Build allows users to select additional attributes in table dropdown.
- Added
focus
function to text areas to support programmatically focusing the text area, expose theTextAreaInput
ref to outside. - Added a protected region around
SetValidEntityAttributes
. - Refactored
Startup.cs
to divide the code into smaller logical pieces and added more protected regions. - Added additional protected regions in client-side and corrected sorting in
FormLayout
component. - Added
className
CRUD option in the client-side. - Added Doc Strings for Test Web API.
- Updated filter tests to work with new date formats.
- Updated
Get Test Names
function for the platform to include spaces. - Navigation now has the option to turn off expand when in a horizontal orientation.
- Uses
SERVER_URL
constant in all API calls from the client-side code. - Update Chrome Selenium driver to
81.0.4044.6900
. - Updated Gecko Selenium driver to
0.26.0.1
. -
Checkbox Component function updated to be
onAfterChange
.- Previously this function was called
onChange
. - Added a new
onChange
to allow overwriting the handle on the checkbox component.
- Previously this function was called
Resolved Defects
- Added missing protected region in
appsettings.xml
to matchappsettings.Development.xml
. - Fixed double icons appearing on export.
- Fixed it so all schemes are being used for non-read permissions, instead of just the schemes the user had access to.
- Fixed build/validation error
tocharSequence
. - Better handling of authorisation while creating workflow entities or hiding the create button.
- Resolved issues with Violator selenium tests.
- Issues with protected region content being removed when an attribute is deleted.
- Attributes can no longer have the same name as references.
-
New selenium tests:
- Update Workflow
- Update Validation
- Resolved Issues with client-side length and min/max validators when null values were presented.
- Fixed issue where not having a form tile when you had a form entity would cause client-side compilation errors.
- Resolved user registration issues
- Resolved issues with visitor security
Migration Path
Database Update
In this release there are two new database tables to support the file upload feature, and the ability to share login tokens across multiple instances of an application. To create these new tables you will need to create and apply a new migration by running the following in the serverside/src
directory of your project:
dotnet ef migrations add Version12
dotnet ef database update
Client-Side package update
As a part of this version we have updated some client-side packages. To apply these updates run the following in the clientside
directory of your project.
yarn install
Checkbox Props Update
Previously the checkbox component had a property erroneously named onChange
which would perform an action after a checkbox has changed. This function name has been updated to onAfterChange
and a new onChange
prop has been added to allow the overriding of the onChange
handle for the checkbox.
To migrate your project to the new behaviour please update any calls to the onChange
prop to onAfterChange
instead.