Platform API

Red Hat Mobile Application Platform Hosted 4

For Red Hat Mobile Application Platform Hosted 4

Red Hat Customer Content Services

Abstract

This document is a reference of the RHMAP platform API.

Chapter 1. API Keys API

Manage the various API keys for a User account and Apps.

Note

X-FH-AUTH-USER should be in every header of every request. See API Key Management for more information.

1.1. List API keys

1.1.1. Description

List User or App API keys.

1.1.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/list
  • method - POST

1.1.3. Request Body

1.1.3.1. List keys for currently logged in user

{
  "type": "user"
}

1.1.3.2. List keys belonging to given app id

{
  "type": "app",
  "appId": "<app_instance_id>"
}

1.1.4. Response Body

1.1.4.1. Success

{
  "status": "ok",
  "list": [{
    "label": "<user_friendly_id>",
    "keyType": "<key_type>",
    "key": "<public_api_key>",
    "keyReference": "<reference_id>", // for example, user/app id
    "secret": "<api_secret_key>",  // only for 'admin' group
    "revoked": "<revoked_timestamp>",
    "revokedBy": "<revoked_by_ref_id>", // for example, user id
    "revokedEmail": "<revoked_by_user_email>"
  },
  /* ... */
  ]
}

1.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

1.2. Create new API keys

1.2.1. Description

Create a new User or App API key. While users can have multiple API keys associated with them, Apps can only have one active API key at any time - when an app API key is created, any pre-existing keys for that app will be automatically revoked.

1.2.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/create
  • method - POST

1.2.3. Request Body

1.2.3.1. Create API Keys for the current logged in user

{
  "type": "user",
  "label": "<user_friendly_id>"
}

1.2.3.2. Create new API keys belonging to given app id

Any existing keys for this app will be automatically revoked.

{
  "type": "app",
  "label": "<user_friendly_id>",
  "appId": "<app_instance_id>"
}

1.2.4. Success

{
  "status": "ok",
  "apiKey": {
    "label": "<user_friendly_id>",
    "keyType": "<key_type>",
    "key": "<public_api_key>",
    "keyReference": "<reference_id>", // for example, user/app id
    "secret": "<api_secret_key>",  // only for 'admin' group
    "revoked": "<revoked_timestamp>",
    "revokedBy": "<revoked_by_ref_id>", // for example, user id
    "revokedEmail": "<revoked_by_user_email>"
  }
}

1.2.5. Error

{
  "status": "error",
  "message": "<error_message>"
}

1.3. Revoke existing API keys

1.3.1. Description

Revoke existing User or App API keys.

1.3.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/revoke
  • method - POST

1.3.3. Request Body

{
  "key": "<public_api_key>"
}

1.3.4. Success

{
  "status": "ok",
  "apiKey": {
    "label": "<user_friendly_id>",
    "keyType": "<key_type>",
    "key": "<public_api_key>",
    "keyReference": "<reference_id>", // for example, user/app id
    "secret": "<api_secret_key>",  // only for 'admin' group
    "revoked": "<revoked_timestamp>",
    "revokedBy": "<revoked_by_ref_id>", // for example, user id
    "revokedEmail": "<revoked_by_user_email>"
  }
}

1.3.5. Error

{
  "status": "error",
  "message": "<error_message>"
}

1.4. Delete existing API keys

1.4.1. Description

Permanently delete an existing User or App API key.

1.4.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/delete
  • method - POST

1.4.3. Request Body

{
  "key": "<public_api_key>"
}

1.4.4. Success

{
  "status": "ok",
  "apiKey": {
    "label": "<user_friendly_id>",
    "keyType": "<key_type>",
    "key": "<public_api_key>",
    "keyReference": "<reference_id>", // for example, user/app id
    "secret": "<api_secret_key>",  // only for 'admin' group
    "revoked": "<revoked_timestamp>",
    "revokedBy": "<revoked_by_ref_id>", // for example, user id
    "revokedEmail": "<revoked_by_user_email>"
  }
}

1.4.5. Error

{
  "status": "error",
  "message": "<error_message>"
}

1.5. Update an existing API Key

1.5.1. Description

Update an existing App or User API Key.

1.5.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/update
  • method - POST

1.5.3. Request Body

{
  "key": "<public_api_key>",
  "fields": {
    "label": "<new_user_friendly_id>"
  }
}

1.5.4. Success

{
  "status": "ok",
  "apiKey": {
    "label": "<user_friendly_id>",
    "keyType": "<key_type>",
    "key": "<public_api_key>",
    "keyReference": "<reference_id>", // for example, user/app id
    "secret": "<api_secret_key>",  // only for 'admin' group
    "revoked": "<revoked_timestamp>",
    "revokedBy": "<revoked_by_ref_id>", // for example, user id
    "revokedEmail": "<revoked_by_user_email>"
  }
}

1.5.5. Error

{
  "status": "error",
  "message": "<error_message>"
}

1.6. Validate an API Key

1.6.1. Description

Check if an API key is valid

1.6.2. Endpoint

  • uri - /box/srv/1.1/ide/<domain>/api/validate
  • method - POST

1.6.3. Request Body

{
  "type" : "<key_type>"
  "key" : "<key_value>",
}

1.6.4. Success

{
  "status" : "ok",
  "valid" : true | false
}

1.6.5. Error

{
  "status" : "error",
  "message" : "<error_message>"
}

Chapter 2. Mobile App Management API

2.1. Read App Store

2.1.1. Description

Read details of the app store.

2.1.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/read
  • method - POST

2.1.3. Request Body

N/A

2.1.4. Response Body

2.1.4.1. Success

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>",
  "icon":"<base64_String>"
  "storeitems": ["store_item_global_unique_id_1", "store_item_global_unique_id_2", ... "store_item_global_unique_id_N"],
  "authpolicies":["active_policy_ids"]
}

2.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.2. Update App Store

2.2.1. Description

Update details of the app store

2.2.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/update
  • method - POST

2.2.3. Request Body

{
  "name": "<app_store_name>", /*optional*/
  "description": "<app_store_description>" /*optional*/
  "storeitems":["store_item_global_unique_id_1"] /*optional*/
  "authpolicies":[policy_ids]
}

2.2.4. Response Body

2.2.4.1. Success

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>"
  "icon":"<base64_string>"
  "storeitems": ["store_item_global_unique_id_1", "store_item_global_unique_id_2", ... "store_item_global_unique_id_N"],
  "authpolicies":[active_policy_ids]
}

2.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.3. Add StoreItem to App Store

2.3.1. Description

Add an existing Store Item to the store, making it visible in the store.

2.3.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/additem
  • method - POST

2.3.3. Request Body

{"guid":"<unique_store_item_id>"}

2.3.4. Response Body

2.3.4.1. Success

{
  "status":"ok"
}

2.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.4. Remove StoreItem to App Store

2.4.1. Description

Remove existing Store Item from the store, making it invisible in the store.

2.4.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/removeitem
  • method - POST

2.4.3. Request Body

{"guid":"<unique_store_item_id>"}

2.4.4. Response Body

2.4.4.1. Success

{
  "status":"ok"
}

2.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.5. Upload App Store Icon

2.5.1. Description

Add an icon for your store.

2.5.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/uploadbinary
  • method - POST

2.5.3. Request Body

Multipart request with the image.

2.5.4. Response Body

2.5.4.1. Success

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>"
  "icon":"<base64_string>"
  "storeitems": ["store_item_global_unique_id_1", "store_item_global_unique_id_2", ... "store_item_global_unique_id_N"],
  "authpolicies":[active_policy_ids]
}

2.5.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.6. List Store Items In App Store

2.6.1. Description

