Skip to Content

Vinyl 2.5 release notes

Important upgrade release notes

  1. Before performing the upgrade, you might want to consider cleaning the Vinyl log tables:

    truncate table Sh_ScheduleHistory;
    truncate table Dg_Log;
    truncate table Sh_BgServiceLog;
    truncate table Dg_EventHistory;
  2. Developer Silo has been done over to make it more secure. Developers that you want to have silo'ed access to Vinyl should be members of a group with the "Developer" role within Vinyl, and should not be given the "Administrator" role within Vinyl. You will need to check this after performing the update.

  3. Servers with Azure Ws-Federation security provider, that provides group membership. After upgrading Vinyl, check that a claim-type has been added to the claim panel.

  4. Links that link directly to the download service now require $pageId=<pageId>


Hotfix: Version 2.5.19311 released on 11/13/2019 5:24:25 PM (build f26ea8b3)

  • Allows multiple server-side pivots to be on the same page. The pivots must be backed by different server side pivot data objects.

Hotfix Version 2.5.18957 released on 10/3/2019 6:14:27 PM (build cd2c7934)

  • Corrects finding tables in schema on PostgreSQL
  • Support for JSON / JSONB in PostgreSQL
  • Corrects url encoding of parameters in REST GET and POST requests

Hotfix Version 2.5.18650 released on 9/13/2019 9:47:53 AM (build f72448ef)

  • Corrects issue with defaults not being applied to html controls
  • Corrects issue with handling of database level default columns affecting the repair page
  • Corrects issue where statements with reach were not being refreshed in cache when being changed
  • Improves handling of Salesforce driver OAuth errors.

Hotfix: Version 2.5.18378 released on 8/26/2019 4:13:50 PM (build 522089a0)

  • Salesforce driver now handles expired OAuth tokens better.
  • Allows behavior of failed scheduled events to continue processing events that follow failed events - set by new flag on schedule detail:


Hotfix: Version 2.5.18070 released on 8/8/2019 3:02:39 PM (build 03556ca9)

  • Salesforce driver now retrieves ID when inserting a record.
  • Corrects issue with control views modifying visibility and mandatory fields in a MRP, and incorrectly indicating that a field is mandatory when it is not.
  • Updates Iron Mountain scripts

Hotfix: Version 2.5.17973 released on 7/31/2019 11:00:16 AM (build d95a4c3e)

  • Hidden controls are now available to be used as HTML Template parameters
  • Corrects issue where SRP appears to still be loading when no results are returned

Hotfix: Version Version 2.5.17832 released on 7/18/2019 12:03:15 PM (build 4d8d9aa2)

  • Corrects issue modifying translations in production environements.
  • Adds support for PATCH http method for REST
  • Restores allowing to sort on inactive controls
  • Upgrades highcharts library to 7.0.3 to correct a highchart animation issue
  • Corrects Babel translation rules

Hotfix: Version 2.5.17801 released on 7/15/2019 9:15:22 PM (build ff08e017)

  • Corrects logic around displaying the link criteria panel for a control.
  • Corrects handling of CRUD insert when targeted primary keys are not specified first, and column source is named something different from column target
  • Corrects issue when cramming value into MySQL database with auto-increment values and shortened physical names
  • Corrects issue specifying column order by and direction, and errors reported when changing control set from stacked to side by side

Hotfix: Version 2.5.17758 released on 08/07/2019 10:17:37 AM (build 972dc81b)

  • MySQL support for AutoIncrement
  • Fix CRAM rule fails with "Keys are missing for insert or update rule" error.
  • Improvement to usage of Silo Developer role vs group.

Hotfix: Version 2.5.17678 released on 6/25/2019 5:40:56 PM (build 9476a309)

  • Corrects gzip support in REST calls
  • Corrects issue with drilldown REST calls
  • Corrects radio buttons with conditional state not loading
  • SRP treated as ready too soon, frames fail when clicking the first button rendered
  • MRPs stuck in loading state (pivots as well)
  • Corrects issue with = in data source server setting
  • Fix for CRUD business rules not logging old value in full audit

