To help you build a New Relic application, we provide you with the New Relic One SDK. On this page, you’ll learn how to use NerdStorage SDK components.
Use NerdStorage in your apps
NerdStorage is used to store and retrieve simple sets of data, including users' configuration settings and preferences (like favorites), or any other small data sets. This storage is unique per Nerdpack, and can't be shared with any other Nerdpack.
NerdStorage can be classified into three categories:
- User storage: Data that is attached to a particular user. If you’re authenticated as the user the data is attached to, you can read it and write it.
- Account storage: Data that is attached to a particular account. If you’re authenticated and can access the account, you can read and write to account scoped NerdStorage. Visibility of account data is also determined by master/subaccount rules: If a user has access to the master account, then they also have access to data in all subaccounts.
- Entity storage: Data that is attached to a particular entity. If you can see the corresponding entity, you can read and write data on that entity.
Data model
You can imagine NerdStorage as a nested key-value map. Data is inside documents, which are nested inside collections:
{ "YourNerdpackUuid": { "collection-1": { "document-1-of-collection-1": "{\"lastNumber\": 42, \"another\": [1]}", "document-2-of-collection-1": "\"userToken\"" // ... }, "another-collection": { "fruits": "[\"pear\", \"apple\"]" // ... } // ... }}
Each NerdStorage level has different properties and purpose:
- Collections: From a Nerdpack, you can create multiple collections by naming each of them. Inside a collection you can put one or more documents. Think of a collection as key-value storage, where each document is a key-value pair.
- Documents: A document is formed by an identifier (
documentId
) and a set of data associated with it. - Data associated with a document: NerdStorage accepts any sort of data associated to a
documentId
. Query and mutation components that are provided work by serializing and deserializing JSON.
Caution
NerdStorage is not encrypted. Do not store secrets, API keys, personal access tokens or license keys here.
Limits
- A Nerdpack can hold up to 1,000 collections and 10,000 documents, plus storage type.
- A collection can hold up to 1,500 documents, plus storage type.
- Each document can have a maximum length of 1024 KiB when serialized.
Data access
To access NerdStorage, you can run NerdGraph queries, or use the provided storage queries.
Depending on which storage you want to access, you can use a different set of SDK components:
- User access:
UserStorageQuery
andUserStorageMutation
- Account access:
AccountStorageQuery
andAccountStorageMutation
- Entity access:
EntityStorageQuery
andEntityStorageMutation
Each of these components can operate declaratively (for example, as part of your React rendering methods) or imperatively (by using the static methods for query
and mutation
). For more information on this, see Data querying and mutations.
Permissions for working with NerdStorage
In order to persist changes on NerdStorage, such as creating, updating, and deleting account and entity storage, you must have a user role with permission to persist changes.