List the current items in the App Store. The "binaries" fields are defined in the Binaries Options.

2.6.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/liststoreitems
  • method - POST

2.6.3. Request Body

{}

2.6.4. Response Body

2.6.4.1. Success

{
  "list": [
    {
      "authToken": "<unique id for auth>",
      "authpolicies": [unique_policy_ids],
      "binaries": [
        {
          "config": {
                      "bundle_id": "<ios_bundle_id>"
          },
          "storeItemBinaryVersion": 2,
          "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
          "type": "iphone | android | ios | ipad",
          "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
                      "config": {},
                      "destinationCode": "iphone | android | ios | ipad",
                      "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
                      "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
                      "storeItemBinaryVersion": 1,
                      "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
        }
      ],
      "description": "description",
      "guid": "<unique_id>",
      "icon": "<base64_string>",
      "name": "<string_item_name>"
    }
  ],
  "status": "ok"
}

2.6.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.6.5. Options

2.6.5.1. Binaries field

The binaries field is an array of information about the currently uploaded Store Item Binaries. It consists of :

  • config - a field for any extra OS related configuraton. For example, the ios bundle id.
  • storeItemBinaryVersion - The current store item binary version number.
  • sysModified - The last modified date of this store item binary.
  • type - The store item binary type.
  • url - You can use this url to download the latest version this store item binary.
  • versions - An array containing a history of older Store Item Binaries (a maximum of 4 entries is kept).

2.7. Add Auth Policy

2.7.1. Description

Add an Auth policy to be used with the appstore.

2.7.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/addpolicy
  • method POST

2.7.3. Request Body

{
  "guid":"<policy_id>"
}

2.7.4. Response Body

2.7.4.1. Success

{
  "status": "ok"
}

2.7.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.8. Remove Store Auth Policy

2.8.1. Description

Remove an Auth policy from being used in with the appstore.

2.8.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/removepolicy
  • method POST

2.8.3. Request Body

{
  "guid":"<policy_id>"
}

2.8.4. Response Body

2.8.4.1. Success

{
  "status": "ok"
}

2.8.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.9. List Auth Policies

2.9.1. Description

List the policies attached to the appstore.

2.9.2. Endpoint

  • uri - /box/srv/1.1/admin/appstore/listpolicies
  • method POST

2.9.3. Request Body

{}

2.9.4. Response Body

2.9.4.1. Success

{
  "list": [
    "ORF5SiIH623yYmBD1ftlFOA4"
  ],
  "status": "ok"
}

2.9.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.10. Create App Store Item

2.10.1. Description

Create an app store item.

2.10.2. Endpoint

  • uri - /box/srv/1.1/admin/storeitem/create
  • method - POST
Note

The icon is uploaded after the item is created. The item will be created with a no icon.

2.10.3. Request Body

  {
    "name" : String,
    "description": String <optional>,
    "authToken":String <optional>
  }

2.10.4. Response Body

{
  "status": "ok",
    "guid": "<app_store_global_unique_id>",
    "name": "<app_store_name>",
    "description": "<app_store_description>",
    "authToken": "<unique_token_used_by_client_to_autheticate>",
    "icon": "<base_64_encoded_icon_data>",
    "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
        "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }
  ],
  "authpolicies": [<unique_policy_id>],
  "restrictToGroups": true|false,
  "groups": ["<store_item_group_id>",...]
}

2.10.4.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.11. Read App Store Item

2.11.1. Description

Read details of a store item.

2.11.2. Endpoint

  • uri - /box/srv/1.1/admin/storeitem/read
  • method - POST

2.11.3. Request Body

{
  "guid":String
}

2.11.3.1. Response Body

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>",
  "authToken": "<unique_token_used_by_client_to_autheticate>",
  "icon": "<base_64_encoded_icon_data">,
  "binaries": [
    {
      "config": {
        "bundle_id": "<ios_bundle_id>"
      },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
        "versions": [{
          "config": {},
          "destinationCode": "iphone | android | ios | ipad",
          "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
          "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
          "storeItemBinaryVersion": 1,
          "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
        }]
    }],
  "authpolicies": [<unique_policy_id>],
  "restrictToGroups": true|false,
  "groups": [<store_item_group_id>]
}

2.11.3.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.12. Update Item

2.12.1. Endpoint

  • /box/srv/1.1/admin/storeitem/update
  • method POST

2.12.2. Request Body

{
  "name": String,
  "description": String,
  "authToken": String,
  "restrictToGroups": true|false // optional - will not change if not set
}

2.12.3. Response Body

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>",
  "authToken": "<unique_token_used_by_client_to_autheticate>",
  "icon": "<base_64_encoded_icon_data>",
  "binaries": [
    {
      "config": {
        "bundle_id": "<ios_bundle_id>"
      },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
        "versions": [{
          "config": {},
          "destinationCode": "iphone | android | ios | ipad",
          "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
          "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
          "storeItemBinaryVersion": 1,
          "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
        }]
    }],
  "authpolicies": [<unique_policy_id>],
  "restrictToGroups": true|false,
  "groups": ["<store_item_group_id>",...]
}

2.12.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.13. Delete App Store Item

2.13.1. Endpoint

  • /box/srv/1.1/admin/storeitem/delete
  • method POST

2.13.2. Request Body

{
  "guid" : "unique store item id"
}

2.13.3. Respose Body

{
  "status":"ok"
}

2.13.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.14. List App Store Items

2.14.1. Description

List items in an app store.

2.14.2. Endpoint

  • uri - /box/srv/1.1/admin/storeitem/list
  • method - POST

2.14.3. Request Body

  {}

2.14.4. Response Body

{
  "status": "ok",
  "list":[
    {
      "guid": "<app_store_global_unique_id>",
      "name": "<app_store_name>",
      "description": "<app_store_description>",
      "authToken": "<unique_token_used_by_client_to_autheticate>",
      "icon": "<base_64_encoded_icon_data>",
      "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }],
      "authpolicies": [<unique_policy_id>],
      "restrictToGroups": true|false,
      "groups": ["<store_item_group_id>",...]
    }
  ]
}

2.14.4.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.15. Upload Binary

2.15.1. Endpoint

  • /box/srv/1.1/admin/storeitem/uploadbinary
  • method POST
  • file sent as multipart request

2.15.2. Request Body

{
  "guid":"String",
  "type":"<icon|ios|ipad|iphone|android>"
}

2.15.3. Response

{
  "status": "ok"
  "list":[
    {
      "guid": "<app_store_global_unique_id>",
      "name": "<app_store_name>",
      "description": "<app_store_description>",
      "authToken": "<unique_token_used_by_client_to_autheticate>",
      "icon": "<base_64_encoded_icon_data>",
      "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }],
      "authpolicies": [<unique_policy_id>],
      "restrictToGroups": true|false,
      "groups": ["<store_item_group_id>",...]
    }
  ]
}

2.15.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.16. Add Auth Policy

2.16.1. Endpoint

  • /box/srv/1.1/admin/storeitem/addpolicy
  • method POST

2.16.2. Request Body

{
  "guid":"<store_item_id>",
  "authguid":"<policy_id>"
}

2.16.3. Response Body

{
  "status": "ok",
  "list":[
    {
      "guid": "<app_store_global_unique_id>",
      "name": "<app_store_name>",
      "description": "<app_store_description>",
      "authToken": "<unique_token_used_by_client_to_autheticate>",
      "icon": "<base_64_encoded_icon_data>",
      "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }],
      "authpolicies": [<unique_policy_id>],
      "restrictToGroups": true|false,
      "groups": ["<store_item_group_id>",...]
    }
  ]
}

2.16.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.17. Remove Store Item Auth Policy

2.17.1. Endpoint

  • /box/srv/1.1/admin/storeitem/removepolicy
  • method POST

