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 
titleand adescription- this can be used to further describe the config. At the moment, this information is only visible to administrators. - A 
sourceobject specifying where to get the values to inherit from. - A 
targetsarray 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 
urlmember that refers to the site collection relative URL of the list. - Optional 
targetsandfieldsmembers. 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 
sourceTypewith 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) 
urlthat is only required in conjunction withsourceTypeUrlabove. - An (optional) 
fieldscollection. 
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:
sourceTypeisConfig. 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 
fieldsarray contains a string, a number and a taxonomy field and the inheritance will be applied to "Shared Documents" and "Site Pages". - Due to 
writeFieldModeOnlyIfEmptyon 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 
ValueFromFoldershould 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 
ValueFromSourceshould not be inherited to the "Samples" folder and all its descendants. - the field 
ValueFromFolderwill have the valueABCon 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"
              }
            }
          ]
        }
      ]
    }
  ]