Skip to Content

Vinyl 2.6 release notes

Important upgrade release notes

Width=0 controls on a multi-row panel have been migrated to a control state of "Hidden" - these controls will still work with templates and widgets. If you were using width=0 to make a field filter only, there is now a new control state for that.


.NET 4.7.2 or greater is required if using the scripting functionality within Vinyl.


Version 2.6.26668 released on 9/20/2021 3:05:32 PM (build 67db2291)

  • Upgraded CData Mail driver to version in newer versions of Vinyl

Version: Version 2.6.21195 released on 2020-04-16 (build 6435a4ff)

  • Upgrades MailKit library to 2.5.0 - needed for sending email to O365 with recent security changes made.

Version 2.6.20685 released on 3/4/2020 8:59:55 PM (build 1614a8e1)

  • Corrects how count is performed for Salesforce CData / ADO.NET
  • Corrects who('') if the security provider uses another security provider to manage identities (Rdbms security provider using OAuth security provider for Salesforce CData for example)
  • Corrects issue with edit icons not being visible on a page linking to a page to if the target page has a page page data object and the main panels are bound to the page data object.
  • Corrects issue when downloading a CSV file when there are hidden controls to the right of a control set on a MRP
  • Corrects an issue with SMS bridge
  • Introduces the UserRole public data object
  • Introduces the App_Role public data object.

Hotfix: Version 2.6.20090 released on 1/30/2020 9:44:58 PM (build a08d472c)

  • Introduces network graph control type (not active - contact development team for instructions to enable)
  • Improves support for v2 licenses

Hotfix: Version 2.6.19955 released on 1/22/2020 3:31:22 PM (build 831ae241)

  • Introduces "Role()" runtime function for determining if a user has a particular role. Can use role by name in same data source or role by roleId if in a different data source. Returns a string literal or "0" or "1". Ex: role('Sales') or role('')
  • Corrects issue installing LP on SQL Server if there is another index that is clustered other than the PK
  • Updates Sybase connector

Hotfix: Version 2.6.19914 released on 1/19/2020 10:06:34 PM (build 8025094d)

  • Corrects issue with disabled date field still possibly editable
  • Improves sort order of export actions
  • Adds the AirTable data source.

Hotfix: Version 2.6.19897 released on 1/17/2020 10:08:05 AM (build 4ef7077e)

  • Corrects issue running XP Validations against a REST data source
  • Corrects issue when hiding columns on a MRP with control sets and the downloaded csv does not match
  • Adds BOM to downloaded csv so that Excel will render international characters correctly
  • Adds data sources:

    • Gmail
    • GoogleContacts
    • GoogleCalendar
    • Dynamics 365 Fin / Op
    • Quickbooks Online

Hotfix: Version 2.6.19604 released on 12/11/2019 4:55:48 PM (build 91327016)

  • Corrects clearing lists in filter panel when pressing the clear filter button
  • Fixed behavior of filtering checkboxes

Hotfix: Version 2.6.19596 released on 12/10/2019 11:58:52 AM (build 682a84ca)

  • Vinyl now supports NULL selection list binding criteria. A select list binding can be NULL.
  • Filter panel adjustments. To address backwards compatibility, the filter form will now resolve selection list bindings from the panel's data. There are several restrictions, including:

    • It only applies to null values.
    • In only applies to columns that are not control bound.
    • The value must be unambiguous.
  • Corrects issue downloading csv if there are multiple columns hidden

  • Updates client-side pivot to prevent a race condition on refresh that might cause an error to be displayed to an end user

Hotfix: Version 2.6.19431 released on 11/19/2019 10:05:06 PM (build 208d7653)

  • Corrects issue with REST lists and extra binding fields corrected in 2.5
  • Improvements to HTML editor in excel mode
  • Support cross database joins in MySQL
  • Corrects issue of duplicated data if there are multiple license keys installed.