2.17.2. Request Body

{
  "guid":"<store_item_id>",
  "authguid":"<policy_id>"
}

2.17.3. Response Body

{
  "status": "ok"
  "list":[
    {
      "guid": "<app_store_global_unique_id>",
      "name": "<app_store_name>",
      "description": "<app_store_description>",
      "authToken": "<unique_token_used_by_client_to_autheticate>",
      "icon": "<base_64_encoded_icon_data>",
      "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }],
      "authpolicies": [<unique_policy_id>],
      "restrictToGroups": true|false,
      "groups": ["<store_item_group_id>",...]
    }
  ]
}

2.17.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.18. Get Binary Config

2.18.1. Endpoint

  • /box/srv/1.1/admin/storeitem/getbinaryconfig
  • method POST | GET

2.18.2. Request Body

{
  "guid":"<store_item_guid>",
  "type":"<ios|ipad|iphone|android>"
}

2.18.3. Response

{
  "status":"ok"
  "guid":"<store_item_guid>",
  "type": "<ios|iphone|ipad|android>",
  "config": {
    "<config_key>": "<config_value>"
  }
}

2.18.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.19. Set Binary Config

2.19.1. Endpoint

  • /box/srv/1.1/admin/storeitem/setbinaryconfig
  • method POST

2.19.2. Request Body

{
  "guid":"<store_item_guid>",
  "type":"<ios|ipad|iphone|android>",
  "config": {
    "<config_key>": "<config_value>"
   }
 }

2.19.3. Response

{
  "status":"ok"
  "guid":"<store_item_guid>",
  "type": "<ios|iphone|ipad|android>",
  "config": {
    "<config_key>": "<config_value>"
  }
}

2.19.4. Error

2.19.4.1. Possible error messages:

  • invalid_type
  • invalid_guid

2.20. Add StoreItem Groups

2.20.1. Endpoint

  • /box/srv/1.1/admin/storeitem/addgroups
  • method POST

2.20.2. Request Body

{
  "guid":"<store_item_id>",
  "groups": ["<store_item_group_id>",...]
}

2.20.3. Response Body

{
  "status": "ok",
  "list":[
    {
      "guid": "<app_store_global_unique_id>",
      "name": "<app_store_name>",
      "description": "<app_store_description>",
      "authToken": "<unique_token_used_by_client_to_autheticate>",
      "icon": "<base_64_encoded_icon_data>",
      "binaries": [
      {
        "config": {
          "bundle_id": "<ios_bundle_id>"
        },
        "storeItemBinaryVersion": 2,
        "sysModified": "Fri Nov 02 10:06:48 GMT 2012",
        "type": "iphone | android | ios | ipad",
        "url": "http://<domain>/box/srv/1.1/mas/storeitem/install?guid=dweFfHihI616y67aQB4sNGQt",
          "versions": [{
            "config": {},
            "destinationCode": "iphone | android | ios | ipad",
            "storeItemBinaryGuid": "Y8a8lFjFufZyqd1tAdjonufw",
            "storeItemBinaryModified": "Fri Nov 02 10:44:45 GMT 2012",
            "storeItemBinaryVersion": 1,
            "url": "http://<domain>/box/srv/1.1/mas/storeitem/downloadvers?guid=o1Z1S_t-hyGMXymqTzIWS4xd"
          }]
      }],
      "authpolicies": [<unique_policy_id>],
      "restrictToGroups": true|false,
      "groups": ["<store_item_group_id>",...]
    }
  ]
}

2.20.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.21. Remove StoreItem Groups

2.21.1. Endpoint

  • /box/srv/1.1/admin/storeitem/removegroups
  • method POST

2.21.2. Request Body

{
  "guid":"<store_item_id>",
  "groups": ["<store_item_group_id>",...]
}

2.21.3. Response Body

{
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>",
  "authToken": "<unique_token_used_by_client_to_autheticate>",
  "icon": "<base_64_encoded_icon_data">,
  "binaries": [
    {
      "type": "<ios|iphone|ipad|android>",
      "url": "<url_to_app_binary">
    }
  ],
  "authpolicies": [<unique_policy_id>],
  "restrictToGroups": true|false,
  "groups": ["<store_item_group_id>",...]
}

2.21.3.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.22. List Audit Log entries

2.22.1. Description

Get a list of the Audit Log entries.

2.22.2. Endpoint

  • uri - /box/srv/1.1/admin/auditlog/listlogs
  • method - POST | GET

2.22.3. Auth

Restricted - requires sessionId as header.

X-FH-AUTH-SESSION: "<sessionId_returned_from_fh.auth_call>"

2.22.4. Request Body

{
  "userId":"<unique user guid>",
  "storeItemGuid":"<store_item_global_unique_id>",
  "storeItemBinaryType":"ios | iphone | ipad | android",
  "limit":"10 | 100 | 1000"
}

2.22.5. Response Body

2.22.5.1. Success

{
  "status": "ok",
  "list": [{
    "deviceId":"<device_global_unique_id>",
    "domain":"<domain name>",
    "guid":"<audit_log_entry_global_unique_id>_RA2E11wCdS>",
    "ipAddress":"<downloading host ip address>",
    "storeItemBinaryGuid":"<store item binary guid>",
    "storeItemBinaryType":"<store item binary type>",
    "storeItemBinaryVersion":"<store item binary version>",
    "storeItemGuid":"<store_item_global_unique_id>",
    "storeItemTitle":"<store item title>",
    "sysCreated":"<audit log creation time>",
    "sysVersion":"<version>",
    "userGuid":"<user guid>",
    "userId":"<user_friendly_id>"
  },
  /* ... */
  ]
}

2.22.5.2. Error

{
  "status": "error",
  "message": "<error_message>"
}
2.22.5.2.1. Possible error messages:
  • invalid_type

2.23. Read App Store

2.23.1. Description

Read details of the app store - name, description, icon & supported Auth policies.

2.23.2. Endpoint

  • uri - /box/srv/1.1/mas/appstore/read
  • method - POST | GET

2.23.3. Auth

Open - a public endpoint which can be called with no authentication.

2.23.4. Request Body

N/A

2.23.5. Response Body

2.23.5.1. Success

{
  "status": "ok",
  "guid": "<app_store_global_unique_id>",
  "name": "<app_store_name>",
  "description": "<app_store_description>",
  "icon" : "<base64_encoded_representation_of_app_store_icon>"
  "authpolicies": [
    {
      "name": "<auth_policy_name_1>",
      "type": "<auth_policy_type_1>"
    },
    {
      "name": "<auth_policy_name_2>",
      "type": "<auth_policy_type_2>"
    },
    ...
    {
      "name": "<auth_policy_name_N>",
      "type": "<auth_policy_type_N>"
    }
  ]
}

2.23.5.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.24. Get App Store Items

2.24.1. Description

Read list of Store Items availabe from the app store. Includes a list of available binaries and their type.

2.24.2. Endpoint

  • uri - /box/srv/1.1/mam/appstore/getstoreitems
  • method - POST

2.24.3. Auth

Restricted - requires sessionId as header.

X-FH-AUTH-SESSION: "<sessionId_returned_from_fh.auth_call>"

2.24.4. Request Body

{
  "appstore": "<app_store_global_unique_id>"
}

2.24.5. Response Body

2.24.5.1. Success

