<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>You'd have to look at how UserStorageProvider, specifically
      UserStorageManager.  Its not complete yet.  Still need to add
      validation callbacks which is on my todo list.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 8/18/16 4:10 AM, Stian Thorgersen
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAJgngAecJQBkWa-acq4Paz+CU61xES3ozRJn2ggX5P36pAB1xA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Sounds great. Do you have an example on how to use
        it? Or do we need to dig into the code in details?</div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On 9 August 2016 at 15:15, Bill Burke <span
            dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">I've
            implemented a new generic component storage, api, REST API,
            and<br>
            admin console support.  Classes/interfaces are in server-spi<br>
            org.keycloak.component package and created via methods in
            RealmModel.<br>
            It is basically a more generic form of mapper models,<br>
            UserFederationModel, etc.  Components describe themselves
            and can be<br>
            generically rendered by the admin console.  The storage
            model is meant<br>
            to support nested subcomponents (i.e. UserFederationModel
            and<br>
            UserFederationMappers).  Config now supports a
            MultivaluedHashmap<br>
            instead of a flat Map to support list storage. There is a
            common REST<br>
            API under the realm that should be usable for all component
            types.  The<br>
            UserStorage SPI uses this new SPI from top to bottom.<br>
            <br>
            We should consider whether we want to migrate other
            component types to<br>
            this new model.<br>
            <br>
            When you create components to store, you specify a parentId
            (i.e. Realm,<br>
            Client, a parent component), a provider type, a provider id,
            and<br>
            config.  For export, the json model will contain components
            under Realm<br>
            and Client where the perspective parentId is Realm and
            Client.  I still<br>
            want to make this as human consumable as possible so that
            these<br>
            components can be defined by humans in json.<br>
            <br>
            Bill<br>
            <br>
            ______________________________<wbr>_________________<br>
            keycloak-dev mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
            <a moz-do-not-send="true"
              href="https://lists.jboss.org/mailman/listinfo/keycloak-dev"
              rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/keycloak-dev</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>