Hotfix: Version 2.6.19341 released on 11/15/2019 3:25:48 PM (build e5c32a72)

  • Corrects count for "File" table for file data sources
  • Prevent calling intrinsic events via REST - "new" event is still allowed
  • Corrects issue with storage datatype for webhook endpoint columns
  • Modifies how REST test values are converted
  • Corrects defaulting of html controls
  • Updates Snowflake data source type
  • Improves logical data type errors to be more clear
  • Fixes column usage type between rule building page and column detail page
  • Improves substitution of parameters in urls using {{ }} syntax
  • Corrects API request counts not being rolled up correctly
  • Corrects issue preventing multiple server-side pivot tables from being placed on the same page - note they must have separate data sources to function correctly
  • Corrects issue preventing SNAPI endpoints from being created
  • Improves license key format and introduces support for a license key that does not allow development, but only running Vinyl applications - Runtime licenses
  • Improve SAML log messages - particularly useful when investigating authentication issues and setting log level to debug
  • Fixes issue in which html fields with no source appear editable with panel excel mode
  • Corrects issue with guid appearing in control detail page
  • Corrects issue showing edit button on SRP with excel mode
  • Corrects Chrome autofill interfering when entering columns on a rule
  • Fixes bigint and decimal values used during conditional formatting
  • Corrects dates in Vinyl log appearing with incorrect timezone

Hotfix: Version 2.6.19200 released on 10/29/2019 12:21:03 PM (build 1dce6bb7)

  • Improve error generated if crystal reports is not found
  • Enable stored procedures for all CData data source types
  • Corrects issue calling stored procedure from a business object when defined at the table
  • Corrects null exception when throwing access denied error
  • Adjusts column sizes for binding columns panel
  • Corrects issue with REST request raw json endpoint throwing exception when testing
  • Corrects links on page page when panel data source is a table or REST super object
  • Corrects issue when expressions refer to columns that have been shortened
  • Default new table name during physical table copy
  • Clears link to page when no longer linking (for update / create)
  • Corrects issue where REST object calls new event during filter

Hotfix: Version 2.6.19079 released on 10/21/2019 8:00:08 AM (build 7a834e10)

  • Implements BatchMode improvement for CRUD rules.
  • Improves delete performance of Vinyl logs using batch mode.
  • Corrects mismapped Primary / Secondary table labels on data source relationship page
  • Corrects style / base style lookup and null / empty handling
  • Fixes validation rules in Salesforce when table includes a boolean / bit field
  • Adds 3rd party plugin for Elite Group
  • Corrects file export actions - can add action at the rule level, actions at rule level (vs table level) now run without exception
  • Multi-part form content header not being set correctly

Hotfix: Version 2.6.19025 released on 10/15/2019 8:05:05 AM (build fe2a63a0)

  • Corrects issue with removing and re-adding tables to rules showing underlying data for Vinyl object
  • Corrects issue preventing Vinyl from loading if using .NET 4.6.1
  • Corrects issue hiding filter, count, new event on event pages
  • Support Marimekko charts
  • Corrects theme upgrade issue with formats used on fields and panels
  • Corrects panel header on password changed page
  • Hide link to page criteria if page options can't be shown
  • Corrects title for bubble charts
  • Adds support for Ctrl-arrow for moving around grid
  • Adds support for Shift-S to save all rows on grid
  • Improves endpoint validation
  • Updates IDE Business layer page
  • Corrects outline on link to page icon
  • Misc code improvements
  • Allow users to correct uncategorized themes
  • Allow table name to wrap on business logic layer and storage layer

Hotfix: Version 2.6.18919 released on 10/2/2019 11:00:45 AM (build 76f7d7ad)

  • Corrects issue of "Values" appearing in chart legend when colors specified when charting multiple values
  • Corrects copy panel issue
  • Handles blank strings in chart values
  • Corrects color handling on charts when multiple values are being charted
  • Corrects issue with cosmetic panel template bindings do not appear
  • Corrects hover label for bubble charts
  • Improves wrapping of simple search for long search strings and small panels
  • Corrects XXE vulnerability in SAML response validation