{
  "status": "ok",
  "storeitems": [{
    "guid": "<store_item_global_unique_id_1>",
    "name": "<store_item_name_1>",
    "description": "<store_item_description_2>",
    "icon": "<base64_encoded_representation_of_store_item_icon_2>",
    "targets" : [
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_1"
      },
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_2"
      },
      ...
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_N"
      }
    ]
  },
  {
    "guid": "<store_item_global_unique_id_2>",
    "name": "<store_item_name_2>",
    "description": "<store_item_description_2>",
    "icon": "<base64_encoded_representation_of_store_item_icon_2>",
    "targets" : [
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_1"
      },
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_2"
      },
      ...
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_N"
      }
    ]
  }
  ...
  {
    "guid": "<store_item_global_unique_id_N>",
    "name": "<store_item_name_N>",
    "description": "<store_item_description_N>",
    "icon": "<base64_encoded_representation_of_store_item_icon_N>",
    "targets" : [
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_1"
      },
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_2"
      },
      ...
      {
        "type": "ios | iphone | ipad | android",
        "url": "url_of_installable_artifact_N"
      }
    ]
  }
}

2.24.5.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

2.25. Install Store Item

2.25.1. Description

Install an App Store Item. Depending on the type requested, this API may return a binary stream or a URL redirect.

2.25.2. Endpoint

  • uri - /box/srv/1.1/mas/storeitem/install
  • method - POST | GET

2.25.3. Auth

Restricted - requires sessionId as header.

X-FH-AUTH-SESSION: "<sessionId_returned_from_fh.auth_call>"

2.25.4. Request Body

{
  "guid": "<store_item_global_unique_id>",
  "type": "ios | iphone | ipad | android"
}

2.25.5. Response

2.25.5.1. Success

The response will vary depending on the "type" parameter in the request.

2.25.5.1.1. ios | iphone | ipad

iOS Over The Air (OTA) installer page.

2.25.5.1.2. android

Installable binary artifact for android device - .apk file.

2.25.5.2. Error

{
  "status": "error",
  "message": "<error_message>"
}
2.25.5.2.1. Possible error messages:
  • invalid_type
  • invalid_guid

Chapter 3. Auth Policies API

Auth polices allow you to define different methods for authenticating and authorizing your application users. Different Auth Policies require different authentication configuration options to be defined. The structure of the various authentication configuration options are defined in the Authentication Configuration Options.

3.1. Create Auth Policy

3.1.1. Description

Create a new Auth policy.

3.1.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/create
  • method - POST

3.1.3. Request Body

{
  // required - a unique id for the policy. Used by $fh.auth() to
  // specify which Auth policy to use for authenticating/authorizing users
  "policyId": "<for example, oauth-google>",
  // required - the type of Autheitcation policy
  "policyType": "<oauth1 | oauth2 | ldap | openid>",
  // required, the configuration parameters for the policy
  // See Configuration Options section for full details
  "configurations": {<Config JSON Object>},
  // optional, default false
  // Flag to indicate if a check should be performed to
  // validate that the user id of the user being autheticated exists
  // in the platform. This should be set to
  // true for private apps & false for public apps.
  "checkUserExists": true | false,
  // Flag to indicate if our User needs to be approved for Auth
  "checkUserApproved": true | false
}

3.1.4. Response Body

3.1.4.1. Success

{
  "status": "ok",
  "guid": "<new_auth_policy_global_unique_id>"
}

3.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.2. Read Auth Policy

3.2.1. Description

Read details of an existing Auth policy.

3.2.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/read
  • method - POST

3.2.3. Request Body

{
  // required - the unique id the policy to read
  "policyId": "<for example, oauth-google>"
}

3.2.4. Response Body

3.2.4.1. Success

{
  "status": "ok",
  "guid": "<auth_policy_global_unique_id>",
  "policyId" : "<user_defined_policy_identifier>"
  "policyType": "<oauth1 | oauth2 | ldap | openid>",
  "configurations": {<Config JSON Object>},
  "checkUserExists": true | false,
  "checkUserApproved": true | false,
  "users" : [<user-id>]
}

3.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.3. Update Auth Policy

3.3.1. Description

Update an existing Auth policy.

3.3.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/update
  • method - POST

3.3.3. Request Body

{
  // required - the global unique identifier for the policy to update
  "guid" : "<global_unique_identifier>",
  // required - a unique id for the policy. Used by $fh.auth() to
  // specify which authentication policy to use for authenticating/authorizing users
  "policyId": "<for example, oauth-google>",
  // required - the type of Auth policy
  "policyType": "<oauth1 | oauth2 | ldap | openid>",
  // required, the configuration parameters for the policy
  // See See Configuration Options section for full details
  "configurations": {<Config JSON Object>},
  // optional, default false
  // Flag to indicate if a check should be performed to
  // validate that the user id of the user being authenticated exists
  // in the platform. This should be set to
  // true for private apps & false for public apps.
  "checkUserExists": true | false,
  // Flag to indicate if our User needs to be approved for Auth
  "checkUserApproved": true | false
}

3.3.4. Response Body

3.3.4.1. Success

{
  "status": "ok",
  "guid": "<auth_policy_global_unique_id>"
}

3.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.4. Delete Auth Policy

3.4.1. Description

Delete an existing Auth policy.

3.4.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/delete
  • method - POST

3.4.3. Request Body

{
  // required - the global unique identifier for the policy to delete
  "guid" : "<global_unique_identifier>"
}

3.4.4. Response Body

3.4.4.1. Success

{
  "status": "ok"
}

3.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.5. List Auth Policies

3.5.1. Description

List all existing Auth policies.

3.5.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/list
  • method - POST | GET

3.5.3. Request Body

N/A

3.5.4. Response Body

3.5.4.1. Success

{
  "status": "ok",
  "list" : [
    {
      "guid": "<auth_policy_global_unique_id#1>",
      "policyId" : "<user_defined_policy_identifier#1>"
      "policyType": "<oauth1 | oauth2 | ldap | openid>",
      "configurations": {<Config JSON Object>},
      "checkUserExists": true | false,
      "checkUserApproved": true | false
    },
    {
      "guid": "<auth_policy_global_unique_id#2>",
      "policyId" : "<user_defined_policy_identifier#2>"
      "policyType": "<oauth1 | oauth2 | ldap | openid>",
      "configurations": {<Config JSON Object>},
      "checkUserExists": true | false,
      "checkUserApproved": true | false
    },
    ...
    {
      "guid": "<auth_policy_global_unique_id#N>",
      "policyId" : "<user_defined_policy_identifier#N>"
      "policyType": "<oauth1 | oauth2 | ldap | openid>",
      "configurations": {<Config JSON Object>},
      "checkUserExists": true | false,
      "checkUserApproved": true | false
    }
  ],
  "count" : "<number_of_policies>"
}

3.5.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.6. List Policy Users

3.6.1. Description

List all Users associated with an Auth Policy.

3.6.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/users
  • method - POST

3.6.3. Request Body

{
  "guid": "<policy_guid>",
}

3.6.4. Response Body

3.6.4.1. Success

{
  "status": "ok",
  "list" : [
    {
      "userid": "<user_id>",
      "name" : "<user_name>"
      "email": "<user_email>",
    }
  ],
  "count" : "<number_of_users_for_this_policy>"
}

3.6.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.7. Add Users to a Policy

3.7.1. Description

Associate Users with an Auth Policy.

3.7.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/addusers
  • method - POST

3.7.3. Request Body

{
  "guid": "<policy_guid>",
  "users": ["<user_id>"]
}

3.7.4. Response Body

3.7.4.1. Success

{
  "status": "ok"
}

3.7.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.8. Remove Users from a Policy

3.8.1. Description

Remove Users association with an Auth Policy.

3.8.2. Endpoint

  • uri - /box/srv/1.1/admin/authpolicy/removeusers
  • method - POST

3.8.3. Request Body

{
  "guid": "<policy_guid>",
  "users": ["<user_id>"]
}

3.8.4. Response Body

3.8.4.1. Success

