Edinburgh¶
Welcome to the documentation for the Edinburgh release!
Don’t hesitate to send your feedback on these new features as we improve the product:
- For product and feature feedback, contact product@skuid.com
- For documentation feedback, contact documentation@skuid.com
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 throughstartDateTime
andendDateTime
)“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