Hotfix: Version 2.5.17640 released on 6/20/2019 1:25:50 PM (build c86240b0)

  • Fix for REST drill down structure
  • Marking more Vinyl data sources as system so they do not show up as sealed data sources
  • Controls with width=0 will have data structure created (for use with html templates and widgets)
  • Only users in the developer group will be visible in the developer silo setup page
  • Report - Display visibity rules not bound to underlying data object on panel correctly
  • Updated logic for defaulting primary keys
  • Copy button re-enabled for templates
  • Salesforce support for user/password authentication or OAuth
  • Fix gantt chart link binding
  • Corrects nulling page data object
  • Updates webhook fields on resource/endpoint page
  • Removes hard-coding fo developer group id
  • Adds webhook header tables
  • Misc developer silo improvements
  • Handles dashes in column names
  • Revoke permission improvements
  • FK constraint with Be_App and Be_AppCollection
  • Trim ACE editor
  • Added confirmation on Audit Lite event
  • Pinned control validation
  • Improvements to events page

Feature Overview

Scripting support

  • Details coming soon

Support for running the Vinyl Engine in MySQL 8.0

  • Support for hosting Vinyl in MySQL 8.0 (* under test until June 12th)

Background service

  • Run an event when an event fails
  • Allow passing who the scheduled job should run as, dynamically


  • Gantt chart support
  • Allows low-level control of HighCharts to allow for the customization of charts, including setting high / low values - via chart templates

Date / DateTime Timezone support

  • Display times in client timezone
  • Date migration


  • "Where used" for columns
  • Copy Panel
  • Secure developer silo support
  • View sealed data sources, allowing editing of specific information in downstream environments

Data Sources

  • SFTP
  • Teradata RDBMS
  • HubSpot
  • SharePoint
  • SAP iDoc support


  • Adds link to page post-action event (allows navigation to a new page even if the user presses enter to save data on a panel, for example)
  • Support Link Replaces History option on panels
  • Support Link Replaces History on external links (_self target only)
  • Expanded Reach to other rule types - they can now be applied to most rule types, including subqueries
  • Shared non-binding data between panels (like sharing between pages)
  • Multi-row paging (next page / previous page vs load more rows)

Support bottom tab menu (mobile only)

  • Allow Vinyl to be embedded in an iframe via URL canonicalization (able to force users to use /Vinyl with capital V for example)
  • Server-side pivot business object
  • Hide/show multi-row panel columns
  • Frame panels - rendering a page within a page
  • Client-side memory and performance improvements

Detailed Changes