{
  "status": "ok"
}

3.8.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

3.9. Authentication Configuration Options

3.9.1. OAuth 2.0

  • clientId - The public key used to identify the client which is requesting the authentication. This key will be passed to, and used by, the client.
  • clientSecret - The secret key assigned by your OAuth provider. This key should never be set to, or stored on the client. It is used for server-to-server communication between the platform and the OAuth Provider.

3.9.1.1. Example:

{
  "clientId": "1234567890.apps.example.com",
  "clientSecret": "Wfv8DQw80hhyaBqnW37x5R23"
}

3.9.2. LDAP

  • authmethod - The authentication method to uses when authenticating against the LDAP server. This can be one of: 'simple', 'DIGEST-MD5', 'CRAM-MD5', or 'GSSAPI'.
  • url - The LDAP Server url for example, "ldap://foo.example.com:389/".
  • dn - The "Distinguished Name" to use. A DN is a sequence of relative distinguished names (RDN) connected by commas - for example, "ou=people,dc=example,dc=com".
  • dn_prefix - The prefix to use for authentication for example, "uid" or "cn".

3.9.2.1. Example:

{
  "authmethod" : "simple",
  "url" : "ldap://foo.example.com:389/",
  "dn": "ou=people,dc=example,dc=com",
  "dn_prefix": "cn",
}

Chapter 4. Cloud Alerts API

4.1. List Alerts

4.1.1. Description

List alerts associated with an app.

4.1.2. Endpoint

  • uri - /box/srv/1.1/cm/eventlog/alert/list
  • method - POST

4.1.3. Request Body

{
  "appGuid":"<24 char String>",
  "env":"<environment>"
}

4.1.4. Response Body

4.1.4.1. Success

{
  "list":[
    {
      "alertName": "AppTerminated",
      "emails": "test@example.com",
      "enabled": true,
      "env": "dev",
      "eventCategories": "APP_STATE",
      "eventNames": "",
      "eventSeverities": "FATAL",
      "guid": "iV5E_ASJcQ_83TOgbDpYbHIp",
      "sysCreated": "2013-06-28 11:09:05",
      "sysModified": "2013-06-28 11:09:05",
      "uid": "ajBTU-_UMtc7ggOCL6MbZRP_"
    },
    ...
  ],
  "status":"ok"
}

4.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

4.2. Create An Alert

4.2.1. Description

Create a new alert for an app.

4.2.2. Endpoint

  • uri - /box/srv/1.1/cm/eventlog/alert/create
  • method - POST

4.2.3. Request Body

{
  "alertName": "<The name of the alert, for example, TestAlert>",
  "emails": "<The recipients of the alert>",
  "enabled": "<true|false>",
  "env": "<environment>",
  "eventCategories": "<any of the event categories, for example, APP_STATE>",
  "eventNames": "<any of the event name, for example, APP_TERMINATED. NOTE, if this is specified as well as the event categories and severities, need to make sure categories and severies are valid for the events>",
  "eventSeverities": "<any of the event severities, for example, FATAL>",
  "uid": "<the guid of the app>"
}

4.2.4. Response Body

4.2.4.1. Success

{
  "alertName": "TestAlert",
  "emails": "test@example.com",
  "enabled": true,
  "env": "dev",
  "eventCategories": "APP_STATE",
  "eventNames": "TERMINATED",
  "eventSeverities": "FATAL",
  "guid": "F9zwTLwAwsaTZP7I45sOtRKJ",
  "sysCreated": "2013-07-04 15:32:54",
  "sysModified": "2013-07-04 15:32:54",
  "uid": "ajBTU-_UMtc7ggOCL6MbZRP_",
  "status":"ok"
}

4.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

4.3. Update An Alert

4.3.1. Description

Update an existing alert for an app.

4.3.2. Endpoint

  • uri - /box/srv/1.1/cm/eventlog/alert/update
  • method - POST

4.3.3. Request Body

{
  "guid":"<The unique id of the alert>",
  "alertName": "<The name of the alert, for example, TestAlert>",
  "emails": "<The recipients of the alert>",
  "enabled": "<true|false>",
  "env": "<environment>",
  "eventCategories": "<any of the event categories, for example, APP_STATE>",
  "eventNames": "<any of the event name, for example, APP_TERMINATED. NOTE, if this is specified as well as the event categories and severities, need to make sure categories and severies are valid for the events>",
  "eventSeverities": "<any of the event severities, for example, FATAL>",
  "uid": "<the guid of the app>"
}

4.3.4. Response Body

4.3.4.1. Success

{
  "alertName": "TestAlert",
  "emails": "test@example.com, test1@example.com",
  "enabled": true,
  "env": "dev",
  "eventCategories": "APP_STATE",
  "eventNames": "TERMINATED",
  "eventSeverities": "FATAL",
  "guid": "F9zwTLwAwsaTZP7I45sOtRKJ",
  "sysCreated": "2013-07-04 15:32:54",
  "sysModified": "2013-07-04 15:32:54",
  "uid": "ajBTU-_UMtc7ggOCL6MbZRP_",
  "status":"ok"
}

4.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

4.4. Delete An Alert

4.4.1. Description

Delete an existing alert for an app.

4.4.2. Endpoint

  • uri - /box/srv/1.1/cm/eventlog/alert/delete
  • method - POST

4.4.3. Request Body

{
  "guid":"<The unique id of the alert>",
  "alertName": "<The name of the alert, for example, TestAlert>",
  "emails": "<The recipients of the alert>",
  "enabled": "<true|false>",
  "env": "<environment>",
  "eventCategories": "<any of the event categories, for example, APP_STATE>",
  "eventNames": "<any of the event name, for example, APP_TERMINATED. NOTE, if this is specified as well as the event categories and severities, need to make sure categories and severies are valid for the events>",
  "eventSeverities": "<any of the event severities, for example, FATAL>",
  "uid": "<the guid of the app>"
}

4.4.4. Response Body

4.4.4.1. Success

{
  "alertName": "TestAlert",
  "emails": "test@example.com, test1@example.com",
  "enabled": true,
  "env": "dev",
  "eventCategories": "APP_STATE",
  "eventNames": "TERMINATED",
  "eventSeverities": "FATAL",
  "guid": "F9zwTLwAwsaTZP7I45sOtRKJ",
  "sysCreated": "2013-07-04 15:32:54",
  "sysModified": "2013-07-04 15:32:54",
  "uid": "ajBTU-_UMtc7ggOCL6MbZRP_",
  "status":"ok"
}

4.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

4.5. List Email Notifications

4.5.1. Description

List all the email notifications that are sent for an app.

4.5.2. Endpoint

  • uri - /box/srv/1.1/cm/eventlog/alert/listAudit
  • method - POST

4.5.3. Request Body

{
  "appGuid":"<24 char String>",
  "env":"<environment>"
}

4.5.4. Response Body

4.5.4.1. Success

{
  "list":[
    {
      "alertName": "AppTerminated",
      "body": "<Email Content>",
      "env": "dev",
      "guid": "RD0O6ByAU_BwJRolaZUhXpl8",
      "recipients": "wei.li@feedhenry.com",
      "subject": "FeedHenry DynoFarm Testing Alert: AppTerminated - EventsTestApp1 (ajBTU-_UMtc7ggOCL6MbZRP_)",
      "sysCreated": "2013-07-04 14:24:23",
      "sysModified": "2013-07-04 14:24:23",
      "uid": "ajBTU-_UMtc7ggOCL6MbZRP_"
    },
    ...
  ],
  "status":"ok"
}

4.5.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Chapter 5. Cloud Events API

5.1. List Events

5.1.1. Description

List events from the event log for an app.

