> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insight.nobly.dk/llms.txt
> Use this file to discover all available pages before exploring further.

# Promote configuration

> Export configuration from the source environment, review every difference in the target environment, and apply the changes you choose.

A promotion has two halves: an export in the source environment and an import in the target environment. You need **Keyword configuration administration** in both, plus the permissions of the configuration types you move; see [Permissions](/configuration-promotion/introduction#permissions).

## Export from the source environment

<Steps>
  <Step title="Open the Export tab">
    In the source environment, open **Admin settings → General → Configuration promotion**. **Export** is the first tab, with every type selected.
  </Step>

  <Step title="Choose what to include">
    Tick or clear whole groups, or single types within a group. **Select all** and **Clear** change every type at once.
  </Step>

  <Step title="Export">
    Select **Export**. A progress bar shows each type as it is read. The file then downloads as `config-<date and time>.json`, and each type shows how many entries it contributed.
  </Step>
</Steps>

<Frame caption="The Export tab after an export: types are grouped as in the admin settings, and each type shows how many entries went into the file. All names are fictional.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/export.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=86d643922e2a74b32efd86d63f44bff3" alt="The Export tab of Configuration promotion with all 38 of 38 types selected in groups such as Documents, Security, Keywords and data, Caseflow, Search and navigation, Client and appearance, AI, Reporting, and Workflows and scripts. Several types show a count badge, and the notes under the secret types say key names only, values never leave this environment" width="1280" height="900" data-path="images/configuration-promotion/export.png" />
</Frame>

Only the types in the file are compared in the target. A type you leave out is neither changed nor deleted there. Exporting only the types you mean to move keeps the review short.

## Import in the target environment

In the target environment, open **Configuration promotion → Import** and select **Choose file**. The file name appears with the number of entries it holds, when it was exported and by whom. The comparison starts at once. Nothing is written to the environment until you apply.

If the import cannot be compared, **Import refused** gives the reason and no changes are listed. The usual reasons are:

* The file holds a configuration type you cannot view.
* The file was changed after export.
* The file holds a type this environment does not have.
* Two entries in the environment share a name.

See [Troubleshooting](/configuration-promotion/history-and-status#troubleshooting).

If the file names user groups that do not exist here, a dialog opens to map them first; see [Map user groups](#map-user-groups).

<Frame caption="The review of an imported file after two reference rules were added. Group mappings, kept differences, deletions and changes that need a check are summarized above the list of changes.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/review.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=b4d31a70122e946b3636e33b49e612b2" alt="The Import tab showing the chosen export file with 12 entities, a notice that one user group in the export file does not exist here with a Map user groups button, a table of group mappings used by this plan, one change kept different in this environment, a notice that one item exists here but not in the export file, a notice that two changes need a check, operation filters for Create 4, Update 6, Delete 1 and Blocked 2, and the first rows of the change list grouped by permission grant, keyword type and document type" width="1280" height="1320" data-path="images/configuration-promotion/review.png" />
</Frame>

### Read the review

**Changes this configuration would make here** lists every difference, grouped by configuration type in the order the changes are saved. The heading shows how many changes are pending and how many entries are already identical. Identical entries are counted but not listed.

| Operation   | Meaning                                                                                    |
| ----------- | ------------------------------------------------------------------------------------------ |
| **Create**  | Does not exist here yet. It is created exactly as the file has it.                         |
| **Update**  | Exists here with differences. It is changed to match the file.                             |
| **Delete**  | Exists here but not in the file. Nothing is deleted unless you tick the row.               |
| **Blocked** | Cannot be applied yet. The row still shows what it would do, and the reason is on the row. |

Select an operation above the list to show only those rows, and **Show all** to return. **Collapse all** and **Expand all** fold the type groups.

Each row has a tick box, the operation, the name, and a short summary of which settings change. On the right, a warning icon marks something to read before ticking, and an information icon lists what the change does. Open a row by its name to see:

* where the configuration lives, with a link to its admin screen
* what the change does, and any warnings or reasons it is blocked
* which other changes it depends on
* every setting that changes, labelled the way its admin screen labels it. Added values are green and removed values are red and struck through. Template and script code is shown side by side.

A user group that a reference rule mapped is shown by its name here, followed by the name in the exported configuration. A name that does not exist here is marked **does not exist here**.

<Frame caption="Two document types opened: an update that adds an assigned field and access for a mapped group, and a create that is blocked because one of its groups does not exist here.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/change.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=fe698ff39e902e0cd6d337225e747043" alt="The Document type group expanded in the change list. The Contract update adds the assigned field Contract end date and access rights for acl.p.Contracts, shown as acl.t.Contracts in the exported configuration, and depends on the keyword type Contract end date. The Supplier agreement create is blocked by access rights because the user group Contract auditors does not exist here" width="942" height="812" data-path="images/configuration-promotion/change.png" />
</Frame>

A rename in the source arrives as a create and a delete. When the new entry is identical to one that exists here under another name, the create warns that it may be a rename. In that case, skip the create and rename the entry here by hand.

### Map user groups

User groups are never promoted. When the file names a user group this environment does not have, **User groups that do not exist here** opens by itself and offers one way to fix each name:

* **Suggested rule** replaces a text fragment in every name that differs only in that fragment. Select **Add rule** to save it.
* **Map a single name** offers the groups here with a similar name. Select **Map to** a group to save an exact rule for that one name.
* **Groups that have to be created here first** have no similar group here, so no rule can fix them. Create the group in this environment and refresh the preview, or leave out the changes that use it.

<Frame caption="The group dialog proposes a pattern rule for names that differ only by environment, an exact mapping for a similar name, and lists the group that must be created first.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/groups.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=26b7ec2950f5c91062927711335744f1" alt="The dialog User groups that do not exist here. A suggested rule replaces .t. with .p. and covers acl.t.ContractAdmins and acl.t.Contracts. Map a single name offers Map to Contract review team for Contract reviewers. A warning says one group has to be created here first: Contract auditors, which blocks the document type Supplier agreement" width="672" height="668" data-path="images/configuration-promotion/groups.png" />
</Frame>

Rules are saved in this environment and used for every later import, and the preview refreshes as soon as a rule is saved. Saving a rule needs **Manage user groups**; without it, the dialog shows the proposals but cannot save them. Select **Not now** to close the dialog; **Map user groups** on the review opens it again.

Before you apply, check **Group mappings used by this plan**. It lists each group name a rule rewrote, the group it now points at, the rule, and how many changes use it. A rule points at whatever group it lands on, so this list is where a wrong mapping shows. See [User group reference rules](/configuration-promotion/rules-and-differences#user-group-reference-rules).

### Changes left out until you tick them

Some changes arrive unticked, and a notice above the list counts them:

* **Deletions.** A delete is never ticked for you. The file cannot tell something deleted in the source from something that was only ever set up here. These rows come back every time you compare until you delete them here, or the source has them too. **Review deletions** shows only these rows.
* **Changes that need a check.** The preview found something it cannot prove safe, and the warning on the row says what. **Review them** shows only these rows. Tick a row only if its warning is fine for this environment:
  * A script uses a number that is the ID of a user group, document type, keyword type or other configuration in the source, and that ID is different here or missing. A promotion never edits script code, so change the script to look the configuration up by name, then promote it again.
  * A workflow environment variable value looks environment-specific, such as a URL, host name, IP address or connection string.
  * A workflow environment variable would overwrite a value here that looks like a credential.
  * The AI search automatic indexing setting differs. Environments often index different document types on purpose.
* **Changes whose dependency is not ticked.** A change that needs another change you left out is left out too, and says so. For example, a document type that needs a new keyword type waits until you tick the keyword type as well.

A change that should never arrive here can be recorded as [kept different](/configuration-promotion/rules-and-differences#kept-different-in-this-environment). It is then listed under **changes are kept different in this environment** instead of the change list.

<Frame caption="Workflow environment variables: an address that differs between environments waits for a tick, and a credential is never exported, so its row is blocked until the value is set here.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/variables.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=a2a9cca83f169aaaf3af6a4374f8459b" alt="The Workflow environment variable group expanded. PARTNER_PORTAL_URL is an unticked update with the warning that the value looks environment-specific because it contains ://, changing the value from https://partner.example.invalid to https://partner-test.example.invalid. DOCUMENT_STORE_CONNECTION is a blocked create because its value looks like a credential, so it was not exported and must be set on this environment by hand" width="942" height="281" data-path="images/configuration-promotion/variables.png" />
</Frame>

### Resolve blocked changes

A blocked change cannot be ticked. The reason is shown in the **What changes** column and in full when you open the row. Fix the cause, then select **Refresh preview**.

| Reason on the row                                                                                                                                                                         | What to do                                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| A user group does not exist in this environment                                                                                                                                           | Add a [reference rule](/configuration-promotion/rules-and-differences#user-group-reference-rules), or create the group here |
| A disk group, file type, note type or folder type does not exist in the target                                                                                                            | Create it here by hand first                                                                                                |
| Secret values never leave an environment                                                                                                                                                  | Create the secret with its value here                                                                                       |
| A workflow environment variable value looks like a credential                                                                                                                             | Set the variable here by hand                                                                                               |
| Changing this needs a permission you do not have                                                                                                                                          | Ask for the permission, or leave the change to someone who holds it                                                         |
| It needs something that exists neither in the file nor here, or that is itself blocked                                                                                                    | Resolve that change first, or include its type in the export                                                                |
| Two changes need each other                                                                                                                                                               | Create or change one of them here first, then compare again                                                                 |
| A change that cannot be made in place, such as a keyword type's data type or storage, a shorter keyword length, turning revisions off, or a Caseflow class's base class or attribute type | Align the source with this environment, or record the entry as kept different                                               |
| A delete of something still in use, such as a document type with documents or a keyword type that is assigned                                                                             | Leave the delete out, or remove the use first                                                                               |

A promotion never deletes a workflow, a workflow schedule, a Caseflow class or an allowed reporting source.

## Apply

A tick changes what the rest of the plan can do, so every tick refreshes the preview. **Apply** waits until the refresh is done, and **Updating the preview with your choices…** shows while it runs.

Before you apply, read **If saving fails** under the list. It shows the order the changes are saved in:

* Changes stored in Nobly Insight are saved in steps. Within a step, either every change is saved or none is.
* Each workflow, script, workflow or script secret, workflow environment variable, workflow schedule and reporting data source is saved on its own.
* If a step fails, the steps before it stay saved and the rest are skipped. History then shows what was saved. To change it, promote again from the source environment.

<Frame caption="The save order: the changes stored in Nobly Insight are saved together, and each workflow is saved on its own.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/save-order.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=0ebc5ea1b29b7030a809e4ab8b14bb24" alt="The If saving fails panel listing step 1, five changes saved together, where if one fails none of them are saved, and step 2, workflow Contract review saved on its own, with the explanation that workflows and scripts with their variables, secrets and schedules are stored outside this application" width="1182" height="130" data-path="images/configuration-promotion/save-order.png" />
</Frame>

<Steps>
  <Step title="Select Apply">
    Select **Apply N changes**. The confirmation counts what will be created, updated and deleted. It also counts the deletions and checks you left out.
  </Step>

  <Step title="Add a comment">
    Enter an optional comment of up to 2,000 characters, such as the change request or ticket the promotion belongs to. The comment is kept in History.
  </Step>

  <Step title="Confirm">
    Select **Apply N changes** in the dialog. The current configuration is saved as a version first, so History shows what it was before.
  </Step>
</Steps>

<Frame caption="The confirmation counts the changes and takes an optional comment for History.">
  <img src="https://mintcdn.com/nobly/J8ndCnbOGBeMe664/images/configuration-promotion/confirm.png?fit=max&auto=format&n=J8ndCnbOGBeMe664&q=85&s=373c7553210ba9a8f02ca27f7b415e75" alt="The dialog Apply these changes to this environment? listing 2 to create, 4 to update, 0 to delete, 1 not in the export file is kept here, and 2 that need a check are left out, with the comment CHG-1204 contract end date and supplier agreements and the buttons Cancel and Apply 6 changes" width="512" height="422" data-path="images/configuration-promotion/confirm.png" />
</Frame>

**Result** then shows the status and how many changes were applied, failed, rolled back, not run and left over, with details for each. The review refreshes, so applied changes no longer appear as pending.

If this environment's configuration changed after your preview, for example because someone saved a setting, the apply is refused. The review refreshes with your ticks kept. Review it again and apply.

## Where to read next

<Card title="Group mappings and kept differences" icon="users-gear" href="/configuration-promotion/rules-and-differences" horizontal>
  Map user group names between environments and record what an environment keeps different on purpose.
</Card>

<Card title="History and environment status" icon="clock-rotate-left" href="/configuration-promotion/history-and-status" horizontal>
  See every promotion applied to an environment and what has changed since.
</Card>
