Data Schema
WeaveDB utilizes JSON Schema (opens in a new tab) to validate incoming data.
It's essential to set a precise data schema and access control rules to each collection as otherwise WeaveDB is permissionless and anyone can put arbitrary data.
To validate write data, WeaveDB uses jsonschema (opens in a new tab) with a restriction that you cannot pass validator functions.
In this example, we consider bookmarks
as the name of our collection.
Set a schema to a collection:
const schema = {
type: "object",
required: ["article_id", "date", "user_address"],
properties: {
article_id: {
type: "string",
},
user_address: {
type: "string",
},
date: {
type: "number",
},
},
}
await db.setSchema(schema, "bookmarks")
💡
In the following sample code, db
represents the state variable of your database instance. For reference, see Initialize WeaveDB
Get the schema of a collection:
await db.getSchema("bookmarks")
Remove a schema from a collection:
await db.removeSchema(schema, "bookmarks")