/clients/set_features

Changes the features that a target client has by overwriting the old feature list. This API call may only be made by the client's owner. The owner client may not remove the owner feature from itself.

Note. You may assign more that one owner client.

This method includes the following endpoints:

  • POST

POST

Authentication

This endpoint supports Basic authentication. To create an authentication string, combine your API client ID, a colon (:), and your client secret into a single value. For example, if your client ID is abcdefg and your client secret is hijklmnop, that value would look like this:

abcdefg:hijklmnop

Next, take the string and base64 encode it.

For example, on a Mac, you can base encode the string using this command:

echo -n "abcdefg:hijklmnop" | base64

If you’re running Microsoft Windows, you can encode the string by using a Windows PowerShell command similar to this:

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("abcdefg:hijklmn"))

The resulting value (e.g., YWJjZGVmZzpoaWprbG1ub3A=) should be used in your authentication header.

If you are making API calls using Postman, select Basic Auth as your identification type, then use the client ID as the username and the client secret as the password.

Make sure that your API client has the all the permissions (for example, the right to read user profile information) needed to complete the API call.

Base URL

The base URL for this endpoint is your Janrain Capture domain; for example:

https://educationcenter.us-dev.janraincapture.com

Your Capture domains (also known as Registration domains) can be found in the Janrain Console on the Manage Application page:

Examples

Example Request

Overwrite the old features list for the client with ID value 67890fghij67890fghij with a list consisting of the single value owner.


curl -X POST \
    -H "Authorization: Basic aW1fYV...NfbXk="\
    --data-urlencode for_client_id=67890fghij67890fghij \
    --data-urlencode features='["owner"]'\
    https://my-app.janraincapture.com/clients/set_features
  

Running Code Samples Using Postman

The Janrain REST API code samples are written using Curl, but they can easily be run from within Postman. To use one of our code samples in Postman:

  1. Click the Copy to Clipboard button located directly beneath the code sample
  2. In Postman, click Import to display the Import dialog box.
  3. In the Import dialog box, click Paste Raw Text, and then paste in the copied code. The Import dialog box should look similar to this:

  4. Click Import, and the Curl command will be converted to a format that can be run from within Postman. All you need to do now is configure the command to work with your Janrain implementation.

Authorized Clients

  • owner

Security

  •  janrain-signed
  •  basic-auth

Query Parameters

Parameter Type Required Description
for_client_id string Client ID for the client being modified. If this parameter is not present, feature sets are updated on the owner client.
 
features string Yes JSON array of features being assigned to the client. Allowed values are:
  • owner. Complete admin access.
  • access_issuer. Can issue access tokens for other clients.
  • direct_read_access. Has read access to all records.
  • direct_access. Has read and write access to all records.
  • login_client. Creates a read-only client for logging users into your website or application. This prevents malicious users from gaining access to your owner client ID. See API Clients and Permissions for more details.
Note. Clients with the direct_read_access and direct_access features are still subject to the access schemas. For example, if a client has a write access schema defined, the client can write to the "foo" attribute only if it exists in the access schema and the client has the direct_access feature. The direct_access feature implies the direct_read_access feature.

Responses

200 OK

Example Error Response


{
  "argument_name": "features",
  "request_id": "at86pruhzayqxapr",
  "code": 200,
  "error_description": "features was not valid for the following reason:
    ninja_superuser is not a valid feature name",
  "error": "invalid_argument",
  "stat": "error"
}
  

Response Example (application/json)


{
  "stat": "ok"
}