Welcome to the documentation for the Edinburgh release!

Don’t hesitate to send your feedback on these new features as we improve the product:

Major features

  • Client-side validation additions:

    • Validate based on length as defined in the field’s metadata: Now, you can display a specific runtime error when users exceed the maximum number of allowed characters. This is determined by the data source or field metadata overrides.

    • Set custom error messages for required fields. Whether or not a field is required is defined by metadata (the data source itself requires the field) or by Skuid’s own Required model field property.

      Previously, these required fields were not as configurable, displaying a standard error message when fields were left blank. With this new feature, you can set custom messages that better guide your users.

  • Calendar component enhancements

    • Improved handling of Unassigned groups: The grouping feature on Skuid’s Calendar component allows for views to be divided based on a field value from an event source. If that field did not have a value, the event would display in the Unassigned category.

      Previously this category was always visible and not configurable. But in Edinburgh it’s possible to both relabel this category and to select how (always, never, if values exist) where it should be shown (top, bottom, or alphabetically)

    • Runtime improvements: We also made a variety of improvements to the component in Dubai Update 2 and Dubai Update 3. In case you missed them:

      • Improved time zone handling:

        • Clicking “+n more events” on a day previously would sometimes display the previous day’s events

        • Expanding single date events (like tasks) which should not be able to expand/contract

        • Event creation showing an error in the modal even though it was successful before closing the modal

        • Save button disabled state when creating/editing an event in the modal

        • Single date event sources should now always render on the same date no matter the timezone/locale

        • Start/end date should now always render on the same date no matter the timezone/locale

        • Start/end datetime should adapt to the org locale setting as expected

        • Start/end datetime should render based on timezone properly for users at runtime.

          As an example: In America/New_York an event is created for 11am. In Australia/Sydney it should be represented at 3am the next day.

      • {{startDate}} and {{endDate}} now provide date values instead of datetime (which are available through startDateTime and endDateTime)

      • “View more events” buttons now work in Salesforce Lightning

      • Calendar day view now better scales to the page and properly displays hourly divisions

  • Use Apex to provide authentication values in data sources: (SFX only) Apex, Salesforce’s server-side programming language, can now be used to return values used in authentication requests from Skuid’s proxy.

    For instance, some authentication tokens may be longer than 256 characters or saved in a different secret store than Skuid. With this feature, you can write an Apex class that retrieves and returns these values as a string and use it with the $Apex merge variable.

  • Sanitize fields values for CSV export on Table component: When exporting data it’s often best to sanitize field values of characters that, when imported to another program, can cause unintended consequences. These are often characters that activate logic or formula functions. Some instances are accidental, some are malicious, and this feature helps better protect users when it occurs.

    While this feature has previously been available on Skuid Database, with Edinburgh we’ve added the ability to sanitize field values to all Table components on both Skuid NLX and Skuid SFX.

Released in beta

Beta features represent valuable Skuid additions that we offer to cutting-edge builders for feedback before we mark them as generally available.

  • SSO user provisioning enhancements: (NLX only) Single sign-on (SSO) has been possible through the SAML protocol on Skuid NLX, but Edinburgh brings feature enhancements to Skuid NLX’s single sign-on (SSO) user provisioning features:

    • It’s now possible to have a user’s Skuid attributes (like email or locale) update based on the user’s SAML attributes from your identity provider.
    • Automatically reactivate previously deactivated Skuid users if they login from an IdP. This is useful particularly for subscription management, ensuring you can safely deactivate users without accidentally locking out your active Skuid users.
  • Skuid Database schema import/export with skuid CLI: (NLX only) It’s now possible to retrieve and deploy Skuid Database schema, or metadata structure, from one Skuid site to another— or redeploy it the current environment if needed.

    This is used to move the structure of a Skuid Database from one environment (like a sandbox site) to another (like a production site).

    While it’s not very common to have the same data within a sandbox and production site, it’s possible to use this feature in tandem with the CSV Export/Import feature of Skuid Database to move both the schema and data from one Skuid site to another.

Released in pilot

Pilot features are not yet intended for prime time production use, but they are available to select customers to gather feedback as we prepare them for a broader audience.