Hotfix: Version 2.6.18891 released on 10/1/2019 9:34:18 AM (build c1ebce77)

  • Fields marked as Filter on MRP will now be included in csv download
  • Corrects issue displaying GUIDs when there is an error during delete or user-defined event
  • Adds JSON data type support to PostgreSQL
  • Corrects issue with global refresh being ignored on update event
  • Urlencode URL parameters for REST requests (can be disabled by using "{{parameter|url_decode}}"

Initial Release: Version 2.6.18836 released on 9/26/2019 3:51:00 PM (build 54d7a249)

Feature Overview

UI Improvements

  • Charts:

    • Added Bubble charts (HighCharts).
    • Add label and short label support to charts.
    • Add JSON support for Gantt charts.
  • Allow custom expressions for aggregation. This allows a designer to put an expression in the control to define what total expression to use.

  • Honor width when column selection is disabled.
  • MRP labels now have a visibility setting to hide them.
  • Framed pages honor global reload.
  • Updated loading animation, checkbox style.
  • Add an indication in the MRP that a column of a rule is a PK.


  • Added new CSS options for:
    • white space, line height, letter spacing
    • width/height, max-width/max-height
    • flex box
    • animations
    • Positions (top/right/bottom/left)
  • Added many new selectors, allowing more specific styling of a page.
  • Converted all conditional formatting to "mini themes". Allows a theme to target more specifically.
  • Additional interfaces can be added under IDE > Configuration, allowing you to target any part of the page using CSS selectors.
  • General improvements to theme configuration pages.


  • Navigation improvements:

    • Quick links to various IDE sections on top menu bar.
    • Show table being modified on Events page.
    • Link to business object page from panel allows user to show all business objects in the data source by clearing the filter.
  • Allow configuration of support link per application.

  • Smarter auto-creation of joins and join columns, less likely to create undesired joins.
  • Support dynamic links on buttons, icons and images.
  • Added report of all visibility rules that don't target the panel's source.


  • Panel filter criteria now supports charts, other panel types.
  • Filter UI now supports NULL comparisons.
  • Added support for Filter page links to resolve UUIDs on the target page.
  • Added Filter state to Fields, allowing a field to appear only on the Filter panel.

Accessibility Improvements

  • WCAG 2.0 support.
  • Keyboard hotkeys to allow navigating Vinyl interface without a mouse:

    • ESC key now closes overlay and cancels out editing a row (both SRP and MRP)
    • Control+`s`, Command+`s`, Control+ENTER, or just ENTER now all can be used to save a row
    • Control-Shift-S, Command-Shift-S can be used to Save All edited records in an MRP
    • DELETE key (or fn+DELETE, depending on your keyboard setting) will start or add a row for deletion
    • `e` can be used to start editing a row
    • `c` can be used to start adding a row
    • Arrows up and down can be used to navigate through the rows of an MRP
    • Tab and shift-tab can move left right
    • Control-Up/Down, Command-Up/Down can be used to move around even if the field catches up/down keys (such as numeric, text area, or list)
  • Improved screen reader support.

Error Messages

  • Allow developers to create custom, user-friendly error messages for database exceptions.
  • Salesforce API errors now show the actual error message text instead of "Salesforce API request failed".


  • Nested tables are now supported by the REST API (SNAPI).

    • Vinyl now supports creating much more complex responses by joining tables together.
  • Published APIs (SNAPIs) from sealed apps/datasources are now shown.

REST Data Source

  • POST, PUT calls now keep tables in memory and allow joins between tables to establish hierarchy (functionality that was only present in GET calls).
  • Dynamic page now shows cached results for REST endpoints. This allows Vinyl to display results without actually calling the REST API. Note that all previous Import results will be nulled out as part of the migration from 2.5 to 2.6.


  • Support SAML SSO responses with message-level signatures

New Data Sources

  • Sybase Adaptive Server Enterprise (CData)
  • Google BigQuery (CData)
  • Veeva Vault (CData)


  • SMTP plugin and Bridge Email both now support using a file datasource id for attachments.
  • Support link in action drawer should open in a new tab
  • Allow scripts to resolve services
  • Support newer versions of Crystal Reports.

Detailed Changes

New Features

  • VINYL-8472 - REST - Treat POST as GET
  • VINYL-8484 - Convert database exceptions to user-friendly errors.
  • VINYL-8510 - Sybase ASE
  • VINYL-8519 - Footer data object on a panel
  • VINYL-8539 - Support highcharts bubble charts
  • VINYL-8547 - Allow custom expressions for aggregation
  • VINYL-8554 - CData Google BigQuery
  • VINYL-8555 - Convert generic Salesforce API error messages into something more user-friendly.
  • VINYL-8567 - Veeva Vault
  • VINYL-8571 - Support dynamic links on buttons, icons and images
  • VINYL-8575 - REST API - Support complex data structures
  • VINYL-8603 - Configurable support url per application
  • VINYL-8743 - Filter - ability to filter on null values (empty values?)
  • VINYL-8803 - Honor width when column selection is disabled


  • VINYL-6586 - esc key should close overlay
  • VINYL-7187 - Show runtime instance server times
  • VINYL-7241 - Enable filter for charts and other panel types
  • VINYL-7572 - Hiding labels on MRP involves something not entirely intuitive
  • VINYL-7975 - Add an indication in the MRP that a column of a rule is a PK
  • VINYL-7977 - Add label and short label support to charts
  • VINYL-8310 - Create a report of all visibility rules that don't target the panel's source
  • VINYL-8328 - Add white space css option to theme value types
  • VINYL-8366 - Add maxmize theme selector
  • VINYL-8387 - Can't know your table from events page
  • VINYL-8392 - Conditional format use excel mode
  • VINYL-8418 - Allow filter title to be passed to a target page link
  • VINYL-8430 - Support conditional format in edit state
  • VINYL-8437 - SMTPPlugin should support file datasource id for reading attachments from
  • VINYL-8438 - Email Bridge should support optional FileDataSourceId column
  • VINYL-8443 - Adding columns manually or by an actionable button like Create List yields different results
  • VINYL-8452 - Support link in action drawer should open in a new tab
  • VINYL-8476 - Published APIs (SNAPIs) from sealed apps/datasources are not visible.
  • VINYL-8504 - Enable timezone selection for CData data sources
  • VINYL-8507 - Search should be set to 'any' instead of 'starts with' for user profile time zone
  • VINYL-8513 - Support SAML SSO responses with message-level signatures
  • VINYL-8515 - Add JSON support for Gantt charts
  • VINYL-8523 - Comment on Theme Rules should no longer be required
  • VINYL-8524 - Add IDE Site Menu Links for Developer On Page Designer Page
  • VINYL-8525 - Support keyboard shortcuts
  • VINYL-8527 - UI/UX: Arrow keys should activate always editable fields in other rows (MRP)
  • VINYL-8528 - Accessibility Support: WCAG 2.0 - Can now navigate around the full Vinyl interface without a mouse. Improved screen reader support. Addressed misc. accessibility issues in Vinyl.
  • VINYL-8561 - CData: Usage Report
  • VINYL-8572 - Migrate Width=0 to ControlState Hidden
  • VINYL-8640 - Allow scripts to resolve services
  • VINYL-8775 - Add Support for Visual Studio 2019
  • VINYL-8780 - Automate Iron Mountain release
  • VINYL-8797 - Show results from cached response for REST data source endpoints.
  • VINYL-8842 - Allow user timezone configuration from administrative user create screen
  • VINYL-8982 - Allow Vinyl to work with newer versions of the Crystal Report Runtime


  • VINYL-6130 - Problems right justifying a text field on a board
  • VINYL-6280 - Dependent selection lists on filter panel are restricted to selected row
  • VINYL-6371 - Toolbar buttons with an Event do not also take you to a Static New Page
  • VINYL-6430 - Binding Criteria for Filter Panel not being passed for list if filter is required
  • VINYL-6633 - ReadOnlyDictionary issue with Antlr4.6.4
  • VINYL-6696 - Validation errors can leave always edit fields open
  • VINYL-6835 - Group by doesn't work with column selection disabled
  • VINYL-7018 - Spacebar does not toggle a checkbox
  • VINYL-7096 - Control transformation service does not take into account Link To Page
  • VINYL-7171 - Update missing exposed real estate to themes
  • VINYL-7345 - Unique key constraints on nullable columns
  • VINYL-7352 - Inconsistent behavior between Add and Edit when linking to a page from a multi-row panel
  • VINYL-7556 - Hidden columns are displayed when column selection service is disabled
  • VINYL-7750 - Lists in filter don't include shared criteria
  • VINYL-7785 - Filter shows list values on reload
  • VINYL-7870 - Reach registration change requires flushing cache
  • VINYL-7907 - ScrollTo position lost when child panels are reloading data
  • VINYL-7946 - Timeouts loading access rights
  • VINYL-8039 - Site menu does not honor roles-based security
  • VINYL-8053 - Pivots error when data changes (new columns appear or hide)
  • VINYL-8067 - error messages on dynamic result pages not rendering correctly
  • VINYL-8120 - Excel mode saving should run change events first
  • VINYL-8130 - Pressing back quickly throws error crossing app boundary
  • VINYL-8134 - Fix search not working for user profile Time Zone field.
  • VINYL-8177 - Panel binding query parameters not escaping table name correctly
  • VINYL-8202 - Add a lot more columns to the Columns panel when editing a Rule
  • VINYL-8241 - Rule builder creates join without any columns
  • VINYL-8287 - SRP Link to page should only be shown if needed
  • VINYL-8292 - Registering validation rule with a "column value" error type fails
  • VINYL-8293 - Can't register Export action as a success/failure handler
  • VINYL-8297 - Can't register bridge action on a success handler
  • VINYL-8305 - Changing panel source breaks visibility rules
  • VINYL-8312 - Row-level exceptions are not displayed unless the event has a failure message
  • VINYL-8320 - sql command timeout on rules wizard page for filter request from the webui (mysql)
  • VINYL-8343 - Files can't be accessed when using aggregate functions
  • VINYL-8344 - Rule builder auto-join feature generates invalid and unexpected joins
  • VINYL-8361 - No FK for InsertLinkToPageId (or update)
  • VINYL-8370 - Links to Table Definition don't all include RegistrationDataSourceId -> DataSourceId
  • VINYL-8371 - Do not default column to auto-generate in composite primary key
  • VINYL-8379 - delete button on audit table page when there shouldn't be
  • VINYL-8393 - Pages cancel filters when navigating
  • VINYL-8403 - copying a theme from vinyl collections associates with Northwinds
  • VINYL-8424 - Error "The control type does not support filter" in single-row panel after reload
  • VINYL-8432 - Cannot run simple search on MRP with server-side pivot
  • VINYL-8433 - Vinyl - only runs on US servers - should update web.config so it will force Vinyl to be parsing values in US format
  • VINYL-8439 - Email bridge - multiple files under a subdirectory not working correctly
  • VINYL-8449 - Gantt View panel link to page binding not working
  • VINYL-8454 - Changing Panel Source Does Not Update/Remap UI_Default Panel Column Binding
  • VINYL-8457 - Remove old RTF control type record
  • VINYL-8462 - Copy panel - copying to page with no panels results in exception
  • VINYL-8475 - Business Logic Page title is wrong
  • VINYL-8477 - Replace jose-pcl library
  • VINYL-8478 - Download needs to take visibility columns into account
  • VINYL-8480 - Chart colors override custom JSON from template
  • VINYL-8482 - REST - Drill Down Nested Names
  • VINYL-8487 - mvSQL caches parse trees with literal values
  • VINYL-8500 - Changing control set from stacked to side by side results in error message AlignmentId is mandatory
  • VINYL-8506 - Setting a user time zone without time zone country doesn't work.
  • VINYL-8516 - Server pivot: Placing pivoted value as first control has strange behavior
  • VINYL-8518 - Single row panels can't use shared binding criteria from a parent
  • VINYL-8531 - viewing full audit causes exception does not contain a column with the name
  • VINYL-8532 - CRAM Into MySQL Table with shorten physical name with auto increment
  • VINYL-8533 - Servers can be created even with a insert failure
  • VINYL-8537 - The Sh_BgServiceLog table doesn't have any indexes
  • VINYL-8542 - REST Sending Int as Decimals
  • VINYL-8546 - CRUD insert rule can report Keys are missing for insert or update rule (where the update rule isn't updating an in memory row) if the first column does not target a primary key, and the primary key targeting by name does not match
  • VINYL-8548 - Typo in embed control type
  • VINYL-8574 - When using disable column selection, insert needs two tabs
  • VINYL-8576 - Copy panel missing some items
  • VINYL-8594 - Copy rule does not copy success handlers
  • VINYL-8723 - Create+ in Group Management gives a PK error
  • VINYL-8725 - REST sql lite - Import endpoint with special characters
  • VINYL-8728 - Duplicate error messages in ui when encountering an exception.
  • VINYL-8730 - Server pivot table header sorted alphabetically for numeric values
  • VINYL-8742 - Pinned columns lost when turning column selection back on
  • VINYL-8746 - Filter fieldset/group not showing
  • VINYL-8749 - LP files should not include group privileges
  • VINYL-8771 - Width field not present on a date control
  • VINYL-8786 - Vinyl Web Services / API (Doc) page does not render correctly
  • VINYL-8789 - PostgreSQL user without database
  • VINYL-8799 - Auto edit gets stuck after double click
  • VINYL-8806 - Problems with OAuth token expiration with Salesforce CData connector
  • VINYL-8814 - Internet explorer expired password stuck in a loop
  • VINYL-8831 - Bridge link requires user to re-authenticate regardless of authentication status.
  • VINYL-8852 - MySQL: Can't add validation to event
  • VINYL-8858 - Toggling Explicit to Implicit binding type for Actions and Validations should remove the binding columns.
  • VINYL-8874 - MySQL length of 2000 forced for nvarchar
  • VINYL-8878 - Repair - MySQL - Expression/Function as Default
  • VINYL-8879 - Flipping a foreign key constraint from secondary to primary leaves orphaned constraints
  • VINYL-8886 - Pinned column field focus on row change
  • VINYL-8938 - MRP - New row and delete state overlap
  • VINYL-8949 - Save w/ validation won't run after change event
  • VINYL-8966 - Empty Ui_Control.Name causes Oracle to fail