The table below, shows a list of top level actions:
Action (Verb) | Support update | Notes |
---|---|---|
activateSPFeature | Yes | Adds specified web feature if not yet added. Doesn’t add site features yet! Maybe it will be supported in the future |
createSiteColumn | Yes | Following properties are supported: displayName, group and enforceUnique |
createContentType | Yes | Following properties are supported: description, hidden and subactions |
addNavLink | Updating url or displayName is not possible with it. The trick here is to first remove the existing node using removeNavLink and then to re-add it with addNavLink within the same script. Other properties such as parentDisplayName should be supported | |
applyTheme | Yes | Overrides the existing theme |
setSiteLogo | Yes | This action is only supported in Communication Sites. It overrides the existing site logo |
joinHubSite | Yes | If site is already associated to a Hub Site, the current site will be associated to a new Hub Site. If the Hub Site was set up with a Site Design, this Site Design will also be applied |
installSolution | Yes | If site has an older add-in version, applying a new version will update the installed add-in |
associateExtension | Yes | If site has an older extension version, applying a new version will update the installed extension |
triggerFlow | No | You can't update an already triggered Flow instance. Just trigger a new flow instance |
setRegionalSettings | Yes | Overrides existing regional settings. Following properties are supported: timeZone, locale, sortOrder and hourFormat |
addPrincipalToSPGroup | No | Neither removes nor re-adds existing users. Just adds new users to security groups. |
setSiteExternalSharingCapability | Yes | Overrides the existing sharing capability |
The table below, shows a list of sub actions to run on the list:
Action (Verb) | Support update | Notes |
---|---|---|
setTitle | Yes | Overrides existing title |
setDescription | Yes | Overrides existing description |
addSPField | Yes | Following properties are supported: displayName and addToDefaultView (only from false to true) |
deleteSPField | Yes | Removes specified field if not yet removed. Even if field has data! |
addSPFieldXml | Yes | Following properties are supported: schemaXml (type, displayName, required, defaultValue etc. Seems to update everything) and addToDefaultView (only from false to true) |
addSPLookupFieldXml | Yes | Following properties are supported: schemaXml (displayName, showField, required etc. Seems to update everything, but I didn’t test other properties) and addToDefaultView (only from false to true) |
addSiteColumn | Yes | Associates site column with default content type only. Updates addToDefaultView property (only from false to true) |
addSPView | Yes | Following properties are supported: query, rowLimit, isPaged, makeDefault, scope and viewFields (add new fields, but doesn’t remove existing ones) |
removeSPView | Yes | Removes specified view if not yet removed. Won’t remove default views |
addContentType | Yes | Adds specified content type if not yet added |
removeContentType | Yes | Removes specified content type if not yet removed. Won’t remove a content type if it is being used |
setSPFieldCustomFormatter | Yes | Following properties are supported: formatterJSON and fieldDisplayName (applies custom formatter to another column) |
associateFieldCustomizer | Yes | Following properties are supported: clientSideComponentProperties and internalName (applies customization to another field) |
associateListViewCommandSet | Yes | I didn’t get this action to work. Test ended up with the following error:
"Associate command set HelloWorld Something went wrong and we could not complete this action." |
How did I run my Site Scripts?
I used PowerShell and the SharePoint user interface to apply my Site Design. Running Site Designs through PowerShell is always a fantastic experience. Invoke-SPOSiteDesign returns a quick response even when running a Site Script with many actions. On the other hand, working with Site Designs through the SharePoint user interface was a slow, but very fancy experience.
Summary
Site Designs is a new capability for provisioning in Office 365. If you haven't tried out it yet, then go ahead and give it a try. It supports updating existing SharePoint content in a very stable manner. Did you find a test result different than mine? Then post it as a comment and let us improve these lists together.