{
"id": "lol.dids.sites.defs",
"defs": {
"manifest": {
"type": "object",
"required": [
"resources"
],
"properties": {
"name": {
"type": "string",
"maxLength": 1000,
"description": "Bundle name. Required when the manifest is a tile's content; optional for an inline site source.",
"maxGraphemes": 100
},
"resources": {
"type": "unknown",
"description": "Map of absolute request path (beginning with '/') to lol.dids.sites.defs#resource. Lexicon has no map type. A '/' entry is required for tile content and recommended for sites."
}
},
"description": "A path-keyed bundle of resources — bard's camelCase subset of a MASL bundle-mode document. The inline source of a site, or the content of a tile."
},
"redirect": {
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 2048,
"description": "Destination path. Must be an absolute path on this site that exists as a manifest key."
},
"from": {
"type": "string",
"maxLength": 2048,
"description": "The request path to match, optionally including a query string. Matching is exact."
},
"status": {
"type": "integer",
"description": "Redirect status. Defaults to 302.",
"knownValues": [
301,
302,
307,
308
]
}
}
},
"resource": {
"type": "object",
"required": [
"src"
],
"properties": {
"src": {
"type": "blob",
"description": "The blob holding this resource's bytes."
},
"status": {
"type": "integer",
"description": "Response status. Defaults to 200 for manifest entries and 404 for the notFound resource.",
"knownValues": [
200,
404,
410
]
},
"contentType": {
"type": "string",
"maxLength": 255,
"description": "Serve the asset with this content type instead of the blob's mimeType."
},
"contentEncoding": {
"type": "string",
"description": "Declares the stored blob is already encoded with this algorithm; the origin serves it as-is with a matching Content-Encoding header.",
"knownValues": [
"gzip",
"br",
"zstd",
"identity"
]
}
},
"description": "A single addressable resource within a manifest."
},
"wellKnown": {
"type": "object",
"properties": {
"rasl": {
"type": "boolean",
"description": "Serve GET /.well-known/rasl/{cid} for every CID this site references. Default true."
},
"atproto": {
"type": "boolean",
"description": "Serve GET /.well-known/atproto-did with the site's owning DID. Default true."
}
},
"description": "Controls the responses bard synthesizes under /.well-known/. Every field defaults to true; the object exists only to turn things off."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}