The core unit of data of the BAQ network.
{
"author": {
"entity": "maggie.baq.run"
},
"id": "bdfb0c15ebb9491d97f90ec0138f4509",
"created_at": "2023-09-05T09:42:05+00:00",
"version": {
"author": {
"entity": "maggie.baq.run"
},
"hash": "63c5b5c54c014f498ac19d20335f5c18bdc10d089de64489952fcf1f79adcb06",
"created_at": "2023-09-05T09:42:05+00:00"
},
"permissions": {
"read": "public"
},
"type": {
"entity": "types.baq.dev",
"record_id": "bf48729e2b984bb29c67e9da9683cdce",
"version_hash": "2bdcebd2206ae6d1d3fe2c1937d4d3585ca50be8b09bdf8010c90713fd809781"
},
"content": {...}
}
Record
author
EntityLink
id
RecordId
created_at
RecordDate
version
RecordVersion
permissions
RecordPermissions
type
VersionLink
content
optional
no_content
RecordNoContent optional
Record tombstone after deletion.
Mutually exclusive with content
.
These are not part of the original record and are added by the server to provide additional information to the user.
source
enum
Where the record came from.
Possible values from highest to lowest priority:
self
: Created by the server’s user.
resolution
: Record downloaded from a link.
notification
: Received through a notification.
notification_unknown
: From a user with no Standing record.
subscription
: Received through a subscription.
proxy
: Proxied record.
When two values apply, the highest priority takes precedence.
received_at
RecordDate
The record envelope is the same for every record.
The expected content
changes depending on the type
.
A record is uniquely identified by it’s author
and id
.
RecordVersion
Versioning information specific to a given version of the record.
author
EntityLink
hash
VersionHash
created_at
RecordDate
parent_hash
string optional
These are not part of the original record version and are added by the server to provide additional information to the user.
received_at
RecordDate
RecordPermissions
Access control information for the record.
read
“public” | EntityLink[] optional
Read permissions for the record.
"public"
exposes it to everyone, including unauthenticated requests.
Defaults to [{author}]
.
write
EntityLink[] optional
Write permissions for the record.
Must be a subset of read
.
Defaults to [{author}]
.
notify
EntityLink[] optional
Entities to notify about the record.
Must be a subset of read
.
Defaults to every entity in read
.
read
, write
, and notify
, the empty object {}
represents private permissions where only the author
can access the record.RecordNoContent
Record tombstone after deletion.
Includes information that makes it possible to query the tombstone for synchronization purposes.
action
enum
Action that resulted in the record being deleted.
"delete"
"local"
"leave"
links
BonusLink[]
content
prior to deletion.This record has empty permissions and can only be accessed by its author. The content matches the File
record type.
{
"author": {
"entity": "sean.baq.run"
},
"id": "bdfb0c15ebb9491d97f90ec0138f4509",
"created_at": "2023-09-05T09:42:05+00:00",
"version": {
"author": {
"entity": "sean.baq.run"
},
"hash": "63c5b5c54c014f498ac19d20335f5c18bdc10d089de64489952fcf1f79adcb06",
"created_at": "2023-09-05T09:42:05+00:00"
},
"permissions": {},
"type": {
"entity": "types.baq.dev",
"record_id": "bf48729e2b984bb29c67e9da9683cdce",
"version_hash": "2bdcebd2206ae6d1d3fe2c1937d4d3585ca50be8b09bdf8010c90713fd809781"
},
"content": {
"blob": {
"hash": "efeffbbafe60450d8217acec395386932dadb8f146c24a7f91491aa80429d6a5",
"type": "audio/mpeg",
"name": "soundtrack.mp3"
},
"size": 3554267
}
}
This record is shared between the author and one other entity. That entity was notified upon creation of the record. The content matches the Message
record type.
{
"author": {
"entity": "andersen.baq.run"
},
"id": "bdfb0c15ebb9491d97f90ec0138f4509",
"created_at": "2023-09-05T09:42:05+00:00",
"version": {
"author": {
"entity": "andersen.baq.run"
},
"hash": "63c5b5c54c014f498ac19d20335f5c18bdc10d089de64489952fcf1f79adcb06",
"created_at": "2023-09-05T09:42:05+00:00"
},
"permissions": {
"read": [
{"entity": "andersen.baq.run"},
{"entity": "samantha.baq.run"}
]
},
"type": {
"entity": "types.baq.dev",
"record_id": "91c81f5e1f124f55a3483d50845dd8d8",
"version_hash": "863debdf824ab35e1f41fefc507492beeb65841832711fb01dcf3000e5ab83b6"
},
"content": {
"conversation": {
"entity": "andersen.baq.run",
"record_id": "4e5da49d38b44ea7804817bd42e43768"
},
"text": "Hey Sam, how's it going?"
}
}
This record is publicly accessible and can be fetched with a simple unauthenticated HTTP request. The content matches the Article
record type.
{
"author": {
"entity": "samantha.baq.run"
},
"id": "bdfb0c15ebb9491d97f90ec0138f4509",
"created_at": "2023-09-05T09:42:05+00:00",
"version": {
"author": {
"entity": "samantha.baq.run"
},
"hash": "63c5b5c54c014f498ac19d20335f5c18bdc10d089de64489952fcf1f79adcb06",
"created_at": "2023-09-05T09:42:05+00:00"
},
"permissions": {
"read": "public"
},
"type": {
"entity": "types.baq.dev",
"record_id": "6a6d633527b1429db700161c24e356cf",
"version_hash": "03679484a55b476f99b883c81b7cc30b92876f5cd00144b5972f7196e4174977"
},
"content": {
"title": "Federated content in 2024",
"summary": "...",
"content": "...",
"published_at": "2023-09-05T14:42:05+00:00"
}
}
This record was deleted by its author. It remains as a tombstone for synchronization purposes. The content
was replaced by a no_content
object that carries over the links the record previously had. This makes it possible for clients to fetch the tombstone even when filtering by link.
{
"author": {
"entity": "andersen.baq.run"
},
"id": "bdfb0c15ebb9491d97f90ec0138f4509",
"created_at": "2023-09-05T09:42:05+00:00",
"version": {
"author": {
"entity": "andersen.baq.run"
},
"hash": "99f85638200443138dc7a8166aeecb2e87fd5b0ae7fb46d8aaa461c4ef1d88e4",
"parent_hash": "63c5b5c54c014f498ac19d20335f5c18bdc10d089de64489952fcf1f79adcb06",
"created_at": "2023-09-05T09:42:05+00:00"
},
"permissions": {
"read": [
{"entity": "andersen.baq.run"},
{"entity": "samantha.baq.run"}
]
},
"type": {
"entity": "types.baq.dev",
"record_id": "91c81f5e1f124f55a3483d50845dd8d8",
"version_hash": "863debdf824ab35e1f41fefc507492beeb65841832711fb01dcf3000e5ab83b6"
},
"no_content": {
"action": "delete",
"links": [
{
"path": "$['content']['conversation']",
"type": "record",
"link": {
"entity": "andersen.baq.run",
"record_id": "4e5da49d38b44ea7804817bd42e43768"
}
}
]
}
}