5.1.2. Endpoint

  • uri - /box/srv/1.1/app/eventlog/listEvents
  • method - POST

5.1.3. Request Body

{
  "appGuid":"<24 char String>",
  "env":"<environment>"
}

5.1.4. Response Body

5.1.4.1. Success

{
  "list":[{
    "fields":
      {
        "appGuid": "WaD9Fgzx7yMZRfAvQSwO85el",
        "category": "APP_STATE",
        "dismissed": false,
        "env": "dev",
        "eventDetails": {message:Completed app deployment},
        "message": "Completed app deployment",
        "eventType": "DEPLOYED",
        "guid": "43f-WyNeI4Wlif07-cgpBZVy",
        "message": "Completed app deployment",
        "severity": "INFO",
        "sysCreated": "2013-07-04 14:47:49:034",
        "timestamp": "2013-07-04 14:47:48:977",
        "title": "DEPLOYED",
        "uid": "WaD9Fgzx7yMZRfAvQSwO85el",
        "updatedBy": "System"
      },
      "guid":"rVfKTjq-YoosmcGUJf96f0xx",
      "type":"eventlog_EventLog"
    },
    ...
  ],
  "status":"ok"
}

5.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Chapter 6. Devices API

6.1. List Devices

6.1.1. Description

Get a list of the devices which have autheticated against the platform.

6.1.2. Endpoint

  • uri - /box/srv/1.1/admin/device/list
  • method - POST

6.1.3. Request Body

{}

6.1.4. Response Body

6.1.4.1. Success

{
  "status": "ok",
  "count": <total device count>,
  "list" : [
    {
      "guid": "<device_global_unique_id>",
      "fields": {
        "cuid": "<id_assigned_by_device>",
        "name": "<Friendly_name_of_device>",
        "disabled": true|false, /* Is this device currently blocked from logging in */
        "blacklisted": true|false /* Should data be purged from apps the next time the device authenticates */
      }
    },
    ...
  ]
}

6.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

6.2. Read Device

6.2.1. Description

Read details of a specific device based on its id.

6.2.2. Endpoint

  • uri - /box/srv/1.1/admin/device/read
  • method - POST

6.2.3. Request Body

{
  "cuid": "<id_assigned_by_device>"
}

6.2.4. Response Body

6.2.4.1. Success

{
  "status": "ok",
  "guid": "<global_unique_id>",
  "fields": {
    "cuid": "<id_assigned_by_device>",
    "name": "<Friendly_name_of_device>",
    "disabled": true|false, /* Is this device currently blocked from logging in */
    "blacklisted": true|false /* Should data be purged from apps the next time the device authenticates */
  }
}

6.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

6.3. Update Device

6.3.1. Description

Update details of a specific device based on its guid.

6.3.2. Endpoint

  • uri - /box/srv/1.1/admin/device/update
  • method - POST

6.3.3. Request Body

{
  "cuid": "<id_assigned_by_device>",
  "name": "<Friendly_name_of_device>",  /* Optional */
  "disabled": true|false   /* Optional - DEFAULT=false - Is this device currently blocked from logging in */
  "blacklisted": true|false /* Optional - DEFAULT=false - Should data be purged from apps the next time the device authenticates */
}

6.3.4. Response Body

6.3.4.1. Success

{
  "status": "ok",
  "guid": "<global_unique_id>",
  "fields": {
    "cuid": "<id_assigned_by_device>",
    "name": "<Friendly_name_of_device>",
    "disabled": true|false, /* Is this device currently blocked from logging in */
    "blacklisted": true|false /* Should data be purged from apps the next time the device authenticates */
  }
}

6.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

6.4. List Apps

6.4.1. Description

Return a list of the apps which have autheticated from the specified device id.

6.4.2. Endpoint

  • uri - /box/srv/1.1/admin/device/listapps
  • method - POST

6.4.3. Request Body

{
  "cuid": "<id_assigned_by_device>"
}

6.4.4. Response Body

6.4.4.1. Success

{
  "status": "ok",
  "count": <total apps count>,
  "list" : [
    {
      "guid": <unique app guid>,
      "fields" : {
        "name" : <app name>,
        "description" : <app description>,
      }
    },
    ...
  ]
}

6.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

6.5. List Users

6.5.1. Description

Return a list of the user ids which have autheticated from the specified device id.

6.5.2. Endpoint

  • uri - /box/srv/1.1/admin/device/listusers
  • method - POST

6.5.3. Request Body

{
  "cuid": "<id_assigned_by_device>"
}

6.5.4. Response Body

6.5.4.1. Success

{
  "status": "ok",
  "count": <total users count>,
  "list" : [
    {
      "guid": <unique user guid>,
      "fields" : {
        "userId" : <unique user id>,
        "email" : <user email>
      }
    },
    ...
  ]
}

6.5.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Chapter 7. Endpoint Security API

7.1. getSecureEndpoint

7.1.1. Description

Get the endpoint security data for the specified app and runtime environment.

7.1.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/get
  • method - POST

7.1.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
}

7.1.4. Response Body

7.1.4.1. Success

{
  "status": "ok",
  "appId": "unqiue app identifier",
  "environment": "dev",
  "default": "https", // can be "https" | "appapikey"
  "updatedBy": "user@example.com",
  "updatedWhen": "2012-12-04 12:00",
  "overrides": {
    "<endpoint name 1>": {
      "security" : "https", // can be "https" | "appapikey",
      "updatedBy": "user@example.com",
      "updatedWhen": "2012-12-04 12:00"
    },
    "<endpoint name 2>": {
      "security" : "https", // can be "https" | "appapikey",
      "updatedBy": "user@example.com",
      "updatedWhen": "2012-12-04 12:00"
    },
    // ...
    "<endpoint name n>": {
      "security" : "https", // can be "https" | "appapikey",
      "updatedBy": "user@example.com",
      "updatedWhen": "2012-12-04 12:00"
    }
  }
}

7.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

7.2. setSecureEndpoint

7.2.1. Description

Set the endpoint security data for the specified app and runtime environment.

7.2.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/set
  • method - POST

7.2.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
  // required
  "default": "https", // can be "https" | "appapikey"
  "overrides": {
    "<endpoint name 1>": {
      "security" : "https" // can be "https" | "appapikey"
    },
    "<endpoint name 2>": {
      "security" : "https" // can be "https" | "appapikey"
    },
    // ...
    "<endpoint name n>": {
      "security" : "https" // can be "https" | "appapikey"
    }
  }
}

7.2.4. Response Body

7.2.4.1. Success

{
  "status": "ok"
}

7.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

7.3. setSecureEndpointOverride

7.3.1. Description

Set the endpoint security data for the specified endpoints of an app and runtime environment. This does not change the default security setting for the app.

7.3.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/setOverride
  • method - POST

7.3.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
  // required
  "overrides": {
    "<endpoint name 1>": {
      "security" : "https" // can be "https" | "appapikey"
    },
    "<endpoint name 2>": {
      "security" : "https" // can be "https" | "appapikey"
    },
    // ...
    "<endpoint name n>": {
      "security" : "https" // can be "https" | "appapikey"
    }
  }
}

7.3.4. Response Body

7.3.4.1. Success

{
  "status": "ok"
}

7.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

7.4. removeSecureEndpointOverride

7.4.1. Description

Remove the endpoint security overrides for the specified endpoints of an app and runtime environment. This does not change the default security setting for the app.

7.4.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/removeOverride
  • method - POST

7.4.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
  // required
  "endpoint": "<endpoint name>"
}

7.4.4. Response Body

7.4.4.1. Success

{
  "status": "ok"
}

7.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

7.5. setDefaultSecureEndpoint

7.5.1. Description

Set the default endpoint security for the specified app and runtime environment.

