List contract must be compliant to install add-in
Uncategorized
The list contract of an addin is used purely as a contract, not to generate configuration.
- Configuration can no longer be lost by installing an addin. It will show as an error or it will be merged if possible.
- It will prevent surprising bugs. Addins cannot be installed to generate fields. They need to be configured mannually and put in the right place, or generated with Deployment Tools.
- Packages need to be internally consistent. The workspace manifest (.xml file) and the list contract need to correspond.
- A package's workspace manifest is the source of truth, and it needs to be installed first. In the package config, the workspace features need to come before all addin features.
If the contract is violated, an error is thrown which shows the changes that need to be made.
The message looks like this:
An error occurred while importing add-in Common.TransitionTemplates: Add-in contract violation.
Some parts of this add-in's contract need to be configured separately before it can be installed:
Actions
In List: FillInTemplates
Create DisplayType: EmtGeneral
Create DisplayType: EmtCheckListHidden
Create DisplayType: EmtRecepientsVisible
Create DisplayType: EmtFieldValuesVisible
Create DisplayType: EmtFieldPatternVisible
In List: TargetLists
Create ListChildTab: StatusFlowTemplates
In List: TransitionTemplates
Create ListChildTab: ApprovalTemplates
Create ListChildTab: FillInTemplates
There is Contract deployment feature to validate, upload, or materialize a contract. It is integrated in the Deployment Tools CLI.