New Features

  • VINYL-5819 - Persist claims supplied by authentication providers to the database
  • VINYL-6841 - Allow designers to provide their own JSON overriding charting JSON
  • VINYL-7445 - HubSpot
  • VINYL-7603 - Server-side pivot table data object
  • VINYL-7906 - Restore Frame groups
  • VINYL-7912 - Support bottom tab menu on mobile devices only
  • VINYL-7944 - SFTP Data Source Type
  • VINYL-7952 - Add widget to load custom css files
  • VINYL-7969 - CData SharePoint
  • VINYL-8003 - Teradata RDBMS Driver
  • VINYL-8010 - Display times in client time zone
  • VINYL-8017 - Scripting Framework
  • VINYL-8037 - Add timezone table to Vinyl
  • VINYL-8059 - Restore auto open lists
  • VINYL-8071 - Add claim() mvSQL runtime function
  • VINYL-8088 - Gantt chart panel type
  • VINYL-8106 - Add Date Migration functionality to Vinyl
  • VINYL-8175 - IDE: Shared non Binding Data Between Panels (Like Page Sharing)
  • VINYL-8183 - Copy Panel
  • VINYL-8184 - Host Vinyl in an iframe
  • VINYL-8188 - Hide controls on MRP based on parent panel data
  • VINYL-8190 - REST - Response Transformations (Pre and Post scripting for REST responses)
  • VINYL-8221 - MySQL - DateTime - Support Milliseconds
  • VINYL-8273 - Secure developer silo


  • VINYL-5801 - Redirect to canonical URL
  • VINYL-5857 - Add data source name to page title for table and rule detail.
  • VINYL-5911 - Move table default rule's explicit bindings to detail view
  • VINYL-5953 - MRP control sets should group on the filter panel
  • VINYL-6390 - Highlight events that 'skip parent'
  • VINYL-6498 - Show column length in the table MRP
  • VINYL-6865 - Create a shortcut from a scheduled event to the schedules area (or something of the sort)
  • VINYL-6882 - Post event should hide
  • VINYL-6941 - Default field widget list boxes
  • VINYL-7064 - Hide "results" links for webhook rule
  • VINYL-7372 - Indication that an action has success/failure handlers
  • VINYL-7413 - Replace SAML security provider GroupsAttribute parameter with claims
  • VINYL-7721 - Change Frame to be a panel type
  • VINYL-7822 - Default label hidden for many control types
  • VINYL-7966 - Add support for milliseconds to the DATEADD() function
  • VINYL-7982 - Upgrade highcharts to 7.0.2
  • VINYL-7985 - Expand Reach to other rule types
  • VINYL-8011 - Include referenced data sources when creating a change management package
  • VINYL-8018 - Support table names with underscores when generating table aliases
  • VINYL-8023 - Modify polling interval for queuing jobs, it is currently to slow
  • VINYL-8032 - Log when flush cache triggered
  • VINYL-8033 - Make plugins internal/system. Mark some Vinyl plugins as internal
  • VINYL-8063 - CRAM, allowing to define the binding columns
  • VINYL-8072 - mvSQL function to convert from time offset to minutes
  • VINYL-8085 - Custom HTTP headers and OAuth token endpoint parameters
  • VINYL-8091 - Security projects should use "Async" suffix on Task-returning methods
  • VINYL-8093 - Add Duration and Record Count when executing rule from IDE
  • VINYL-8094 - Shortcut from Action or Rule Definition page to the target table or rule
  • VINYL-8135 - Create TimeZone and Country public data objects.
  • VINYL-8146 - Add a validation rule when pinned/unpinned fields are in the same control set
  • VINYL-8147 - Include assemblies and plugins when creating LP files
  • VINYL-8159 - REST endpoint - Add Raw Values and Guid/UUID expected response
  • VINYL-8160 - REST endpoint - Write cookies to the request
  • VINYL-8162 - Add support for dynamic substitution of chart labels
  • VINYL-8164 - Report: Column Level Where Used
  • VINYL-8170 - Make Site Menu page public so that other apps can link to it
  • VINYL-8191 - Default time zone values for new data source servers
  • VINYL-8199 - Indexes to increase over all database performance of Vinyl database
  • VINYL-8223 - Point to production for Validations
  • VINYL-8228 - Refactor IPluginDataType hierarchy
  • VINYL-8307 - Merge control set header with column header when saving as csv
  • VINYL-8316 - Updates to the "Execution Plan (DOC)" Page
  • VINYL-8325 - Column Expression Field Label should be enclosed on Detail Page
  • VINYL-8327 - You should pick source rule prior to naming panel based on Auto Default
  • VINYL-8374 - Enforce valid format names
  • VINYL-8376 - Remove 'app-centric' feature of developer silos.


  • VINYL-3785 - Popup closes after a Delete event even if the event fails
  • VINYL-4676 - Columns can be made with beginning spaces, but can't be used on panels
  • VINYL-4926 - Visibility rule warnings in Vinyl design environment
  • VINYL-4952 - Icon badge with right aligned image control is wrapping incorrectly
  • VINYL-5410 - Logo region is not used - confuses users during training.
  • VINYL-5417 - Null reference exception when creating column and physical data type is null
  • VINYL-5440 - Page data object run with "New" event when page is launched in insert state
  • VINYL-5969 - Can't see exceptions on SRP delete
  • VINYL-5982 - Creating tables with multi-part primary keys ends up creating non-cluster indexes on tables
  • VINYL-5984 - Can make a column with a trailing space in Vinyl and then it breaks release management
  • VINYL-6184 - Error "invalid alteration of datatype" when converting to character blob column on Oracle
  • VINYL-6312 - UI Default not bound
  • VINYL-6590 - Template Default Values - Changing the default value for a template requires 'Flush Cache'
  • VINYL-6613 - 2.2 base theme not set on user profile page causing it to look like the underlying app its called from
  • VINYL-6679 - Import of text datatype in SQL Server imported as varchar(16) vs varchar(-1)
  • VINYL-6789 - Rule without target column binding criteria executes but fails when bound to event
  • VINYL-6928 - Business object cannot target publicly writable table in other data source
  • VINYL-6934 - scale in table column page should have width increases as its difficult to read double digit value
  • VINYL-6938 - Link Criteria of type bind or shared is not passed along for an external link
  • VINYL-6960 - UI - Inconsistencies for Scheduling
  • VINYL-7017 - Update Method of Always Edit and Initial State or Edit are mutually exclusive
  • VINYL-7044 - Picking the column name again in the repair page logical model results in a pretty messed up table
  • VINYL-7101 - Function not found error when User Defined Function renamed (multi server env)
  • VINYL-7196 - Tasks starting 10 minutes before planned start
  • VINYL-7210 - concatenate and left function not working with CData Active Directory connector
  • VINYL-7263 - Template and widget parameters should be list boxes
  • VINYL-7292 - Release Management does not include ancestors of a linked data source
  • VINYL-7369 - Prevent CRUD Business rules from targeting other CRUD Business rules
  • VINYL-7419 - Db_DataSource constraint with Db_Table cascading delete should be on RegistrationDataSourceId, not DataSourceId
  • VINYL-7421 - Delete Event on the Db_DataSource, Action Be_EventByDataSourceId should reference RegistrationDataSourceId
  • VINYL-7462 - Unsupported MySQL character encoding utf8mb4
  • VINYL-7473 - Background Plugin jobs are causing scheduled jobs to delay completion of the schedule
  • VINYL-7474 - Copy Application fails if the application has an end point and a published data object
  • VINYL-7485 - Unique key index on Db_TableFrom can break LP installs
  • VINYL-7508 - Disallow illegal characters in application endpoint
  • VINYL-7515 - overlay close icon is not responding and closing when same overlays are already open
  • VINYL-7528 - Completed Jobs in a Redis Backplane are causing delays
  • VINYL-7546 - Create validation error for multi category and multi value chart
  • VINYL-7549 - Upgrade to Highstock 6.1.0 (latest)
  • VINYL-7593 - Remove EventId column from the Sh_Schedule table
  • VINYL-7594 - sorting mrp header in templates changes the font color in submenu unexpectedly
  • VINYL-7601 - import pattern ignored when using vinyl connector as data storage
  • VINYL-7618 - Confusing error if foreign key column data types don't match
  • VINYL-7623 - Changing panel source does not update binding columns to other panels
  • VINYL-7640 - missing row count from file browser panel
  • VINYL-7653 - Can't filter Full Audit table by column using the Vinyl Filter UI
  • VINYL-7682 - Overlay with scrolled page loses close X
  • VINYL-7696 - Improve error message when no internet connectivity
  • VINYL-7712 - Increase column size for REST 'header' web service parameter.
  • VINYL-7719 - Cannot unbind a control from a column
  • VINYL-7805 - Image fields can't apply conditional formats
  • VINYL-7833 - Reduce performance issues on select2 destroy
  • VINYL-7869 - Enter key leaves user stuck on Password Expired page
  • VINYL-7878 - missing migration rules from crystal (DOC) report
  • VINYL-7880 - A change set that adds a Ui_Control record without a RootControlId causes the upgrade to ignore that row
  • VINYL-7884 - Column binding type not shown for Chart/Calendars
  • VINYL-7892 - Setting application authentication active with invalid values renders Vinyl inaccesible
  • VINYL-7915 - VinylConnector ImportPattern ignored
  • VINYL-7923 - Editing SRP gets binding out of sync, causing JS errors clicking buttons
  • VINYL-7924 - Reseting password results in duplicate emails
  • VINYL-7928 - Alignment on radio shouldn't affect items inside
  • VINYL-7932 - If an event is configured to run on authentication signal, a cancelledtask exception is always thrown and logged, even when event is successful
  • VINYL-7936 - Controls used as HTML template bindings can be excluded if not used elsewhere
  • VINYL-7943 - pingvinyl.ps1 not shipped with Vinyl
  • VINYL-7958 - Upgrade SQLite
  • VINYL-7981 - Remove foreign key on Db_DataSourceUpload table
  • VINYL-7983 - AlwaysEdit blocked saves are not reset
  • VINYL-7999 - Executing event against panel with a REST data source triggers the event against a different row if the panel endpoint doesn't support filtering
  • VINYL-8001 - REST data objects do not return any data when run as source tables in an XP CRUD rule.
  • VINYL-8008 - Can register SQL Configuration twice in an LP file
  • VINYL-8012 - Issue creating list control if there is a multi-part key table with a list object that contains the multiple keys
  • VINYL-8013 - no redirect after password expired page is updated correctly
  • VINYL-8014 - when switching to decimal data type the precision and scale are no longer defaulted
  • VINYL-8019 - on login and when apps default page is deleted, access denied error is displayed
  • VINYL-8020 - Copy Table generates error if columns are bigger than X (32768 in screenshot - bigger than allowable nvarchar setting of destination rdbms)
  • VINYL-8028 - Can register datasource twice when creating an LP file
  • VINYL-8041 - Users see "Exception has been thrown by the target of an invocation" exceptions
  • VINYL-8051 - Webhook registrations disappear from registration page
  • VINYL-8052 - Column headers might not line up if browser is zoomed and column selection service disabled
  • VINYL-8054 - rows per request available as an option for single-row panel
  • VINYL-8056 - Overlay pages across applications fail to load
  • VINYL-8064 - Properties not defaulted when using File Browser/AutoMap
  • VINYL-8065 - Missing database function after moving LP file
  • VINYL-8070 - Static Required Visibility being ignored
  • VINYL-8082 - Changing Identity Security group does not clear Cache
  • VINYL-8083 - Allow hiding of calendar headers
  • VINYL-8086 - XP CRUDS not respecting Bind/Target settings
  • VINYL-8089 - Web links from mvsql function documentation are broken
  • VINYL-8092 - OAuth Refresh flow doesn't work with FitBit API
  • VINYL-8098 - Error "binding context is not ready" when clicking button after typing simple search
  • VINYL-8099 - The Web Sevice Request page is not filterable or searchanble
  • VINYL-8101 - Unused rules page lists rules that are used in drilldowns
  • VINYL-8102 - Increase REST endpoint length
  • VINYL-8103 - Increase job binding criteria length
  • VINYL-8105 - Increase size of Schedule History page
  • VINYL-8107 - Schedule History page times out
  • VINYL-8108 - Delete from Db_Table can timeout because of FK relationship to logging tables
  • VINYL-8109 - Warning on import for changesets should only warn for RDBMS systems
  • VINYL-8111 - Dynamic datagrid doesn't run the newRow sync
  • VINYL-8112 - The binding context is in the edit state switching to edit quickly
  • VINYL-8113 - Connector creates new data source with exact same name as other data source - confusing everyone and breaking package management
  • VINYL-8117 - Audit icon hidden on MRP if using Excel edit
  • VINYL-8123 - Global reload leaves buttons clickable, causing errors
  • VINYL-8132 - Changing panel data source does not remap conditional format on inactive controls - leads to exception
  • VINYL-8141 - Release management build fails if it encounters a table without any columns
  • VINYL-8142 - Local connector - does not transmit usage type - cannot set usage type
  • VINYL-8152 - Theme selection list is not searchable
  • VINYL-8154 - Vinyl Connector - Panel Binding not defaulting columns
  • VINYL-8155 - Navigation canceled after navigating to the User Profile page while on the User Profile page
  • VINYL-8156 - Local connector - Can't join business objects created on the connected side
  • VINYL-8176 - Google maps API changed, key now required
  • VINYL-8178 - Dates in the filter panel use "language" setting not "locale"
  • VINYL-8180 - Validation to warn against creating business objects with "." in the name
  • VINYL-8181 - IDE - view sealed data sources, should allowing edit of specific information
  • VINYL-8182 - Timeout on Service Instances page (when Sh_Jobs has large amounts of data)
  • VINYL-8189 - Can't select rows in MRP
  • VINYL-8192 - Label Position of NULL causes page to fail to render
  • VINYL-8194 - Create table from file can result in exception creating change management step
  • VINYL-8195 - Client(TimeZoneOffset) generates '00:00' which fails in FromTimeZone() on SQL Server.
  • VINYL-8207 - Dropping an index fails silently if the table name has been shortened
  • VINYL-8220 - Charting using min height per panel with scrolling group
  • VINYL-8225 - Can't select images in your app's collections in app menus
  • VINYL-8226 - Vinyl Connector - RecordCount and Filters
  • VINYL-8227 - Altering a table reorders primary key columns
  • VINYL-8229 - Buttons are called "Normal" in the Controls MRP
  • VINYL-8231 - Duplicate Columns (Allow Nulls and Required) on Table Detail Page For Columns
  • VINYL-8233 - unable to remove primary key index on column
  • VINYL-8234 - Foreign key constrain FK_Ui_Template_ContentTypeId breaks upgrades
  • VINYL-8238 - MySQL Drop Primary Key
  • VINYL-8247 - Validation plugins are not displayed the same as action plugins
  • VINYL-8271 - incompatible MySql query generated using distinct
  • VINYL-8274 - External Connections page has wasted space.
  • VINYL-8275 - Exclude from Group By Check Box should NOT be called Group By for User Defined Functions
  • VINYL-8279 - Re-Importing Physical Views Clears Column Insert and Update Fields
  • VINYL-8298 - SAP ABAP - Add Support For Distinct
  • VINYL-8299 - SAP ABAP - Bug with Aliases in where clause
  • VINYL-8308 - default template parameters do not flow through to template when bindings aren't set
  • VINYL-8309 - Log an error when executing a visibility rule that doesn't target the panel's source
  • VINYL-8319 - importing vinyl connector tables results in exception One of the identified items was in an invalid format.
  • VINYL-8329 - MySQL - Can't create foreign key constraint if with long table names.
  • VINYL-8332 - Disallow illegal characters in REST Resource Endpoint
  • VINYL-8333 - Disallow illegal characters in Webhook Endpoint
  • VINYL-8338 - Db_Column_StorageDataType_Capabilities_Update MySQL requires CAST
  • VINYL-8339 - Cannot save binary data from httpretriever into Binary / Photo column
  • VINYL-8345 - foreign keys are not imported for MySql 8.0
  • VINYL-8346 - Invalid fields not showing validations on MRP
  • VINYL-8350 - Generating page from data source not populating mandatory fields in MRP panel correctly
  • VINYL-8352 - MySQL - Default Create Changeset On Import to True
  • VINYL-8354 - SAP ABAP Invoke Actions
  • VINYL-8367 - Azure WS-Federation with "Supplied Group Membership" checked does not get group membership without an explicit claim