7.5.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/setDefault
  • method - POST

7.5.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
  // required
  "default": "https" // can be "https" | "appapikey"
}

7.5.4. Response Body

7.5.4.1. Success

{
  "status": "ok"
}

7.5.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

7.6. auditLog

7.6.1. Description

Get the Endpoint Security Audit Log data for the specified app and runtime environment.

An optional filter parameter can be specified to filter the returned audit log records by the following criteria:

  • endpoint: the name of an endpoint
  • security: can be https or appapikey
  • updatedBy: a userId
  • event: one of "Set App Security", "Add Endpoint", "Remove Endpoint"
  • limit: number of records to return

7.6.2. Endpoint

  • uri - /box/srv/1.1/app/endpointsecurity/auditLog
  • method - POST

7.6.3. Request Body

{
  // required
  "appId": "unqiue app identifier",
  // required
  "environment": "dev",
  "filter": {
    "endpoint": "<endpoint>",
    "security": "<security>",
    "updatedBy": "<updatedBy>",
    "event": "<event>",
    "limit": "<num records>"
  }
}

7.6.4. Response Body

7.6.4.1. Success

{
  "list": [
    {
      "appId": "O_6sZAYZN4O3KsJtJ2-ssvAf",
      "endpoint": "getDemo",
      "environment": "dev",
      "event": "Add Endpoint",
      "security": "https",
      "updatedBy": "training@example.com",
      "updatedWhen": "Thu Dec 13 12:01:33 UTC 2012",
      "updatedWhenMillis": 1355400093157
    },
    {
      "appId": "O_6sZAYZN4O3KsJtJ2-ssvAf",
      "endpoint": "",
      "environment": "dev",
      "event": "Set App Security",
      "security": "appapikey",
      "updatedBy": "training@example.com",
      "updatedWhen": "Thu Dec 13 11:57:24 UTC 2012",
      "updatedWhenMillis": 1355399844528
    }
  ],
  "status": "ok"
}

7.6.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Chapter 8. User Roles API

8.1. List User’s Roles

8.1.1. Description

List currently logged in user’s roles.

8.1.2. Endpoint

  • uri - /box/srv/1.1/admin/role/list
  • method - POST

8.1.3. Request Body

{}

8.1.4. Response Body

8.1.4.1. Success

{
  "status": "ok",
  "list": ["sub", "dev"]
}

8.1.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

8.2. List User’s Assignable Roles

8.2.1. Description

List currently logged in user’s assignable roles, that is, roles that this user can assign to others.

8.2.2. Endpoint

  • uri - /box/srv/1.1/admin/role/listAssignable
  • method - POST

8.2.3. Request Body

{}

8.2.4. Response Body

8.2.4.1. Success

{
  "status": "ok",
  "list": ["sub", "dev", "devadmin", "analytics", "portaladmin"]
}

8.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Chapter 9. Teams Administration API

The Team Administration API allows Users with the required Permissions to manage teams at different levels of the Platform.

9.1. Requirements

To be able to administer teams the user must authenticate to the specific domain, either by logging in and using the returned cookie, or by using an API key located in the API Key Management section of the User Profile in Studio.

In addition, the logged in user must be a Member of a Team(s) with the following permissions:

  • Reseller

    • Administrator (View & Edit)

OR

  • Customer

    • Administrator (View & Edit)

OR

  • Domain

    • Administrator (View & Edit)

9.2. List Teams

9.2.1. Description

Lists the Teams available to the User based on the Permissions assigned to the Teams that the User is a Member of.

9.2.2. JSON Team Definition

The following JSON Object is the JSON definition of a Team referred to in the response bodies in the Teams Administration Platform API.

{
    //Team Identifier
    "_id": "teamid1234",
    //The Business Objects that the Team has access to at different levels of the
    //Platform.
    "business-objects": {
        "cluster": [
            "<Cluster Name>"
          ],
          "cluster/reseller": [
            "<Reseller Id>"
          ],
          "cluster/reseller/customer": [
            "<Customer Id>"
          ]
    },
    //Array Of Users IDs Assigned to the Team.
    "users": ["userid1234"],
    //Permissiions assigned to the Team at Different Levels of the Platform
    "perms": {
        "cluster/reseller": "read"
        "cluster/reseller/customer": "write"
        "cluster/reseller/customer/domain": "read"
    },
    //Is this Team a Default Team or a User Created Team.
    "defaultTeam": true/false,
    //A User-defined description of a Team.
    "desc": "This is a Team.",
    //The Name of a Team.
    "name": "Team 1",
    //Timestamp of the last time the team was updated.
    "updated": "<1413466521479>",
    //A User-Defined code for the team.
    "code": "Team Code"
}

9.2.3. Endpoint

  • URI: /api/v2/admin/teams
  • Method: GET

9.2.4. Request Body

{}

9.2.5. Response Body

9.2.5.1. Success

// Array of JSON Objects Representing A Team
[
    "<JSON Team Definition>",
    "<JSON Team Definition>"
]

9.2.5.2. Error

{
    "error": {
        "error": "<Error Message>"
    }
}

9.3. List Teams For User

9.3.1. Description

This endpoint lists the Teams that a User with ID userId is a Member of.

9.3.2. Endpoint

  • URI: /api/v2/admin/users/<userId>/teams
  • Method: GET

9.3.3. Request Body

{}

9.3.4. Response Body

9.3.4.1. Success

[
    "<JSON Team Definition>"
]

9.3.4.2. Error

{
    "error": {
        "error": "<Error Message>"
    }
}

9.4. View Team Details

9.4.1. Description

View the full JSON definition for a Team with ID teamId.

9.4.2. Endpoint

  • URI: /api/v2/admin/teams/<teamId>
  • Method: GET

9.4.3. Request Body

{}

9.4.4. Response Body

9.4.4.1. Success

{
    "<JSON Team Definition>"
}

9.4.4.2. Error

{
    "error": {
        "error": "<Error Message>"
    }
}

9.5. Create Team

9.5.1. Description

Create a new User-Defined Team.

9.5.2. Endpoint

  • URI: /api/v2/admin/teams
  • Method: POST

9.5.3. Request Body

{
    //A User-Defined name for the Team.
    "name":"User Team",
    //A User-Definied code for the Team.
    "code":"user-team",
    //A User-Definied description of the team.
    "desc":"A Team Created By A User",
    //Permissions Assigned to the Team at differnent levels of the Platform
    "perms":{
        "cluster": [
            "<Cluster Name>"
        ],
        "cluster/reseller": [
            "<Reseller Id>"
        ],
        "cluster/reseller/customer": [
            "<Customer Id>"
        ]
    },
    //User IDs of Users assigned to the Team.
    "users":[],
    //IDs of Business Objects assigned to the Team at different levels of the Platform.
    "business-objects":{
        "cluster/reseller": "read"
    }
}

9.5.4. Response Body

9.5.4.1. Success

{
    "<JSON Team Definition>"
}

9.5.4.2. Error

{
    "error": {
        "error": "<Error Message>"
    }
}

9.6. Remove Team

9.6.1. Description

Remove a Team with ID teamId.

9.6.2. Endpoint

  • URI: /api/v2/admin/teams/<teamId>
  • Method: DELETE

9.6.3. Request Body

{}

9.6.4. Response Body

9.6.4.1. Success

{
    "JSON Team Definition"
}

9.6.4.2. Error

{
    "error": "<Error Message>"
}

9.7. Add User To A Team

9.7.1. Description

Adding a user with ID userId to a Team with ID teamId

9.7.2. Endpoint

  • URI: /api/v2/admin/teams/<teamId>/user/<userId>
  • Method: POST

9.7.3. Request Body

