diff --git a/topics/MigrationFromOlderVersions.adoc b/topics/MigrationFromOlderVersions.adoc
index 5f1bd4e8e2..4eb479c87e 100644
--- a/topics/MigrationFromOlderVersions.adoc
+++ b/topics/MigrationFromOlderVersions.adoc
@@ -12,16 +12,69 @@ It's highly recommended that you backup your database prior to upgrading Keycloa
Migration from a candidate release (CR) to a Final release is not supported. We do however recommend that you test
migration for a CR so we can resolve any potential issues before the Final is released.
+=== Migrate and convert keycloak-server.json
+
+You should copy `standalone/configuration/keycloak-server.json` from the old version to make sure any configuration changes you've done are added to the new installation.
+The version specific section below will list any changes done to this file that you have to do when upgrading from one version to another.
+
+Keycloak is moving away from the use of keycloak-server.json. For this release, the server will still work
+if this file is in `standalone/configuration/keycloak-server.json`, but it is highly recommended that
+you convert to using standalone.xml, standalone-ha.xml, or domain.xml for configuration. We may soon remove
+support for keycloak-server.json.
+
+To convert your keycloak-server.json, you will use a new jboss-cli operation called `migrate-json`.
+It is recommended that you run this operation while the server is not running.
+
+The jboss-cli tool is discussed in detail in link:{{book.installguide.link}}[{{book.installguide.name}}].
+
+==== migrate-json in Standalone Mode
+
+For standalone, you will issue the `migrate-json` operation in `embed` mode without
+the server running.
+
+.Standalone keycloak-server.json migration
+[source]
+----
+$ .../bin/jboss-cli.sh
+[disconnected /] embed-server --server-config=standalone.xml
+[standalone@embedded /] /subsystem=keycloak-server/:migrate-json
+----
+The `migrate-json` operation will look for your keycloak-server.json file in
+the `standalone/configuration` directory. You also have the option of using
+the `file` argument as shown in the domain mode example below.
+
+==== migrate-json in Domain Mode
+
+For a domain, you will stop the Keycloak server and
+issue the `migrate-json` operation against the running domain controller.
+If you choose not to stop the Keycloak server, the operation will still work,
+but your changes will not take affect until the Keycloak server is restarted.
+
+Domain mode migration requires that you use the `file` parameter to upload your
+keycloak-server.json from a local directory. The example below shows connecting
+to localhost. You will need to substitute the address of your domain controller.
+
+.Domain mode keycloak-server.json migration
+[source]
+----
+$ .../bin/jboss-cli.sh -c --controller=localhost:9990
+[domain@localhost:9990 /] cd profile=auth-server-clustered
+[domain@localhost:9990 profile=auth-server-clustered] cd subsystem=keycloak-server
+[domain@localhost:9990 subsystem=keycloak-server] :migrate-json(file="./keycloak-server.json")
+----
+You will need to repeat the `migrate-json` operation for each profile containing a `keycloak-server` subsystem.
+
=== Migrate database
-Keycloak can automatically migration the database schema, or you can choose to do it manually.
+Keycloak can automatically migrate the database schema, or you can choose to do it manually.
==== Relational database
To enable automatic upgrading of the database schema set the `migrationStrategy` property to `update` for
the default `connectionsJpa` provider:
-[source]
+.Edit xml
+[source,xml]
----
@@ -33,6 +86,12 @@ the default `connectionsJpa` provider:
----
+.Equivalent CLI command for above
+[source]
+----
+/subsystem=keycloak-server/spi=connectionsJpa/provider=default/:map-put(name=properties,key=migrationStrategy,value=update)
+----
+
When you start the server with this setting your database will automatically be migrated if the database schema has
changed in the new version.
@@ -49,7 +108,8 @@ Mongo doesn't have a schema, but there may still be things like collections and
To enable automatic creation of these set the `migrationStrategy` property to `update` for the default `connectionsMongo`
provider:
-[source]
+.Edit xml
+[source,xml]
----
@@ -61,16 +121,17 @@ provider:
----
+.Equivalent CLI command for above
+[source]
+----
+/subsystem=keycloak-server/spi=connectionsMongo/provider=default/:map-put(name=properties,key=migrationStrategy,value=update)
+----
+
The Mongo provider does not have the option to manually apply the required changes.
There's also the option to disable migration by setting the `migrationStrategy` to `validate`. With this configuration
the database will be checked at startup and if it is not migrated the server will exit.
-=== Migrate keycloak-server.json
-
-You should copy `standalone/configuration/keycloak-server.json` from the old version to make sure any configuration changes you've done are added to the new installation.
-The version specific section below will list any changes done to this file that you have to do when upgrading from one version to another.
-
=== Migrate providers
If you have implemented any SPI providers you need to copy them to the new server.
diff --git a/topics/events/login.adoc b/topics/events/login.adoc
index c048fb1406..5dd9d633cc 100644
--- a/topics/events/login.adoc
+++ b/topics/events/login.adoc
@@ -90,18 +90,22 @@ The Email Event Listener only supports the following events at the moment:
To enable the Email Listener go to the `Config` tab and click on the `Event Listeners` field. This will show a drop down list box
where you can select email.
-You can exclude one or more events by editing the `keycloak-server.json` that comes with your distribution and adding for example:
+You can exclude one or more events by editing the `standalone.xml`, `standalone-ha.xml`, or `domain.xml`
+that comes with your distribution and adding for example:
-[source]
+[source,xml]
----
-"eventsListener": {
- "email": {
- "exclude-events": [ "UPDATE_TOTP", "REMOVE_TOTP" ]
- }
-}
+
+
+
+
+
+
+
----
-See the link:{{book.installguide.link}}[{{book.installguide.name}}] for more details on where the `keycloak-server.json` file lives.
+See the link:{{book.installguide.link}}[{{book.installguide.name}}] for more details on
+where the `standalone.xml`, `standalone-ha.xml`, or `domain.xml` file lives.