To request access to features listed below, contact product@skuid.com.

  • Custom domains: (NLX only) This long-requested branding feature is being released in pilot for Edinburgh. With this it’s possible to have your Skuid NLX site listed entirely under your own web domain. If your goal is to provide a public portal for your Skuid implementation or private label your Skuid apps, try using custom domains to reinforce your brand.

  • Session variables: (NLX only) In single sign-on use cases, it’s not uncommon to store more detailed user information in the identity provider and then pass that information along to service providers as SAML Attributes. These attributes can now be mapped to session variables to be used in Skuid applications, primarily for data source object conditions on SQL data sources.


    Session variables are only accessible during a user session to avoid any security concerns surrounding storing SAML attributes.

Other updates

  • Apply margin to all sides of a component: Previously builders had to set margins for components for each side individually. With this update, it’s now possible to set a consistent margin value for all sides at once.
  • On the Table component, global actions now have enable conditions and style variant conditions.
  • Continued improvements to our backend technologies on Skuid NLX for scaling, management, and performance
  • On Skuid SFX, we’ve updated property labels and default values related to Salesforce Classic header and sidebar:
    • “Show salesforce header” is now “Show Salesforce Classic header”
    • “Show salesforce sidebar” is now “Show Salesforce Classic sidebar”
    • Both properties are now unchecked by default
  • In Skuid NLX, we now display a count of both active and inactive users for app permission sets and indicate which users are inactive from a permission set’s detail screen. We’ve also improved dependency checks related to permission sets and users.

Included tickets



Prevent invalid values in reference fields


Responsive Grid vertical alignment improvements for “fit to content” + minimum heights

Previously, Responsive Grids set to have vertical alignment, with a minimum height, and the “Fit to content” height strategy would only consider the contents of the divisions—instead of the full minimum height of the component—when determining vertical alignment.

Now, Responsive Grids properly consider the minimum height when applying vertical alignment to their divisions.


Improve rendering speed for Deck components, particularly for high record counts


Fix issue where the Composer would not recognize setting a previously-configured margin property back to “None” as a change, meaning it was not possible to save the page unless another change was made. Now the Composer recognizes the change, and enables the Save button, as expected.


Fix issue where mass action buttons would unexpectedly remain enabled after running—even when no rows were selected


On the Search component, fix issue where the field picker for setting Return Objects would not function


Fix where builders previously could not disable the “Skip entry criteria” property for existing “Submit for Approval” Salesforce data source actions. Now builders can enable/disable this property as expected.


Set “Sanitize field values” property to default off for Table components


Fix rendering issue for updated reference fields for PostgreSQL.

Previously, selecting a reference field value in a component attached to a PostgreSQL model would “blank out” the field, even though the value was updated. Now, reference fields update and render as expected.



Add inactive users to site permission set list and detail screens


Skuid NLX backend scaffolding to support custom domains


In Skuid NLX, fix bug where clicking Help > About would not refresh the screen if the builder was already in a Settings screen tab


On Skuid SFX, fix links within admin UI to correctly redirect to Salesforce Setup’s permission set settings page


Adjust page API version selector when creating new Skuid page to account for future feature development


Internal codebase configuration file adjustments


Update “Spacing” label to “Margins,” and allow margin spacing values to be applied to all sides—or set individually


On Skuid SFX, update property labels and default values related to Salesforce header and sidebar:

  • “Show salesforce header” is now “Show Salesforce Classic header”
  • “Show salesforce sidebar” “Show Salesforce Classic sidebar”
  • Both properties are now unchecked by default


Add feature for sanitizing field values on export for Table components


Update tooltip for refresh style variants button


Remove unneeded field selector from Channel property in “Publish event” actions and event-triggered action sequences


Fix issue where Go to URL actions in a Chart series would not accept some Chart context-related merge variables


Add visibility options for Calendar component’s “Unassigned” grouping


On Skuid SFX, remove unnecessary permissioning syntax from Skuid permissions sets


Internal improvements to Page Index functionality


Add validation method for field length


Adjust UI to better display a field’s “required-ness” within the validation framework


Fix issue where mass actions displayed as menus or comboboxes were always deactivated