{
    "guid": "<userId>"
}

9.7.4. Response Body

9.7.4.1. Success

{
    "<JSON Team Definition>"
}

9.7.4.2. Error

{
    "error": "<Error Message>"
}

9.8. Remove User From A Team

9.8.1. Description

Removes a User with ID userId from a Team with ID teamId.

9.8.2. Endpoint

  • URI: /api/v2/admin/teams/<teamId>/user/<userId>
  • Method: DELETE

9.8.3. Request Body

{}

9.8.4. Response Body

9.8.4.1. Success

{
    "<JSON Team Definition>"
}

9.8.4.2. Error

{
    "error": "<Error Message>"
}

Chapter 10. Users Administration API

10.1. Requirements

The user must be a member of one or more teams with the following permissions:

  • Reseller

    • Adminisration (View & Edit)

OR

  • Customer

    • Administration (View & Edit)

For more information on Permissions, see Teams & Collaborations.

10.2. Create User

10.2.1. Description

Create a new user belonging to the specified customer.

10.2.2. Endpoint

  • uri - /box/srv/1.1/admin/user/create
  • method - POST

10.2.3. Request Body

{
  // required
  "username": "unqiue user identifier",
  // optional, default is a randomly generated password
  // Useful to leave as default if User is to be sent an activation email,
  // allowing them to set the password as required upon activation
  "password": "<password>",
  //optional
  "email": "<email>",
  //optional
  "name": "<name>",
  // optional, default is ""
  // comma separated list of roles to assign new user
  "roles": "<roles>",
  // optional, default is ""
  // comma separated list of Auth policy guids to assign new user
  "authpolicies": "<authpolicies>",
  // optional, default is false
  // whether or not an activation invite email should be sent to the user
  "invite": false
}

10.2.4. Response Body

10.2.4.1. Success

{
  "status": "ok",
  "username": "<user_name>"
}

10.2.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.3. Update User

10.3.1. Description

Update an existing user belonging to the specified customer.

10.3.2. Endpoint

  • uri - /box/srv/1.1/admin/user/update
  • method - POST

10.3.3. Request Body

{
  //required, and it can not be changed
  "username": "<unique user identifier>",
  // all fields are optional
  // email address of user to update
  "email": "<email>",
  "name": "<name>",
  "password": "<password>",
  //user won't be able to login if this is set to true
  "enabled": false,
  //if this is set to true, if will return a special flag next time the user logged in,
  //this flag can be used to delete application data on the device
  "blacklisted": false,
  // comma separated list of roles to set for this user for example, 'dev, analytics'
  "roles": "<roles>",
  // comma separated list of Auth policy guids to set for this user
  "authpolicies": "<authpolicies>"
}

10.3.4. Response Body

10.3.4.1. Success

Note

The teams field is only available if Teams is enabled on the Platform. To view the JSON Team Definition, click here.

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": "<roles>",
    //An Array of JSON Team Definitions the User is a Member of.
    //Note: This is only included if Teams is enabled for the User.
     "teams": ["<JSON Team Definition>"]
  }
}

10.3.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.4. Delete User

10.4.1. Description

Delete a user. The user must not have any Apps, otherwise the deletion will fail.

10.4.2. Endpoint

  • uri - /box/srv/1.1/admin/user/delete
  • method - POST

10.4.3. Request Body

{
  // required
  // username of user to delete
  "username": "<unique user identifier>",
}

10.4.4. Response Body

10.4.4.1. Success

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": "<roles>",
    "authpolicies": "<authpolicies>"
  }
}

10.4.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.5. Read User

10.5.1. Description

Read a user information based on the user name.

10.5.2. Endpoint

  • uri - /box/srv/1.1/admin/user/read
  • method - POST

10.5.3. Request Body

{
  // required
  // user name of the user to delete
  "username": "<unique user identifier>",
}

10.5.4. Response Body

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": [<an array of role string>],
    "authpolicies": [<an array of Auth policy guids>],
    "lastLogin" : "<timestamp of last login>"
  }
}

10.5.4.1. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.6. List Users

10.6.1. Description

List users.

10.6.2. Endpoint

  • uri - /box/srv/1.1/admin/user/list
  • method - POST

10.6.3. Request Body

{}

10.6.4. Response Body

10.6.4.1. Success

{
  "status": "ok",
  "count": "<users total count>",
  "list": [{
    "fields": {
      "username": "<unique user identifier>",
      "email": "<email>",
      "name": "<name>",
      "enabled": false,
      "blacklisted": false,
      "authpolicies": [<an array of Auth policy guids>],
      "lastLogin" : "<timestamp of last login>"
    }
  }, ...]
}

10.6.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.7. Enable/Disable User

10.7.1. Description

Enable/disable an existing user.

10.7.2. Endpoint

  • uri - /box/srv/1.1/admin/user/update
  • method - POST

10.7.3. Request Body

{
  // required
  // username of user to update
  "username": "<unique user identifier>",
  "enabled": true/false
}

10.7.4. Response Body

10.7.4.1. Success

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": [<an array of string>],
    "authpolicies": [<an array of Auth policy guids>]
  }
}

10.7.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.8. Add/Remove Roles

10.8.1. Description

Add new roles or remove existing roles of a user.

10.8.2. Endpoint

  • uri - /box/srv/1.1/admin/user/update
  • method - POST

10.8.3. Request Body

{
  // required
  // username of the user to update
  "username": "<unique user identifier>",
  // comma separated list of roles to set for this user for example, 'dev, analytics'
  "roles": "<roles>"
}

10.8.4. Response Body

10.8.4.1. Success

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": [<an array of string>],
    "authpolicies": [<an array of Auth policy guids>]
  }
}

10.8.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.9. Add/Remove Auth Policies

10.9.1. Description

Add new Auth policies to or remove existing Auth policies from a user.

10.9.2. Endpoint

  • uri - /box/srv/1.1/admin/user/update
  • method - POST

10.9.3. Request Body

{
  // required
  // username of the user to update
  "username": "<unique user identifier>",
  // comma separated list of Auth policy guids to set for this user
  "authpolicies": "<authpolicies>"
}

10.9.4. Response Body

10.9.4.1. Success

{
  "status": "ok",
  "fields": {
    "username": "<unique user identifier>",
    "email": "<email>",
    "name": "<name>",
    "enabled": false,
    "blacklisted": false,
    "roles": [<an array of string>],
    "authpolicies": [<an array of Auth policy guids>]
  }
}

10.9.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.10. List a user’s devices

10.10.1. Description

List a user’s devices.

10.10.2. Endpoint

  • uri - /box/srv/1.1/admin/user/listdevices
  • method - POST

10.10.3. Request Body

{
  //required
  "username": "<unique user identifier>"
}

10.10.4. Response Body

10.10.4.1. Success

{
  "status" : "ok",
  "list" : [{
      "guid" : "<device guid>",
      "cuid" : "<device id>",
      "name" : "<devicel lable>",
      "disabled" : "<is the device disabled>",
      "blacklisted" : "<is the device blacklisted>"
    }, ...]
}

10.10.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

10.11. List a user’s store items

10.11.1. Description

List a user’s apps he/she has installed (But the app maybe deleted).

10.11.2. Endpoint

  • uri - /box/srv/1.1/admin/user/liststoreitems
  • method - POST

10.11.3. Request Body

{
  //required
  "username" : "<unique user identifier>"
}

10.11.4. Response Body

10.11.4.1. Success

{
  "status" : "ok",
  "list" : [{
      "guid" : "<app guid>",
      "name" : "<app name>",
      "description" : "<app description>"
    }, ...]
}

10.11.4.2. Error

{
  "status": "error",
  "message": "<error_message>"
}

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.