For the most part, people think of user profiles as being, well, user profiles: a collection of information that a user enters themselves or that is automatically supplied when a user logs by using social login.
However, user profiles are more than just a collection of information. For example, why can users provide their first and last names in their profiles, but not their maiden names? Why can users specify the city and country they live in, but not the county that they live in? Why can users indicate the organization that they work for, but not the department that they work in? What is it that determines the information that users can and cannot supply in their user profiles?
As it turns out, there’s one answer to all of those questions: the schema.
Each Janrain entity type (including the user entity type, the underlying database for user profiles) has a schema, a blueprint that specifies what can and cannot be stored in that entity type. For example, the schema dictates such things as the:
- Attributes used to store customer information (email; displayName; primaryAddress.city).
- Type of data that can be stored in those attributes (for example, the lastUpdated attribute can only store datetime information).
- Attributes that can be referenced in a Console search.
To make the best use of the information stored in your user profiles, you need to understand the user schema and how it works. And to help you gain that understanding, this section of the Console documentation includes the following topics:
Note. If you have other entity types (for example, a custom entity type named employees), then those entity types will have a schema as well; in fact, to create a new entity type you start by building the schema for that type. (Because, needless to say, you need a blueprint before you start building.) Because the user schema is the most widely-used Janrain schema, this documentation will typically refer only to the user schema and the user entity type. However, the concepts that apply to the user schema and the user entity type also apply to any other schema and entity type used in your organization.