Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place
1{ 2 "lexicon": 1, 3 "id": "place.wisp.subfs", 4 "defs": { 5 "main": { 6 "type": "record", 7 "description": "Virtual filesystem manifest within a place.wisp.fs record", 8 "record": { 9 "type": "object", 10 "required": ["root", "createdAt"], 11 "properties": { 12 "root": { "type": "ref", "ref": "#directory" }, 13 "fileCount": { "type": "integer", "minimum": 0, "maximum": 1000 }, 14 "createdAt": { "type": "string", "format": "datetime" } 15 } 16 } 17 }, 18 "file": { 19 "type": "object", 20 "required": ["type", "blob"], 21 "properties": { 22 "type": { "type": "string", "const": "file" }, 23 "blob": { "type": "blob", "accept": ["*/*"], "maxSize": 1000000000, "description": "Content blob ref" }, 24 "encoding": { "type": "string", "enum": ["gzip"], "description": "Content encoding (e.g., gzip for compressed files)" }, 25 "mimeType": { "type": "string", "description": "Original MIME type before compression" }, 26 "base64": { "type": "boolean", "description": "True if blob content is base64-encoded (used to bypass PDS content sniffing)" } 27 } 28 }, 29 "directory": { 30 "type": "object", 31 "required": ["type", "entries"], 32 "properties": { 33 "type": { "type": "string", "const": "directory" }, 34 "entries": { 35 "type": "array", 36 "maxLength": 500, 37 "items": { "type": "ref", "ref": "#entry" } 38 } 39 } 40 }, 41 "entry": { 42 "type": "object", 43 "required": ["name", "node"], 44 "properties": { 45 "name": { "type": "string", "maxLength": 255 }, 46 "node": { "type": "union", "refs": ["#file", "#directory", "#subfs"] } 47 } 48 }, 49 "subfs": { 50 "type": "object", 51 "required": ["type", "subject"], 52 "properties": { 53 "type": { "type": "string", "const": "subfs" }, 54 "subject": { "type": "string", "format": "at-uri", "description": "AT-URI pointing to another place.wisp.subfs record for nested subtrees" } 55 } 56 } 57 } 58 } 59