Working with Features

Features are the primary mechanism used to govern property access to user profiles and to application management services. If you intend to actually use a property then you must assign that property at least one feature.

When creating or modifying a property in the Console, you have six client features to choose from:

  • access_issuer. Has permission to issue tokens that can be used by all other property types.
  • direct_access. Has read/write access to all user profiles. You can use a direct_access property to update the user profile for any of your users.
  • direct_read_access. Has read-only access to all user profiles. You can use a direct_read_access property to return information for any of your user profiles, but you cannot use a direct_read_access property to modify a user profile.
  • login_client. Used primarily for logins and registrations, the login_client feature also allows the current user to modify his or her user profile. Client-side API calls should only be made using a login_client property.
  • metadata. When a metadata property updates an attribute value in a user profile, the attribute value will be modified but the lastUpdated attribute will remain as-is. These properties are reserved for use in Janrain data integrations, enabling those integrations to write a timestamp of the last time a profile update was synced to a third party without causing a profile update event (that is, without also updating the lastUpdated attribute).
  • owner. Has complete administrative access to an application. You have to use an owner property to do such things as create, modify, or delete other properties, or to manage your entity type schemas.

Depending on your needs, individual properties can be assigned multiple client features. However, there are some exceptions. For example, if you assign a property the login_client feature, no other features can be assigned to that property. As a result, the other features become unavailable in the Console UI:

Similarly, selecting a different client feature causes the login_client feature to become unavailable:

This prevents you from creating, and then trying to save, an invalid property (e.g., one that tries to combine the direct_access and the login_client features).

And then there’s this: if you mark a property as being an owner, there’s no way to remove that feature. Instead, that feature becomes unavailable:

If you need to change or delete an owner property, contact your Janrain representative.