[keycloak-dev] new generic component storage

Bill Burke bburke at redhat.com
Tue Aug 9 09:15:24 EDT 2016


I've implemented a new generic component storage, api, REST API, and 
admin console support.  Classes/interfaces are in server-spi 
org.keycloak.component package and created via methods in RealmModel.  
It is basically a more generic form of mapper models, 
UserFederationModel, etc.  Components describe themselves and can be 
generically rendered by the admin console.  The storage model is meant 
to support nested subcomponents (i.e. UserFederationModel and 
UserFederationMappers).  Config now supports a MultivaluedHashmap 
instead of a flat Map to support list storage. There is a common REST 
API under the realm that should be usable for all component types.  The 
UserStorage SPI uses this new SPI from top to bottom.

We should consider whether we want to migrate other component types to 
this new model.

When you create components to store, you specify a parentId (i.e. Realm, 
Client, a parent component), a provider type, a provider id, and 
config.  For export, the json model will contain components under Realm 
and Client where the perspective parentId is Realm and Client.  I still 
want to make this as human consumable as possible so that these 
components can be defined by humans in json.

Bill



More information about the keycloak-dev mailing list