Configuration
The LiveTiles Intranet Metadata Service uses JSON based configurations.
To create a new configuration, head over to the app, choose "Configs" in the navigation and press "Add new". You will see a fully working config, that can be adjusted to fit your needs. For more details on the config options, please read on.
Basic Overview
Each configuration has following members:
- A unique
key
- this is used to identify the config. - A
title
and adescription
- this can be used to further describe the config. At the moment, this information is only visible to administrators. - A
source
object specifying where to get the values to inherit from. - A
targets
array that contains a list of objects that each specify a target list on to which the values from the source shall be inherited. Each target object has- An
url
member that refers to the site collection relative URL of the list. - Optional
targets
andfields
members. These can be used to specify folders and specific fields within the actual target. If the folder has a field with a value, then that value will be inherited to all children of that folder.
- An
Config Types
Below you can find some detailed descriptions for specific config types.
Source
Describes a Source object with
- A
sourceType
with following possible values:Url
: Specifies that a URL to a list item that is used as the source is configured.Workspace
: Specifies that the workspace item from the current site collection should be used as the source.Config
: Specifies that the values are defined within the config.
- An (optional)
url
that is only required in conjunction withsourceType
Url
above. - An (optional)
fields
collection.
Please note that the source
object is optional. If it is omitted, obviously no source will be used, but explicit values from targets can still be inherited to their children.
Target
A Target is an object in the targets
collection. A target refers to a list or a folder within a list. Targets are recursive. Each target has a parent-relative url
, a collection of fields
as well as a collection of targets
.
Field
Describes a field relevant for inheritance. The fieldName
refers to the internal name of the SharePoint field. The (optional) fieldValue
refers to a FieldValue
, see below for more details. The (optional) writeFieldMode
indicates how and when the field should be written. Following values are possible:
Always
: This is the default behavior. This leads to the field being written/enforced on the item, regardless if there is already a value there or not.OnlyIfEmpty
: Only write the value to the item, if the field doesn't already have a value. This can be used to e.g. provide default values for specific fields while allowing the users to change them.BreakInheritance
: This leads to the current field not being inherited to the current item and its children.
FieldValue
Describes a value for a field using a FieldType
and a value
that supports some of the same properties
that are supported in LiveTiles Intranet Workspaces, namely additionalProps
(for type specific configuration options) and label
(for TitleResources).
Examples
Source: Config
A basic example of a config that contains the values to be inherited:
sourceType
isConfig
. This means the values to be inherited are defined directly in the config. For simple types like strings and numbers, no additional configuration is required. For fields like Taxonomy however, additional information is required. Please follow the workspace reference documentation for more details.- The
fields
array contains a string, a number and a taxonomy field and the inheritance will be applied to "Shared Documents" and "Site Pages". - Due to
writeFieldMode
OnlyIfEmpty
on one field it will only be written, if there isn't already a value there.
{
"key": "valuesInConfg",
"title": "Config with values",
"description": "Values are specified directly in the config.",
"source": {
"sourceType": "Config",
"url": null,
"fields": [
{
"fieldName": "SampleText",
"fieldValue": {
"fieldType": "String",
"value": "Random string"
},
"writeFieldMode": "OnlyIfEmpty"
},
{
"fieldName": "SampleNumber",
"fieldValue": {
"fieldType": "Number",
"value": 42
}
},
{
"fieldName": "SampleTaxonomy",
"fieldValue": {
"fieldType": "Taxonomy",
"value": "642203b6-c0e7-4030-b173-69105999988f"
},
"additionalProps": {
"termSetId": "17c8dfc0-347e-4d19-89c9-cd4889810a9e"
}
}
]
},
"targets": [
{
"url": "Shared Documents"
},
{
"url": "Site Pages"
}
],
"fields": []
}
Targets With Fields
An example of the targets
object that defines that
- the field
ValueFromFolder
should be inherited to the children of the "Templates" folder in the "Shared Documents" (site relative URLShared Documents/Templates
) library. This field doesn't not need to be defined in the source. - the field
ValueFromSource
should not be inherited to the "Samples" folder and all its descendants. - the field
ValueFromFolder
will have the valueABC
on the folder "Another Folder" and all its children.
"targets": [
{
"url": "Shared Documents",
"targets": [
{
"url": "Templates",
"fields": [
{
"fieldName": "ValueFromFolder"
}
]
},
{
"url": "Samples",
"fields": [
{
"fieldName": "ValueFromSource",
"writeFieldMode": "BreakInheritance"
}
]
},
{
"url": "Another Folder",
"fields": [
{
"fieldName": "ValueFromFolder",
"fieldValue": {
"value": "ABC"
}
}
]
}
]
}
]