Vault Entities
These entities are used by the Vault adapter functions and encapsulate data objects used by Epicenter Vault API.
Types
VaultItems
Represents the default shape of items stored inside a vault.
Note
This type serves as the base item structure for the Vault<I> and Items<I> interfaces. When no custom item type is provided, vaults and item‑mutation operations default to using VaultItems.
Definition
export type VaultItems = Record<string, unknown>;
Description
- A flexible, untyped container for arbitrary data stored within a vault.
- Keys are always strings.
- Values may be of any type (
unknown), allowing vaults to store heterogeneous data.
Interfaces
Items
The Items interface describes an object that contains modifications for vault data items. Extends VaultItems.
Interface definition
export interface Items<I extends object = VaultItems> {
set?: Partial<I>;
push?: Partial<I>;
pop?: Partial<I>;
}
Properties
set(Partial<I>, optional): Key-value pairs.- Each key is a
string, and values can can be null or any valid JSON data type. - Use this property to set or delete items in a vault. To delete an item, add the item's key with a
nullvalue.
- Each key is a
push(Partial<I>, optional):: Key-value pairs.- Each key is a
string, and values can can be null or any valid JSON data type. - Use this property to add data to an array in a vault.
- Each key is a
pop(Partial<I>, optional): Key-value pairs. Use this property to delete data from an array in a vault.
tip
The key string can be dot-notated. In this case the value is a nested JSON object.
Vault
The Vault<I extends object = VaultItems> interface defines the structure of a secure vault object.
Properties
created(string): Timestamp indicating when the vault was created.lastUpdated(string): Timestamp indicating the last time the vault was updated.mutationKey(string): This value changes every time the vault is updated. Use it to ensure you are updating the latest copy of the vault's data. For details, read Updating the data.address(Address): Generic address information associated with the vault.scope({ userKey?: string } & GenericScope): The scope of the vault, including an optionaluserKeyand additional fields from theGenericScopeinterface.name(string): Human-readable name of the vault. Must be unique for the scope.permit(Permit): The permit of the vault.vaultKey(string): Unique key identifying the vault.expiration(string): Date and time string indicating when the vault will be deleted. Can benull.items?(I, optional): Items to be manipulated in the vault as defined by theItemsinterface.changed?(boolean, optional): Indicates whether the vault has been modified by the last update.