<chapter id="Migration_from_older_versions">
    <title>Migration from older versions</title>
    <sect1>
        <title>Migrating from 1.0 Alpha 4 to Beta 1</title>
        <itemizedlist>
            <listitem>
                For all clients except bearer-only applications, you must specify at least one redirect uri.  Keycloak
                will not allow you to log in unless you have specified a valid redirect uri for that application.
            </listitem>
        </itemizedlist>
    </sect1>
    <sect1>
        <title>Migrating from 1.0 Alpha 2 to Alpha 3</title>
        <itemizedlist>
            <listitem>
                SkeletonKeyToken, SkeletonKeyScope, SkeletonKeyPrincipal, and SkeletonKeySession have been renamed to:
                AccessToken, AccessScope, KeycloakPrincipal, and KeycloakAuthenticatedSession respectively.
            </listitem>
            <listitem>
                ServleOAuthClient.getBearerToken() method signature has changed.  It now returns an AccessTokenResponse
                so that you can obtain a refresh token too.
            </listitem>
            <listitem>
                Adapters now check the access token expiration with every request.  If the token is expired, they will
                attempt to invoke a refresh on the auth server using a saved refresh token.
            </listitem>
            <listitem>
                Subject in AccessToken has been changed to the User ID.
            </listitem>
        </itemizedlist>
    </sect1>
    <sect1>
        <title>Migrating from 1.0 Alpha 1 to Alpha 2</title>
        <itemizedlist>
            <listitem>
                DB Schema has changed.  We don't have any data migration utilities yet as of Alpha 2.
            </listitem>
            <listitem>
                JBoss and Wildfly adapters are now installed via a JBoss/Wildfly subsystem.  Please review the adapter
                installation documentation.  Edits to standalone.xml are now required.
            </listitem>
            <listitem>
                There is a new credential type "secret".  Unlike other credential types, it is stored in plain text in
                the database and can be viewed in the admin console.

            </listitem>
            <listitem>
                There is no longer required Application or OAuth Client credentials.  These client types are now
                hard coded to use the "secret" credential type.
            </listitem>
            <listitem>
                Because of the "secret" credential change to Application and OAuth Client, you'll have to update
                your keycloak.json configuration files and regenarate a secret within the Application or OAuth Client
                credentials tab in the administration console.
            </listitem>
        </itemizedlist>
    </sect1>
</chapter>