Internal codebase improvements


Fix Chart bug where context was not properly set after drilling down, returning to the main chart, and then drilling down into a new value

Clicking into a Chart component segment sets the context, which can be used to display filtered drilldown information. Before this fix, returning to the main chart and then drilling down into another value would not properly set the context—instead using the previous drilldown’s values. With this fix, drilldowns work as expected.


In Skuid SFX, fix issue where interacting with a Rich Text Field in a Salesforce form and then leaving that field would cause the following error: Uncaught Action failed: skuid:teleporter$controller$eventHandler [Unable to get value from Rich Text component.]


On Skuid SFX, provide method of retrieving data source authentication values from Apex when using proxy


Fix CKEditor rendering in Form and Table components set to Edit mode within Tab Sets


Re-add missing runtime export options for Chart components


Fix issue where validations were not applied to Salesforce string fields as expected


Deployment-related internal config updates


Allow enable conditions and style variant conditions on global actions for Table components


Deployment-related internal config updates


Fix Edinburgh early access issue where “Required” validations were incorrectly enforced


Fix Edinburgh early access issue where “Required” validations would sometimes run incorrectly if users pressed the Tab key to proceed to the next field


Add Calendar component merge variable functionality to event on-click actions and event update actions


Fix Form component issue where template fields couldn’t be deleted in the Composer without removing the entire section


Fix bug where the Calendar component’s “+n more” view modal displayed the previous date


Fix issue where Calendar components were not providing actions for “Run component action” picklist


On Skuid SFX, fix issue where tooltip text wouldn’t fade on pages deployed in Lightning with the Skuid Page Lightning component


Rollback of future feature code


Fix Table field issue where “Required” checkbox was not a visible property in the Composer


On Skuid SFX in Lightning experience, fix lookup filters for polymorphic fields (e.g. OwnerId on the Case object)

Previously when selecting a value for a polymorphic reference field, an error stating a field doesn’t exist would appear—even with properly configured lookup filters. This fix ensures that reference field works as expected.


Fix issue where reference field searches would not return expected records on some objects (such as the Case object in Salesforce) due to search value and record value/label discrepancies


Fix rendering issue with picklist fields within sliding panels that are activated within Page Include components


Fix issue where “required” validations were incorrectly running on optional picklist fields


Backend improvements on Skuid NLX to support displaying inactive users on site permission sets


Internal documentation updates


Implement backwards compatible behavior in new version of skuid CLI


For Skuid Database data import for picklist fields when the “Create missing picklist entries” option is checked, remove case-sensitivity when matching CSV values to existing picklist options to ensure only new options are added upon import


General design adjustments to Skuid Database CSV import experience


In Skuid NLX, display a count of both active and inactive users for app permission sets, indicate which users are inactive from a permission set’s detail screen, and improve dependency checks related to permission sets and users


Improvements to internal tooling


PLIN-3974 In Skuid NLX, internal bug fixes to support change from “profiles” to “site permission sets”


On Skuid NLX in SAML IdP configurations, allow user properties to be updated by SAML attributes—even after a user is provisioned


In Skuid NLX, fix issue where 0 (zero) would erroneously appear in bottom left of the Database Console screen when there are no objects configured


Add user status filter to user list within app permission set details


Allow Skuid Database object permissions to be configured from an app/site permission set detail screen (or when creating a new one)


On Skuid SFX, fix issue where adding the first picklist entry value for a picklist field on a data source object would not properly populate the “Position” property


Adjust page API version query to account for future feature development

Future feature development

The following tickets represent internal code changes made for future features.

APPS-1846, APPS-2162, APPS-2245, APPS-2256, APPS-2265, APPS-2266, APPS-2267, CORE-3587, CORE-4339, CORE-4364, CORE-4365, CORE-4366, CORE-4374, CORE-4380, CORE-4401, CORE-4405, CORE-4408, CORE-4409, CORE-4410, CORE-4427 , CORE-4428 , CORE-4430 , CORE-4433 , CORE-4442 , CORE-4445, CORE-4454, CORE-4455, CORE-4487, CORE-4488, PLIN-3919, PLIN-3953