Skip to Content

Vinyl 3.1 release notes

Important upgrade release notes

System requirements have significantly changed for Vinyl 3.1. Please read and confirm upgrade notes before proceeding.

Vinyl requires .NET Framework 4.8 -

Vinyl requires ASP.NET Core Runtime Hosting Bundle 2.1 -

The directory structure of Vinyl has changed. The installation process and upgrade notes for Vinyl have also changed. Follow the instructions closely when upgrading.

Vinyl now has distributions that are intended for On-Premise and Amazon AWS Elastic Beanstalk deployments.

Breaking change: The validation of the Page() function has been improved. Valid arguments are:

  • Page()
  • Page('WindowId')
  • Page('FrameId')

Other arguments pass to the Page function will result in an error.

Breaking change: the login path for application authentication is now web client relative. If the url for a Vinyl page is:, the login path should be: /app/YourApp/Login

If you are using Crystal Reports you should verify that you are running at least SP2 - see Configuring Crystal Reports

Directory Structure Changes (AWS Elastic Beanstalk and On-Premise)

Logs now reside in C:\inetpub\wwwroot\Vinyl\logs (vs C:\inetpub\wwwroot\Vinyl\App_Data)

Data directory now resides in C:\inetpub\wwwroot\Vinyl\data (vs C:\inetpub\wwwroot\Vinyl\App_Data)

Encryption keys on disk now reside in C:\inetpub\wwwroot\Vinyl\keys (vs. C:\inetpub\wwwroot\Vinyl\App_Data\keys)

Configuration is now stored in AppSettings.json vs. configuration files in both web.config and the Config directory.

AWS Elastic Beanstalk Changes

Some of the Environment properties in Elastic Beanstalk have changed. Here are screenshots showing the old version and the new version:


Vinyl Properties Vinyl 3.0 or earlier


Environment properties in Vinyl 3.1+


  • ConnectionInfo


  • DataEncryptionKeyStorage → DataEncryption:KeyStorage
  • DataEncryptionKeyS3BucketEndpoint → DataEncryption:S3BucketEndpoint
  • DataEncryptionKeyS3KeyPrefix → DataEncryption:S3KeyPrefix
  • ForwardedClientIpHeader → ReverseProxy:ForwardedClientIpHeader
  • ForwardedPortHeader → ReverseProxy:ForwardedPortHeader
  • ForwardedSchemeHeader → ReverseProxy:ForwardedSchemeHeader

The latest platform is recommended (Windows Server 2019/2.6.2):


If using AWS Elastic Beanstalk you will need to rebuild your AMI image and/or use the latest Zudy base image.

On-Premise Configuration Changes

All configuration settings, outside of connection.xml, are now stored in C:\inetpub\wwwroot\Vinyl\appsettings.config. Settings that were in a configuration file or web.config should be updated in appsettings.config.



Version 3.1.34104 released on 1/24/2024 6:04:34 AM (build 5bc17fd1)

  • JIT-96755 - Correct issue with lane refreshes
  • JIT-97027 - Fix builds
  • JIT-96943 - Update System.Data.SqlClient
  • JIT-96562 - Update Microsoft Identity packages
  • JIT-96688 - Fix builds
  • JIT-96589 - Update RestSharp test library
  • JIT-96688 - Fix builds
  • JIT-96588 - Update Oracle.ManagedDataAccess.Core
  • JIT-96585 - Update log4net in third party builds
  • JIT-96535 - Fix tests


Version 3.1.32967 released on 8/11/2023 7:48:08 PM (build b569a535)

  • VINYL-14814 - Upgrade Salesforce CData ADO.NET driver


Version 3.1.32913 released on 8/4/2023 6:00:42 PM (build 0fc30816)

  • VINYL-15028 - Embed video does not render or allow download on iOS


Version 3.1.32855 released on 7/28/2023 8:31:36 PM (build e2187701)

  • VINYL-11455 - Handle large build numbers
  • VINYL-15012 - Recognize Salesforce session expiration message
  • VINYL-15010 - Update Hubspot driver
  • VINYL-15006 - Update Snowflake driver


Version 3.1.31130 released on 12/21/2022 1:42:36 PM (build 0d4de775)

  • VINYL-13600 - Add support for Crystal Report Engine SP32


Version 3.1.30812 released on 11/16/2022 4:00:16 PM (build e3f8393b)

  • VINYL-13961 Updates Snowflake drive to handle stored procedure number return type
  • VINYL-13973 Updates System.Data.SqlClient package
  • VINYL-13478 Improve Elastic Beanstalk deployments
  • VINYL-13856 Check if parent column is indexed for extended tables


