Sanity.io raises $9.3m Series A to redefine content management

Datasets

Managing multiple datasets within a project

A dataset is a collection of JSON documents that can be of different types and have references to each other. You can think of it as a “database”, whereas the document‘s types would constitute “tables”. Using GROQ or GraphQL you can always query and join data across documents within a dataset, but not across them. Typical applications of datasets are:

  • operate with different environments for testing, staging, and production
  • localization and segmentation across all content types
  • different purpose content, but with same user access and billing

A Sanity project can contain any number of datasets, each with separate data. You will be asked to name your first dataset when running sanity init, and must supply the dataset name when running queries, e.g.:

https://<projectId>.api.sanity.io/v1/data/query/<dataset>?query=*

You can also specify which dataset to use with the client libraries and Sanity Studio.

Enterprise Feature

Enterprise users with the custom access control feature can set custom access control rules for each dataset. Users on regular plans can define public or private visiblity mode for their datasets.

Dataset managment

Datasets can be created and managed using the sanity command-line tool, e.g. by running sanity dataset create <name> or sanity dataset list. To see all dataset-related subcommands, run sanity dataset.

Datasets can also be created and deleted in the project's management console, under the "Datasets" tab.

A dataset name may have a minimum length of 1 character, and a maximum length of 20 characters. It may only contain the lowercase characters a-z, the numbers 0-9, the "-" (hyphen) and the "_" (underscore) characters. Also, a dataset name must begin with a letter or number (a-z or 0-9).

Dataset migration

You can export and import content to datasets, as well as performing mutations and patches to documents in them.

Was this article helpful?