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

$typeUse case
fileA single file with content stored elsewhere
folderA directory containing files and subfolders
shareA share link granting access to a file or folder

Standard Properties

PropertyTypeRequiredDescription
$standardstringyesAlways 'filesystem'
$versionnumberyesStandard version
$typestringyesfile, folder, or share
$namestringyesFile or folder name
$pathstringnoFull path from root
$mimestringyes*MIME type (files only)
$sizenumbernoSize in bytes
$hashstringnoContent hash (algorithm:hex)
$sourcestringnoWhere the content lives (URL, IPFS CID, S3 URI)
$createdstringnoUTC datetime
$modifiedstringnoUTC datetime of last modification
$ownerobjectnoOwner with $name and optional $url
$childrenarraynoContents of a folder
$countnumbernoNumber of items in folder (when $children omitted)
$permissionsobjectnoAccess control
$targetstringyes*Path the share points to (shares only)
$tokenstringyes*Share token (shares only)
$expiresstringnoUTC datetime when share expires

* Required depends on $type.

Permissions

PropertyTypeDescription
$publicbooleanAccessible to everyone
$readarray | booleanWho can read (user/group IDs, or true/false)
$writearray | booleanWho can write