= Upgrading {project_name} adapters

[[_upgrade_adapters]]

After you upgrade the {project_name} server, you can upgrade the adapters. Earlier versions of the
adapter might work with later versions of the {project_name} server, but earlier versions of the {project_name} server might not
work with later versions of the adapter.

[[_compatibility_with_older_adapters]]
== Compatibility with older adapters

Newer versions of the {project_name} server potentially work with older versions of the adapters.
However, some fixes of the {project_name} server may break compatibility with older versions
of the adapters. For example, a new implementation of the OpenID Connect specification may not match older client adapter versions.

For this situation, you can use Compatibility modes. For OpenID Connect clients, the Admin Console includes *OpenID Connect Compatibility Modes* on the page with client details. With this option, you can disable some new aspects of the {project_name} server
to preserve compatibility with older client adapters. For more details, see the tool tips of individual switches.

[[_upgrade_eap_adapter]]
== Upgrading the EAP adapter

To upgrade the {appserver_name} adapter, complete the following steps:

.Procedure
. Download the new adapter archive.
. Remove the previous adapter modules by deleting the `{appserver_dirref}/modules/system/add-ons/keycloak/` directory.
. Unzip the downloaded archive into `{appserver_dirref}`.

[[_upgrade_js_adapter]]
== Upgrading the JavaScript adapter

To upgrade a JavaScript adapter, install the latest version https://www.npmjs.com/package/keycloak-js[from NPM].

.Procedure
. `npm install keycloak-js@latest`


[[_upgrade_nodejs_adapter]]
== Upgrading the `Node.js` adapter

To upgrade a `Node.js` adapter that has been copied to your web application, perform the following procedure.

.Procedure
. Download the new adapter archive.
. Remove the existing `Node.js` adapter directory
. Unzip the updated file into its place
. Change the dependency for keycloak-connect in the `package.json` of your application
