Filesystem Standard
A decentralized file and folder structure. Store files anywhere — local disk, IPFS, S3, a WorldAPI hub — and describe them the same way.
File
{
$standard: 'filesystem',
$version: 1,
$type: 'file',
$name: 'project-brief.pdf',
$mime: 'application/pdf',
$size: 284160,
$hash: 'sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',
$created: '2026-02-10 09:30:00',
$modified: '2026-03-15 14:22:10',
$owner: {
$name: 'Markus',
$url: 'https://example.com/markus'
},
$source: 'ipfs://QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG',
$permissions: {
$public: false,
$read: ['team-alpha'],
$write: ['markus']
}
}
Folder
{
$standard: 'filesystem',
$version: 1,
$type: 'folder',
$name: 'Documents',
$path: '/Documents',
$created: '2026-01-01 00:00:00',
$modified: '2026-03-28 18:45:00',
$owner: {
$name: 'Markus',
$url: 'https://example.com/markus'
},
$children: [
{
$type: 'folder',
$name: 'Projects',
$path: '/Documents/Projects',
$count: 12
},
{
$type: 'file',
$name: 'notes.txt',
$mime: 'text/plain',
$size: 4096,
$hash: 'sha256:a1b2c3...'
}
],
$permissions: {
$public: false,
$read: ['team-alpha'],
$write: ['markus']
}
}
Share
A share link — grants access to a file or folder without requiring authentication.
{
$standard: 'filesystem',
$version: 1,
$type: 'share',
$target: '/Documents/project-brief.pdf',
$token: 'abc123xyz',
$url: 'https://hub.example.com/s/abc123xyz',
$expires: '2026-04-30 23:59:59',
$permissions: {
$read: true,
$write: false
},
$created: '2026-03-29 10:00:00',
$created_by: {
$name: 'Markus'
}
}
Object Types
| $type | Use case |
|---|---|
| file | A single file with content stored elsewhere |
| folder | A directory containing files and subfolders |
| share | A share link granting access to a file or folder |
Standard Properties
| Property | Type | Required | Description |
|---|---|---|---|
| $standard | string | yes | Always 'filesystem' |
| $version | number | yes | Standard version |
| $type | string | yes | file, folder, or share |
| $name | string | yes | File or folder name |
| $path | string | no | Full path from root |
| $mime | string | yes* | MIME type (files only) |
| $size | number | no | Size in bytes |
| $hash | string | no | Content hash (algorithm:hex) |
| $source | string | no | Where the content lives (URL, IPFS CID, S3 URI) |
| $created | string | no | UTC datetime |
| $modified | string | no | UTC datetime of last modification |
| $owner | object | no | Owner with $name and optional $url |
| $children | array | no | Contents of a folder |
| $count | number | no | Number of items in folder (when $children omitted) |
| $permissions | object | no | Access control |
| $target | string | yes* | Path the share points to (shares only) |
| $token | string | yes* | Share token (shares only) |
| $expires | string | no | UTC datetime when share expires |
* Required depends on $type.
Permissions
| Property | Type | Description |
|---|---|---|
| $public | boolean | Accessible to everyone |
| $read | array | boolean | Who can read (user/group IDs, or true/false) |
| $write | array | boolean | Who can write |