Version 3.1.30128 released on 9/22/2022 5:56:55 PM (build a6be8613)

  • VINYL-12899: REST paging improvement. Previous fix was more aggressive clearing cache. This new fix only clears cache when paging in XP CRUD REST sources


Version 3.1.30023 released on 9/13/2022 1:00:25 PM (build 45d964aa)

  • VINYL-13801 - For for SQL missing table exception when writing back to webhook object


Version 3.1.29980 released on 9/8/2022 9:10:18 PM (build 04c44287)

  • VINYL-12899 - Fix for XP CRUD REST pagination
  • VINYL-13775 - Iron Mountain script updates
  • VINYL-13365 - Remove orphan rules
  • VINYL-13730 - Upgrade System.Security.Cryptography.Xml package
  • VINYL-13364 - Correct sitemap rule on MySQL 8.0
  • VINYL-13363 - Fix timeout on rule on MySQL 8.0
  • VINYL-13716 - Use Node as label if NodeLabel not specified
  • VINYL-11625 - Improve sitemap performance on MySQL 8.0


Version 3.1.29474 released on 7/15/2022 8:59:41 PM (build 6c60fa8d)

  • VINYL-13598 - Correct logic for importing stored procedures on MySQL
  • VINYL-13511 - Upgrade Newtonsoft to 13.0.1
  • VINYL-13463 - Upgrade SSH.Net
  • VINYL-13411 - Upgrade certificate
  • VINYL-13383 - Support utf8mb3 on MySQL


Version 3.1.28846 released on 4/30/2022 2:19:31 PM (build ef97f111)

  • VINYL-13280 - Enable Magento connector


Version 3.1.28344 released on 3/4/2022 4:11:54 PM (build 5d899de1)

  • VINYL-13075 - AWS KMS / ParameterStore support for Vinyl Data Encryption Keys

