# Configurations Guide

## General json structure

The Writer and plugins config file is a .json file, so when reading the file an add-on for json-formatting is good help.

An object in json consists of `{"key":"value"}` pair. The objects in the config file are separated by curly brackets, the `{-sign`.

The object can consist of the `{"key":"value"}` pair in different levels and also of a list of objects. The list is written with the straight brackets`[xx]`

\`\`![](/files/-LmACPDaq8uBX25dvnPF)

### First sections in the config file

```
{
"newsItemTemplateId": "30eae1c0-c640-4053-b114-05c64e28bbe7",
"language": "en_EN",
"labelLanguage": "en",
"conceptServiceConfig": {
//...   
//...
//...
//...

"propertyMap": {
///
}        
},
```

#### “newsitemTemplateId”

From the top of the writer-config.json file you find `“newsitemTemplateId”`, which stores the article template that is stored in Open Content. There is only one template. The template is presented with a UUID and can be viewed in Open Content, if you search via the UUID.

Example:

![](/files/-Lm9zFACqH0U9gK0m6bM)

#### "language"

The `"language"` and "`labellanguage"` sets the Writer language for the plugins, not the language to be used when you write the content.

#### "conceptServiceConfig"

`"conceptServiceConfig"` is the service for the Concept plugin that sets the configuration for Open Content. The searches in Open Content are run through the `"PropertyMap"`-key sets the Writer property to map Open Contents properties.

{% hint style="info" %}
`conceptServiceConfig` is no longer mandatory since Writer version `6.2`
{% endhint %}

### Plugin section in the config file

The plugin section contains a list of all the plugins that are included in the Writer setup. To be able to find if a certain plugin/function is included in the configuration, a search in the browser is recommended.

The Link plugin as an example of a simple plugin configuration:

```
{
    "id": "se.infomaker.link",
    "name": "link",
    "url": "https://plugins.writer.infomaker.io/releases/7.8.5/im-link.js",
    "style": "https://plugins.writer.infomaker.io/releases/7.8.5/im-link.css",
    "enabled": true,
    "mandatory": false
},
```

Explanation of the keys in the example plugin above.

**Id:** only unique names (if there are duplicates, only the first one will be read, see example below)

**Name:** name of the plugin

**Url:** check the plugin version (there can be different versions dev (higher), stage, prod)

**Style:** the ux for the plugin (please, observe it also follows the version)

**Enabled:** enable the plugin or not (true or false)

**Mandatory:** if true, it is a mandatory plugin

### Importance of Plugin order

The plugins are listed after each other, in an unspecified order. It is important to notice that the config is read from top to bottom. As they are read from top to bottom the plugin that is read first will be the one that executes a task. If two plugins can do the same operation, the first will do the task. An example is the configuration of the Iframely plugin and the social embed plugin, where Iframely then will manage the Instagram etc, video etc, instead of the social media embed plugin if that is placed below.

```
{
    "id": "se.infomaker.ximconcept.story",
    "name": "ximconcept",
    "url": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.js?concept=story",
    "style": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.css?concept=story",
    "enabled": true,
    "mandatory": false,
    "data": {
        "label": "Story",
        "name": "x-im/story",
        "enableHierarchy": true,
        "editable": true,
        "placeholderText": "Search stories"
    }
},
{
    "id": "se.infomaker.ximconcept.contentprofile",
    "name": "ximconcept",
    "url": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.js?concept=contentprofile",
    "style": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.css?concept=contentprofile",
    "enabled": true,
    "mandatory": false,
    "data": {
        "label": "Functiontags",
        "name": "x-im/content-profile",
        "enableHierarchy": true,
        "editable": true,
        "placeholderText": "Search functiontags"
        }
},
```

{% hint style="info" %}
This is a general configuration guide and each configuration must be tested in a test environment before it is implemented in any production environment.
{% endhint %}

### Configuration details

When you want to learn more about config, the [user guide](/writer/6.5.0/user-guide/user-guide.md) is a start. The functions are described for a normal set up of Writer. In most cases, the configuration documentation is found in the documentation of each plugin and the Writer User Guide provides you with links to each plugin documentation.

### Version dependencies

The Writer version has dependencies to the plugin versions (or vice versa). This dependency is stated in the so-called dependency-part of the plugin documentation of each plugin. This must be checked carefully 🌟.

{% hint style="info" %}
🌟 New configuration tool available: [Writer configuration tool](http://writer-config-tool.s3-website-eu-west-1.amazonaws.com/). Use it together with the Writer plugin documentation. This helpful tool is still under development and we gladly receive [feedback](mailto:writerteam@infomaker.se).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.navigaglobal.com/writer/6.5.0/admin-guide/configurations-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
