Edinburgh

_images/release-notes-hero.png

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.

    Note

    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.

Breaking changes

As of 16.0.3, <script> tags are no longer executed from within Text components containing HTML. This was never a supported behavior, and it will now no longer occur.

For proper snippet execution, all JavaScript must be stored in a supported resource type. Snippets can be triggered using Skuid’s event subscription framework or by using the Action Framework.

Included tickets

v16.0.9

CORE-4486

Fix issue where reference fields were not properly to showing updates in edit mode—even when models were refreshed and contained accurate data

CORE-4608

With Salesforce’s beta release of Lightning Web Security (LWS) for Aura components, we found some errors would surface for our own Aura components (the Skuid Page and Skuid Page Assignment Lightning components). We’ve proactively updated our components so they will function as expected when LWS for Aura components reaches general availability on Salesforce.

CORE-4614

Fix Composer preview issue where using certain URL parameters would not display queried results appropriately—particularly for RecordTypeId parameters on the Case object in Salesforce

CORE-4696

Fix issue where running the “Navigate to Step” component action would display all Wizard steps on the page instead of the steps for the chosen Wizard. Now, only the expected steps appear.

v16.0.8

CORE-4675

In the v2 Page API Migration Utility, fix component targeting behavior

CORE-4697

Fix issue where Autocomplete filters using model rows as options would not properly filter results based on user input

CORE-4702

Fix OAuth authentication request errors, which particularly affected ServiceNow connections

v16.0.7

CORE-4686

In Page Include components, improve merge variable handling for URL parameters—ensuring that using the “Load new page” action will properly update the Page Include even if the only change is a URL parameter value from a merge variable

CORE-4684

Fix issue for donut-style Chart components where merge variables were not displaying properly without other content

Previously, when merge variables were the only value for a donut-style Chart component’s content template, no value would be displayed. The workaround was to use some empty space character, which would then cause the value to display as expected. Now, workarounds are not needed and merge variables display as expected, even if they are the only value in the template.

CORE-4673

Fix issue where clicking outside of sliding panels triggered by Table row actions would not close them

CORE-4670

On the Deck component, fix issue where “Required field” error message would only appear on the first card in the Deck component. Now, these error messages appear on the appropriate card.

v16.0.6

CORE-4668

On Skuid NLX, fix data source object regression where it was not possible to mass edit more than 25 field permissions at a time

CORE-4661

On Firefox, fix issue where multiple authentication popups would appear for pages using Salesforce data sources

CORE-4658

In v2 Page Include components, allow the use of merge syntax within the “Skuid page” property

CORE-4654

In Table components, add interaction functionality to child relationship fields

CORE-4653

When working within Sliding Panels and Table drawers in the Composer, fix issue where Responsive Grid divisions would disappear from view (though remain in the XML) when components were dragged into them

CORE-4650

In the Wizard component, fix issue where enable messages for step buttons would not display in the expected area if the Wizard was below other components

CORE-4644

Fix bug where pencil icons would appear on button fields within a Form when changed into read/edit mode via a component action

CORE-4641

Allow “Export Table data” component action to run even if the Table component is hidden

v16.0.5

CORE-4651

Allow hotkeys to be set without a selected modifier key

CORE-4649

Fix issue where new font families could not be added to design systems

CORE-4646

Improve row creation logic to prevent looping errors, which were apparent when working with models on data source objects that contained an “Id” field

CORE-4642

Fix “Unpack pages from page pack” issue where setting the filter to “Last modified by me” would not not allow the filter to be set to “Last modified by any” afterwards

CORE-4640

Internal test fixes

CORE-4637

Fix bug where iterating over an empty REST data array using merge syntax displays “[object][Object]” instead of nothing

CORE-4635

Fix Design System Studio display issue when using JSS to extend variants with code

CORE-4577

Fix issue where having one denied data source would prevent any permitted data sources from querying. Now permitted data sources can query, even if an unpermitted one is used within a page.

v16.0.3

CORE-3545

Prevent invalid values in reference fields

CORE-3744

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.

CORE-3876

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

CORE-4601

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.

CORE-4610

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

CORE-4623

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

CORE-4624

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.

CORE-4630

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

CORE-4638

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.

v16.0.2

APPS-1748

Add inactive users to site permission set list and detail screens

APPS-1905

Skuid NLX backend scaffolding to support custom domains

APPS-2244

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

APPS-2268

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

APPS-2304

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

CORE-3752

Internal codebase configuration file adjustments

CORE-3895

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

CORE-3899

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

CORE-4344

Add feature for sanitizing field values on export for Table components

CORE-4398

Update tooltip for refresh style variants button

CORE-4415

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

CORE-4419

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

CORE-4420

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

CORE-4447

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

CORE-4453

Internal improvements to Page Index functionality

CORE-4459

Add validation method for field length

CORE-4464

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

CORE-4472

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

CORE-4538

Internal codebase improvements

CORE-4548

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.

CORE-4569

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.]

CORE-4574

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

CORE-4584

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

CORE-4586

Re-add missing runtime export options for Chart components

CORE-4587

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

CORE-4588

Deployment-related internal config updates

CORE-4590

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

CORE-4591

Deployment-related internal config updates

CORE-4592

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

CORE-4593

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

CORE-4594

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

CORE-4595

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

CORE-4597

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

CORE-4599

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

CORE-4600

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

CORE-4603

Rollback of future feature code

CORE-4606

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

CORE-4607

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.

CORE-4611

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

CORE-4612

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

CORE-4613

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

PLIN-3499

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

PLIN-3566

Internal documentation updates

PLIN-3843

Implement backwards compatible behavior in new version of skuid CLI

PLIN-3935

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

PLIN-3945

General design adjustments to Skuid Database CSV import experience

PLIN-3963

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

PLIN-3966

Improvements to internal tooling

PLIN-3974

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

PLIN-3990

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

PLIN-4018

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

PLIN-4028

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

PLIN-4029

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

PLIN-4252

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

PLIN-4277

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