Nav

REST API: Object Store v2

Anypoint Object Store v2 (OSv2) provides a REST API that lets you get and store key,list values.

An object store works with a single application to temporarily store application data. To authenticate access, you need the client ID and client secret for the application, which Object Store displays in the Runtime Manager in Anypoint Platform.

The maximum number of keys you can obtain in each GET operation is 25.

About Object Store v2 Operations

The ObjectStore connector reads and writes in the key/value format; whereas OSv2 API reads and writes key/lists values.

Note: If an application writes to an object store using the REST interface and reads with the Mule 3 object store connector from the same key, the read can only retrieve the value at element 0 of the list. Therefore, when using the REST API, only use the API for writing and reading content from the Object Store. Alternatively, you can use the API to only write to index 0. This limitation does not apply to the Mule 4 and Anypoint Studio object store connector.

The following table compares the Object Store REST API operations to Object Store connector operations:

OSv2 API OSv2 REST API Operations ObjectStore Connector Operation

POST

  • Object Store:

    • TTL in seconds for the object store - by default the TTL is 2,592,000 seconds (30 days). See How long can data persist in OSv2?.

    • Persistence property.

    • Usage limits for each application or environment, includes options for limiting based on keys or size and how to enforce them.

  • Key and list (item) value.

Store

GET

  • Get keys

  • Get item

  • Get items

  • Get all items

  • Get regions for an organization

Contains + Retrieve + Retrieve all keys + Retrieve and store (Retrieve part)

PUT

  • Put item as String

  • Put item as Number

  • Put item as confirmable String

  • Put store

Dual store + Store

DELETE

  • Remove object store

  • Delete key

  • Delete item

Remove

The Dual Store operation in the Object Store connector consists of two operations where the key and value are stored and then the values reversed. The Dual Store operation acts the same as two OSv2 "Put item as String" calls to accomplish these results:

  1. objectStore.store(key, value);

  2. objectStore.store(value, key);

About the Object Store v2 APIs Workflow

Before deploying an object store application, log into Anypoint Platform > Runtime Manager to reduce the number of allowed workers so that you can add a new application.

Accessing the Object Store 2 API works as follows:

  • Deploy an Application

  • Access the REST API

  • View the App Client ID and Secret

To Deploy an Application

  1. Log into Anypoint Platform.

  2. Click Runtime Manager.

  3. If you have an existing application, click it and click Manage Application.

    If this is your first use, create an application in Anypoint Studio. When done developing, right-click the project name in Package Explorer and click Anypoint Platform > Deploy to Cloud.

  4. In the Runtime Manager Deploying Application menu:

    1. If the application name has a red X, change the name so that the green check mark appears after the name.

      The application name you choose becomes the name users access your application with. For example, if you name your application, mydemo, users can access your application at http://mydemo.cloudhub.io/.

    2. Ignore the Deployment Target and Application File fields - Anypoint Studio fills in this information for you.

    3. If needed, change the Mule Runtime version field from the drop-down list.

    4. If needed, change the Worker size field.

    5. Click Deploy Application.

To Access the REST API

Set up an application like Postman to access the object store. Obtain the access_token value:

  1. Configure the object store access URL to:
    {{osBaseUrl}}/api/v1/organizations/:ORGANIZATION_ID/environments/:environmentId/stores/myTestStoreId/objects

  2. Configure the application with HTTP headers and body for values to store to or read from the object store.

  3. Send the operation to the object store API.

To View the App Client ID and Secret

If you are the organization administrator for your Anypoint Platform account, you can view the client ID and client secret for an app from the Object Store menu.

The client ID and secret are required to authenticate an application for use with the Object Store v2 REST API.

  1. Log into Anypoint Platform > Runtime Manager.

  2. Click an application that has Object Store access and click Manage Application. The app can be running or undeployed.

  3. If the app is not yet associated with Object Store V2, click the checkbox and apply changes.

  4. Click the Object Store menu in the left navigation area, click Show Client Credentials.

  5. Click the Copy to Clipboard icon, and paste the client ID or secret value into your curl application that you use to authenticate the REST API.

To View the Bearer Token

After you have the client ID and secret for your application, you can get the bearer ID using a curl command:


         
      
1
2
3
4
curl -X POST \
  https://anypoint.mulesoft.com/accounts/oauth2/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'client_id=CLIENT_ID_VALUE&client_secret=CLIENT_SECRET_VALUE&grant_type=client_credentials'

Substitute CLIENT_ID_VALUE and CLIENT_SECRET_VALUE for the Client ID and secret.

The output appears as:


         
      
1
2
3
4
{
    "access_token": "42424242-5454-4242-5454-425442544254",
    "token_type": "bearer"
}

Example: Retrieve a List of Object Stores

The following procedures assume you have already created an application and given it access to Object Store v2.

Note: Get the Client ID and Secret as described in To View the App Client ID and Secret.

Get Environment and Organization IDs

In Access Management > Environments, click the environment where the application resides. Copy the environment ID from the URL, for example:

https://anypoint.mulesoft.com/accounts/#/cs/core/environments/edit/badd09f00f004242badd0942

In Access Management > Organization, copy your Organization ID.

View List of Object Stores

Submit this command replacing BEARER_ID with your bearer ID, ORG_ID with your organization ID, and ENV_ID with your environment ID.


          
       
1
2
3
curl -X GET \
> -H 'authorization: bearer BEARER_ID' \
> 'https://object-store-us-east-1.anypoint.mulesoft.com/api/v1/organizations/ORG_ID/environments/ENV_ID/stores'

The output has values similar to:


          
       
1
2
3
4
5
6
{"values":[{"storeId":"APP_demo-aug12_DEFAULT_USER_STORE","encrypted":true,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600},
{"storeId":"APP_objectstore42_DEFAULT_USER_STORE","encrypted":false,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600},
{"storeId":"APP_objectstore42_mypartition","encrypted":false,"permanentOsFlag":false,
  "persistent":true,"defaultTtlSeconds":1209600,"defaultConfirmationTtlSeconds":600}],"nextPageToken":null}