To deploy to Elastic Beanstalk, first create a IAM policy:

    "Version": "2012-10-17",
    "Statement": [
            "Effect": "Allow",
            "Action": [
            "Resource": "\*"

We named the policy vinyl-dataencryption-parameterstore.

Attach that to the EC2 role used by Elastic Beanstalk. Our role is named aws-elasticbeanstalk-ec2-role

Then, after deploying the environment, change/add the following Environment Properties:

Name Value
DataEncryption:KeyStorage ParameterStore
DataEncryption:ParameterNamePrefix /myapp/production

Where "/myapp/production" corresponds to the Elastic Beanstalk environment. The ParameterNamePrefix is applied to all keys stored by Vinyl. Each environment should use a unique prefix.


Version 3.1.28338 released on 3/3/2022 10:08:50 PM (build 406d173b)

  • VINYL-13163 - Add a page to show job statistics
  • VINYL-13135 - Add a page to show background jobs that would be launched
  • VINYL-13139 - Lock position of network graph nodes when dragged


Version 3.1.28125 released on 2/17/2022 8:19:46 PM (build 8b98ca02)

VINYL-13014 - Add support for changing multiple values in a widget:

... var install = function (holderElement, context) { ... var row = context.getRow(); var values = [ { controlName: "Control A", value: 1 }, { controlName: "Control B", value: 2 } ]; row.setMultipleValues(values); ... }

The values can be keyed by controlName or cell:

var values = [ { cell: controlACell, value: 1 }, { cell: controlBCell, value: 2 } ];


Version 3.1.28099 released on 2/15/2022 5:56:40 PM (build 014b20ef)

  • VINYL-12981 - Azure Block Storage support


Version 3.1.28037 released on 2/8/2022 8:43:48 PM (build ff888812)

  • VINYL-13001 - Corrects an upgrade issue that can prevent Vinyl from completing an upgrade


Version 3.1.28006 released on 2/4/2022 1:51:13 PM (build 23d9f162)

  • VINYL-11555 - Avoid focus when in an iframe that is not in focus


Version 3.1.28003 released on 2/3/2022 10:07:11 PM (build 77976691)

  • VINYL-12986 - Correct issue installing developer data against a table with an identity column


Version 3.1.27791 released on 1/13/2022 7:43:36 PM (build 525531ae)

  • VINYL-12897 - Cross schema join fix


Version 3.1.27769 released on 1/12/2022 2:29:28 AM (build 3ae4204e)

  • VINYL-12880 - Performance - caching data internally used when building queries
  • VINYL-12887 - Restore 50,000 row default limit on download csv - can be overridden at panel level
  • VINYL-12804 - Performance - reduce calls to device detection library used by Vinyl when tracking page traffic


Version 3.1.27557 released on 2021-12-21 (build 05bc8fc4)

  • VINYL-12791 - REST data source: Concatenate multiple cookies together when retrieving the Set-Cookie header
  • VINYL-11867 - Join on registration data source on role pages


Version 3.1.27485 released on 12/15/2021 6:02:25 PM (build 05b87ecf)

  • VINYL-12736 - File control clear X improvements
  • VINYL-12721 - Fix inside labels so they now appear as you remove text from the control
  • VINYL-9653 - Fix large buttons
  • VINYL-12735 - Add interface for theming file control file size text


Version 3.1.27404 released on 12/7/2021 8:26:46 PM (build f5b782b3)

  • VINYL-12710 - Adds two new public data objects to Vinyl:
    • Group - Read-only - provides a list of groups that are available from the context of an application
    • UserGroup - Read/Write - allows viewing/modifying the group(s) that a user belongs to


Version 3.1.27365 released on 12/2/2021 12:08:24 AM (build 08e37ada)

  • VINYL-12433 - Update CData QuickBooks Driver (NOTE: Now needs URL vs HOSTNAME)
  • VINYL-12693 - Allow setting REST request timeout
  • VINYL-12656 - Enable QuickBase Driver on Linux


Version 3.1.27274 released on 11/18/2021 3:40:20 PM (build e45a4891)

  • Enable CData QuickBase Driver


Version 3.1.27186 released on 11/10/2021 1:16:56 AM (build f51ec9f5)

  • VINYL-12619 - Correct NetSuite configuration
  • VINYL-12641 - Correct REST API closing stream when receiving POST and logging enabled


Version 3.1.27150 released on 11/5/2021 7:25:34 PM (build dfda5315)

  • VINYL-12637 - Correct handling of navigation after navigation failures
  • VINYL-11606 - Clear network errors when detecting that device is online
  • VINYL-12632 - Translate client messages ("Check network connection") in Vinyl UI bundle.
  • VINYL-12630 - Handle detecting original url when rewriting to a path that is 5 characters long
  • VINYL-12619 - Enable NetSuite driver
  • VINYL-12508 - Replace network graph with new graph that supports zoom


Version 3.1.27026 released on 10/26/2021 10:46:51 PM (build fec51e1d)

  • VINYL-12605 - Correct NFS import when search pattern applied at data source level
  • VINYL-12609 - Prevent CALLER() from throwing an exception when column not found
  • VINYL-12610 - Default WS-Federation name claim to email address
  • VINYL-12575 - Correct Sharepoint OAuth authentication
  • VINYL-12565 - Ensure the user is authenticated before connecting to SignalR, allow SignalR transports to be configurable
  • VINYL-12599 - Clear cache after adding join clause


Version 3.1.26835 released on 10/7/2021 6:11:39 PM (build b6a1d00a)

  • VINYL-12512 - Corrects handing of binding for webhook CRUD rules
  • VINYL-12259 - Upgrade MySQL Driver


Version 3.1.26792 released on 10/4/2021 2:18:20 PM (build 1e1a29dd)

  • VINYL-12514 - Correct rendering issue with Safari 15 and MRPs with column selection service disabled.


Version 3.1.26722 released on 9/22/2021 11:44:27 PM (build 57572ebc)

  • VINYL-12467 - Correct parsing REST XML endpoints that contain arrays that contain CData XML elements
  • VINYL-12477 - Allow specifying port for sftp server
  • VINYL-11310 - Correct Linux MySQL behavior
  • VINYL-12442 - Correct Linux REST services


Version 3.1.26666 released on 9/17/2021 11:56:45 PM (build 126ab7a0)

  • VINYL-12446 - Correct from clause alias for DB2i
  • VIYNL-12382 - Update System.Text.Encdoings.Web version
  • VINYL-10670 - Correct date handling for SQLite for dates past 2038
  • VINYL-12451 - Update SAP Concur connector
  • VINYL-12449 - Correct PostgreSQL build issue
  • VINYL-12432 - Further DB2i improvements
  • VINYL-12300 - Support for DB2i cross database joins


Version 3.1.26431 released on 9/2/2021 9:27:35 PM (build a37c0785)

  • VINYL-11719 - 504/502 improvements
  • VINYL-12092 - Improve adding actions to events on MySQL
  • VINYL-12388 - Fix snowflake import issues
  • VINYL-12273 - Correct session expiry change requiring restart


Version 3.1.26391 released on 8/31/2021 5:25:45 PM (build 668fd454)

  • VINYL-12277 - Crystal reports - support for row override above 1000 row limit. There is now a property at the page level that allows the developer to set a higher limit. Very high limits (above 50,000) can cause memory issues if the table contains a lot of data


Version 3.1.26347 released on 8/27/2021 3:43:48 AM (build 40bb2d76)

  • VINYL-12340 - When invoking background events pass WindowId
  • VINYL-12345 - Allow actions on S3 data source


Version 3.1.26321 released on 8/25/2021 4:54:39 PM (build 66dcb3ab)

  • VINYL-12339 - Correct exception thrown for webhook insert rules with no PK set


Version 3.1.26281 released on 8/20/2021 8:46:22 PM (build 4ce57ad3)

  • VINYL-11819 - Turn on full audit in foreground vs background


Version 3.1.26277 released on 8/20/2021 2:37:17 PM (build c1ca99e3)

  • VINYL-12315 - Improve import of MS Access numeric fields. Make import more fault tolerant
  • VINYL-12309 - Fixes to mitigate sporadic signalr errors


Version 3.1.26236 released on 8/18/2021 4:13:44 PM (build 7e586e2a)

  • VINYL-12306, VINYL-12226 - Correct webhook CRAM bound on non-PK columns
  • VINYL-12238 - Correct update rule triggered via webhook
  • VINYL-12301 - Improve performance CRUD'ing files to S3
  • VINYL-12233 - Support logging EventHistory and Job to Azure Application Insights


Version 3.1.26074 released on 8/3/2021 9:01:30 PM (build 0845c7b2)

  • VINYL-12224 - SharedStateTicketStore throws exception if ticket not found


Version 3.1.26008 released on 7/26/2021 6:31:37 PM (build 3788653d)

  • VINYL-12092 - Correct action registration on MySQL additional fix
  • VINYL-11634 - Frame page not respecting Insert mode


Version 3.1.25978 released on 7/22/2021 7:41:26 PM (build 617ec282)

  • VINYL-12172 - Corrects hiding error template if there is no message to show the user
  • VINYL-12173 - Correct OAuth redirect_uri if Vinyl hosted under path
  • VINYL-12092 - Correct action registration on MySQL


Version 3.1.25942 released on 7/19/2021 10:44:30 PM (build dd09d824)

  • VINYL-12086 - Quick grid filter updates
  • VINYL-11634 - Quick grid count fixes
  • VINYL-12160 - Fix issue with cross database joins and managed tables
  • VINYL-12136 - Fix issues with managed tables across data sources


Version 3.1.25804 released on 7/2/2021 3:34:57 PM (build a2b42171)

  • VINYL-12101 - Correct issue binding on file system CRUD rules where directory is null
  • VINYL-11263 - Correct substitution of control set headers when downloading csv
  • VINYL-11021 - Extend table fix
  • VINYL-9931 - Pivot rule with null row values throws exception "Key cannot be null. Parameter name: key"
  • VINYL-12027 - Download fails for pivot panel where the binding results in a null column
  • VINYL-11259 - Server side pivot column labels incorrect
  • VINYL-11440 - Error thrown if visibility column exists on a page with a frame panel
  • VINYL-11875 - Bound lists don't clear in filter
  • VINYL-11974 - Filter displays GUID when selecting from list and list filter shows value after clearing
  • VINYL-11802 - Native filter pop-up list control selection not showing values
  • VINYL-11952 - File download fails from image collection


Version 3.1.25645 released on 6/16/2021 3:20:38 PM (build 8e611a83)

  • VINYL-11962 - Corrects how Vinyl processes binary data sent to a webhook


Version 3.1.25605 released on 6/10/2021 1:32:22 PM (build e516bf77)

  • VINYL-11886 - SAML IDP Metadata endpoint
  • VINYL-11748 - Lanes fully update on global refresh
  • VINYL-11897 - Performance improvements when processing translations
  • VINYL-11776 - HTML control does not grab focus
  • VINYL-11925 - Correct max range check for numbers which use scale


Version 3.1.25549 released on 6/4/2021 7:04:14 PM (build b9a6b2f5)

  • VINYL-11554 - Correct issue downloading files containing "," as well as other characters
  • VINYL-11887 - SAML IdP uses SHA-256 digests
  • VINYL-11883 - Log warning for obsolete SAML algorithms
  • VINYL-11670 - SAML SSO fixes and improvements
  • VINYL-11896 - Improves performance CRUDing files from S3 particularly with buckets that contain many files
  • VINYL-11719 - Sets timeout to 1 hour between IIS and Vinyl (HTTP 502 errors)


Version 3.1.25507 released on 6/1/2021 5:05:42 PM (build 0af6bada)

  • VINYL-11703 - Bridge rules now show success/failure handlers
  • VINYL-11858 - Fixes issue when running crud rules from webhook that transfer data to a table with full audit enabled
  • VINYL-11816 - Prevent modifying system collection widgets
  • VINYL-11813 - Events calling events no long pre-caching rows to run against


Version 3.1.25392 released on 5/20/2021 12:47:34 AM (build 935453c8)

  • VINYL-11826 - Corrects silo user viewing framed page they can design
  • VINYL-11822 - Correct license file for Business Central 365
  • VINYL-11783 - Correct null pointer when using trace with an event that calls other events


Version 3.1.25358 released on 5/18/2021 12:04:32 AM (build 424ade38)

  • VINYL-11712 - Fixes for radio buttons on SRP within control set when viewed on mobile, or on pop-up SRP.


Version 3.1.25345 released on 5/17/2021 1:34:34 PM (build a3cdb31a)

  • VINYL-11797 - Correct x-api-key authentication issues
  • VINYL-11779 - Correct Vinyl packaging issues


Version 3.1.25293 released on 5/12/2021 7:25:47 PM (build fa47c09e)

  • VINYL-11721 - Correct stored procedure icon
  • VINLY-11706 - Correct CultureId exception occurring during scheduled jobs.
  • VINYL-11725 - Upgrades Hubspot driver. Allows for APIKey authentication.


Version 3.1.25251 released on 5/10/2021 3:52:06 PM (build 8f459a16)

  • VINYL-11730 - Correct caching issue with crystal reports
  • VINYL-11720 - Improve assembly resolver when loading crystal reports
  • VINYL-11734 - New rules now default to skip business layer. Checkbox now editable on rule page.
  • VNYL-11463 - Improvements to signalr / Vinyl alerts and handling of multiple tabs in Vinyl
  • VINYL-11445 - Consolidate installation and upgrade logic
  • VNYL-11431 - Handle null accept language logic
  • VINYL-11712 - Correct handling of dynamic controls that are radio buttons on an MRP
  • VINYL-11418 - Correct visibility rules for proxy server settings on data source server edge case page
  • VINYL-11460 - Correct link to event logs
  • VINYL-11657 - Correct SAP column equality


Version 3.1.25074 released on 4/26/2021 2:31:28 PM (build 5d55c076)

  • VINYL-11344 - Adjust internal/external settings for plugins
  • VINYL-11633 - Adjust permissions for users in develop role, allowing them to switch current data source in workbench
  • VINYL-11638 - Correct file export logic when running export action against non-RDBMS data sources
  • VINYL-11594 - Add support for Azure Application Insights


Version 3.1.25013 released on 4/21/2021 1:25:30 AM (build 72a89f47)

  • VINYL-11556 - Correct missing stacktrace for errors
  • VINYL-11599 - Correct logic saving crystal reports within a subdirectory
  • VINYL-11496 - Prevent full audit from being enabled when data source has not been fully configured


Version 3.1.24937 released on 4/14/2021 2:41:46 PM (build 9b2becc5)

  • VINYL-11550 - Fixing issue over-escaping text for export
  • VINYL-11520 - Fix issue with large number of claims causing request too large cookie issues
  • VINYL-11493 - Fix issue defaulting some lists when adding a control
  • VINYL-11474 - Add proxy support to HttpRetrieverPlugin
  • VINYL-11467 - Remove path from authentication cookies
  • VINYL-11512 - Improve performance displaying table/column page on MySQL
  • VINYL-11527 - Improve performance of schedule history page on MySQL
  • VINYL-11511 - Update CData Business Central driver
  • VINYL-11389 - Remove culture causing issue with DB2


Version 3.1.24736 released on 3/26/2021 7:57:12 PM (build 32b50d51)

  • VINYL-11452 - Corrects duplicate entry in Dg_Resource table (Key criteria matched multiple entries on rule build page)


Version 3.1.24704 released on 3/24/2021 8:01:51 PM (build a86e5aab)

  • VINYL-11402 - Fix position of panel headers and buttons during activity
  • VINYL-11413 - Update ACE when the mode changes
  • VINYL-11418 - Proxy server support for REST data source servers
  • VINYL-11048 - Prevent REST API quota remainder from going negative
  • VINYL-11383 - Add validation to prevent creating a duplicate resource for an app
  • VINYL-11262 - Disable security report if application has no data sources with roles
  • VINYL-10788 - Correct integrated windows authentication support for file systems
  • VINYL-11162 - Remove GUID from full audit list values
  • VINYL-11366 - Add translation string for tracing
  • VINYL-11405 - Issue profile change notification for native application
  • VINYL-11270 - Update VinylCulture cookie as user changes locale
  • VINYL-10958 - Migration rule to set prevent for foreign keys when no value displayed
  • VINYL-11381 - Fix nightly trim job returning on error for trimming session log
  • VINYL-10759 - Update MySQL performance
  • VINYL-11400 - Add operators to file system data sources that support them in memory
  • VINYL-10841 - Performance fixes for MySQL
  • VINYL-10873 - Add support to disable sorting on panels data source (MySQL)
  • VINYL-11387 - Fix for HttpRetrieverTest
  • VINYL-11396 - Correct visibility rule order for alignment id for side by side control sets
  • VINYL-11388 - Improvements when auto generate pages from data source.
  • VINYL-11181 - Correct app-root relative auth login path
  • VINYL-11382 - Correct package dependency


Version 3.1.24633 released on 3/17/2021 3:02:39 PM (build 6a1e1809)

  • VINYL-11376 - Restore Vinyl list placeholders
  • VINYL-11139 - Correct issues creating records in Dg_Resource
  • VINYL-4873 - Use 4 digit year for all cultures
  • VINYL-11343 - Move date and time formats to the database
  • VINYL-11369 - Trace improvements: - longer expiration for trim rule, keep trace logs for 30 minutes
  • VINYL-11359 - Auto-build improvements for lists
  • VINYL-11357 - Use table for list control if business object is not present
  • VINYL-11348 - Set widths on data configuration page
  • VINYL-11347 - Add support for POST, DELETE, PUT for HttpRetrieverPlugin
  • VINYL-11351 - Several tracing improvements around rendering, tracking, capturing and replaying SQL
  • VINYL-11341 - Filter panel header dynamic support
  • VINYL-8550 - Open links outside of frame panels
  • VINYL-11359 - Correct typo in action descriptions
  • VINYL-11350 - Indexes for trace table
  • VINYL-11334 - Auto-populate category control with source / title / key if applicable
  • VINYL-11316 - Add support for scripting to webhooks


Vinyl 3.1.24555 - Official Release Build

Feature Overview

IDE Improvements

  • Filter panel now supports selecting multiple items in a list (for example, all items in categories 'Beverages' and 'Condiments').
  • New data object types for List and Chart. Lists and Charts bind to these new data object types. This feature is retroactive, meaning existing data objects will be migrated to new types where applicable.
  • New data object type Report which is similar to a standard data object but without the ability to add events.
  • Popup panels can now specify a vertical size to allow for additional aspect ratios.
  • Buttons now have a Location to specify. Location options include Standard, Toolbar, Header, and Action Drawer.

    • Action Drawer allows buttons to be placed in a Panel level Action Drawer menu to run user-defined events.
  • In the visual Page Designer, the right side screen now remains open at all times.

  • Additional Help text available throughout IDE.


  • Zones are a new UI feature providing greater flexibility and control over the layout of content within a panel on a Page.
  • Zones allow you to group content for presentation on the UI Layer inside of a container and take advantage of relative sizing.
  • Zones support the ability to scale content to fill the full width and full height they have allotted on a Page.


  • Vinyl can now run on Linux!
  • Note that the following features are not supported on Linux:

    • Crystal Reports
    • SAP ABAP data provider
    • Salesforce data provider (not the CData Salesforce driver)
    • Integrated Windows Authentication (IWA) authentication
    • Active Directory authentication
    • File system impersonation
    • Third-party plugins


  • User Session activity is now being logged. Session details such as language, browser, device, and OS are tracked and able to be viewed.
  • Page Views are now being logged. A dashboard in Vinyl now indicates pages being viewed by application and by what devices and languages.
  • Page Tracing feature makes Vinyl applications easier to debug by providing an overview of various activities for a given page and/or user. Activities include:

    • Events
    • Actions
    • Defaults
    • Visibilities
    • Validations
    • Panel filtering

Rule Builder Improvements

  • Improved the User Interface:

    • Hide fields not relevant to the Rule being created
    • Move less relevant but still used fields to Edge Case settings
  • Renamed Results button to Validate, which now also checks the Rule's required column Usage Type and Bind/Target Column.

  • Consolidate Where Column Used to ease checking all uses.
  • Default column Alias when possible.
  • Default CRUD Rules to act on Business Layer.
  • Default Target Table based on Rule Name.
  • Show Table Name on Join tab (and Alias if Names are duplicated).
  • XP CRUD and XP Validation now option as a table Purpose.
  • Show Storage Type when relevant so the user is aware of a field's storage limitations (for example, character limitation).
  • For new Rules, control of Primary Keys is under the explicit control of the developer. Existing Rules will default to the old behavior but can be updated via a setting at the data source level.


  • Event Inheritance is now on by default. This feature is retroactively on for existing data sources.
  • Events defined at the table level are available for use at the Business Rule level.


  • Full Audit is now enabled by default for newly created data sources.
  • Any tables added to new data sources will have Full Audit automatically enabled.
  • Reference Audit Id column now automatically created.

    • Table with single part UUID Primary Key uses the Primary Key for the Audit Id.
    • Otherwise, a separate UUID Audit Id column is created.
  • Full Audit is now supported on Inherited tables.

Native Android App

  • A native Android app is now available in the Google Play Store which allows users to connect to any Vinyl server (version 3.0 or above).
  • Bridges can now send Push Notifications to a native app.


  • Handles Chrome SameSite cookie changes.
  • New User Security reports available for Report By User and Report By App. These reports are available for read-only purposes to provide greater insights and visibility into User security access in Vinyl.

Miscellaneous Improvements

  • HTML editor Quill has been upgraded to the latest version.

    • Can now copy/paste images and adjust size.
    • Supports adding videos.

Detailed Changes

New Features

  • VINYL-9863 - Upgrade to latest Quill library
  • VINYL-10746 - Session and Page View tracking
  • VINYL-10761 - Add Action Drawer option for panel Toolbar display
  • VINYL-10816 - Support multi-select for list filtering


  • VINYL-7895 - Add SameSite attribute to cookies
  • VINYL-7955 - Add explicit initialization stage to view models
  • VINYL-9162 - Crystal Report - Create abstraction and remove direct reference from Web project
  • VINYL-9457 - Antlr over-reporting error
  • VINYL-9477 - Move React repo into Vinyl repo
  • VINYL-9488 - Replace string use for enums thru-out mvSQL project
  • VINYL-9584 - Audit (Full and Lite) is (almost certainly) not supported for Inherited tables
  • VINYL-9587 - Make mock data consistent
  • VINYL-10044 - Upgrade Typescript to 3.9
  • VINYL-10474 - Hide content from REST Endpoint table page
  • VINYL-10535 - Refactor SignalR client-side code in preparation for ASP.NET Core migration
  • VINYL-10655 - The Edit button on the Theme popup truncates the Edit button
  • VINYL-10700 - Ensure computeds are disposed when view model is disposed
  • VINYL-10722 - Implement UI: Zone Support
  • VINYL-10735 - Add support for extended table to ORM class mappings
  • VINYL-10738 - Convert RuntimeContext.Current from ambient context to a singleton
  • VINYL-10780 - Improve performance of Site Menu
  • VINYL-10783 - Switch visual Page Designer to use selected row binding vs page links
  • VINYL-10799 - Add various image processing enhancements to Quill editor
  • VINYL-10835 - Add a RelativeHeight as Vertical Size for Page Popup as an Edge Case
  • VINYL-10868 - Include package manager with Vinyl web application
  • VINYL-10870 - Allow two data sources for the same database
  • VINYL-10873 - Allow developers to disable order by clause from query
  • VINYL-10893 - Two simple searches steal focus from one another
  • VINYL-10916 - Ensure App Workbench page alignment of tiles across categories
  • VINYL-10936 - Changes to zero row state Site Menu
  • VINYL-10956 - Security report by User
  • VINYL-10968 - Default Full Audit to enabled for newly created databases/tables
  • VINYL-10994 - /ping Endpoint improvements
  • VINYL-11028 - Move Disable Full Audit and Full Audit checkbox to Edge Case
  • VINYL-11035 - Column Usage on SRP of Rule builder
  • VINYL-11056 - Auto Inherit Table - Import Exists Events from Table


  • VINYL-4703 - Subtitle not searched when typing into list box
  • VINYL-5926 - Unhandled exception inserting null job criteria
  • VINYL-6525 - WYSIWYG editor prefixes http:// to links
  • VINYL-8855 - Crystal Reports pages ignore panel bindings to columns not referenced by a control
  • VINYL-8856 - Crystal Reports pages do not support panel-to-panel shared criteria
  • VINYL-8981 - unable to remove preview image in Theme editor
  • VINYL-9106 - Action Drawer icon too large for titlebar
  • VINYL-9502 - Fix IDE Themes - one app Theme to manage all styling
  • VINYL-9716 - Extra spacing when adding Buttons to page builder
  • VINYL-9746 - List requires two clicks to save (with open results)
  • VINYL-10115 - Convert from SignalR from ASP.NET to ASP.NET Core
  • VINYL-10244 - Invert Hotkeys dependencies
  • VINYL-10348 - Registration of Bridges from Actions page
  • VINYL-10429 - Columns don't auto-populate when adding a file browser panel
  • VINYL-10501 - Navigating to a framed page without the "Replace" option enabled reloads framing page
  • VINYL-10513 - Error thrown while adding a group's privilege
  • VINYL-10550 - Upgrade resize sensor library
  • VINYL-10551 - Reduce the number of Promise objects created when instantiating view model children
  • VINYL-10555 - Investigate disabling Knockout deferred updates
  • VINYL-10640 - Gulp watch does not recompile files that include changed files
  • VINYL-10659 - PageViewModel does not dispose of binding context
  • VINYL-10660 - Do not create parent Context objects for panel view models
  • VINYL-10687 - Managed Session table adds 3 hidden columns to the table, which appear on table repair
  • VINYL-10688 - Menu links do not honor the Active flag
  • VINYL-10691 - Navigating forward after canceling insert renders page in display state
  • VINYL-10701 - Rule Builder - Out of bound connection overlaps Resize
  • VINYL-10712 - Inherited table from Ui_Control throws exception viewing results
  • VINYL-10713 - Unhandled errors when granted access to the Vinyl application but not data source
  • VINYL-10716 - Inherited table throws an exception when using simple search
  • VINYL-10729 - Closing pop-up after creating column throws getParentPanelOrSelf null error
  • VINYL-10751 - Error "Cannot set property 'length' of undefined" when disposing of control
  • VINYL-10764 - Adding new user-defined SQL function requires an IIS restart to pick up new details
  • VINYL-10768 - Rule Builder - Improvements
  • VINYL-10800 - MySQL 5.6 and earlier fails with set_session_timeout error
  • VINYL-10811 - Detailed REST API logging doesn't separate lines of the request/response headers
  • VINYL-10812 - Turning on detailed logging sometimes causes 500 errors on REST API calls
  • VINYL-10819 - Table help wraps in list box
  • VINYL-10824 - Theme problem on join modal hover
  • VINYL-10830 - Validation buttons should not appear until after insert
  • VINYL-10847 - Embed control type errors, file name is required
  • VINYL-10850 - Help: missing for Batch Limit parameter on business rules
  • VINYL-10852 - Duplicate chart type listbox in IDE
  • VINYL-10853 - Initial Panel State lost when editing other panel panels
  • VINYL-10856 - FromClauseTables plugin does not support search
  • VINYL-10857 - FromClauseTables does not support paging correctly
  • VINYL-10858 - SQLite quotes identifiers with grave accent (backtick) rather than double quote
  • VINYL-10869 - Filter header title/closeX not shown in some IDE pages
  • VINYL-10886 - Embed file not resolving files inside
  • VINYL-10889 - Visibility columns cause flickering
  • VINYL-10891 - Use list sorting on vinyl filter panel lists
  • VINYL-10892 - Rule Builder - Show table name on the Join tab
  • VINYL-10895 - Read only columns quickly appear editable when binding changes
  • VINYL-10899 - Create data source from the connections page creates data source in default data source vs selected data source
  • VINYL-10904 - DateTime values are not localized to user time zone in quickgrid results
  • VINYL-10905 - Vinyl contains a table named TRK1
  • VINYL-10908 - Remove Crystal Report Panel
  • VINYL-10912 - Rule Builder - Bad expression preventing canvas to be drawn
  • VINYL-10920 - Rule Builder - Stakeholder feedback for 3.1
  • VINYL-10921 - Circular dependencies between JavaScript modules
  • VINYL-10925 - Bridge actions are missing continue on error, success/failure handlers
  • VINYL-10931 - TablePurpose of List missing when auto-building rule
  • VINYL-10942 - List of panels show panel link criteria as "Links" - should be "Bindings"
  • VINYL-10961 - Unions to throw a more friendly error for non column identifiers
  • VINYL-10964 - Action Drawer menu entries not translating
  • VINYL-10973 - List items are not being translated properly
  • VINYL-10976 - Phrases translation page: editing control name throws error
  • VINYL-10977 - Manual translation page: 'Language' column is too short and cuts off the title
  • VINYL-10978 - Menu item bindings do not work for mobile menus
  • VINYL-10989 - Salesforce authentication now authorizes with the "id" scope
  • VINYL-10995 - Make MaxObjectNameLength 256 for REST database type
  • VINYL-11011 - RFC panel is not bound to action on action detail
  • VINYL-11020 - Updates logic when reading from REST endpoints that were written to. Uses cached values when several actions reference the same logical tables.
  • VINYL-11031 - Change .NET Framework target from 4.7.2 to 4.8
  • VINYL-11036 - Create Vinyl database if it does not exist
  • VINYL-11044 - Renaming TableFrom alias failing on where clauses
  • VINYL-11046 - Non-BL CRUD error
  • VINYL-11058 - Fix table purpose icons
  • VINYL-11065 - Use bindings showing in table edge case incorrectly