Access control for a record.
const permissions = {
read: [{entity: "julie.baq.run"}],
};
RecordPermissions
public
RecordPermissions
Public permissions preset.
{"read": "public"}
private
RecordPermissions
readonly(author: Entity, others: Entity[])
: RecordPermissions
toReadEntities(permissions: RecordPermissions)
: Entity[]
read
“public” | EntityLink[] optional
Read permissions for the record.
Accepts a special value of "public"
.
Defaults to the record’s author.
write
EntityLink[] optional
Write (update / delete) permissions for the record.
Every entity in write
should be included in read
.
Default to the record’s author.
notify
EntityLink[] optional
Entities to notify.
Defaults to the entities in read
.
For common use-cases, presets are provided on the RecordPermissions
type. Here we create a public Post record visible to all.
import {RecordPermissions} from "@baqhub/sdk";
import {PostRecord} from "./baq/postRecord.js";
const postRecord = PostRecord.new(
"julie.baq.run",
{text: "Hi everyone!"},
{permissions: RecordPermissions.public}
);
For more advanced situations, permissions can be crafted by hand to fit the need. Here we create a Task record with read access for the author and more two people, but we only notify one of them.
import {TaskRecord} from "./baq/taskRecord.js";
const taskRecord = TaskRecord.new(
"paul.baq.run",
{
title: "Make new BAQ app!",
completed: false,
},
{
read: [
{entity: "paul.baq.run"},
{entity: "henry.baq.run"},
{entity: "sean.baq.run"},
],
notify: [{entity: "henry.baq.run"}],
}
);