space.highport.sites.defs
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"access": {
"description": "Which parts of a site require a signed-in reader, and which readers count. Absent means none of it: the domain's owner budget decides every path, which is the arrangement almost every site wants. This is content policy rather than a billing arrangement — it says which parts of a publication are premium and to whom, it survives moving to another host, and a reader of the record can see it without asking the host.",
"properties": {
"audience": {
"closed": true,
"description": "Who the paths in requireAuth are for. Absent means any signed-in reader, which is what requireAuth alone has always meant. Meaningful only alongside requireAuth: an audience with nothing gated narrows a gate that is not there. The union is closed because a host that cannot evaluate an audience must refuse the record rather than serve it to everybody — an unrecognized audience that fell open would be a gate quietly removed by a schema it did not understand.",
"refs": [
"space.highport.sites.defs#spaceMembers"
],
"type": "union"
},
"requireAuth": {
"description": "Path prefixes that always require a signed-in reader and always bill that reader, whatever the owner budget says and whether or not it is spent. Matched against the normalized request path, so a prefix covers everything beneath it. A prefix of \"/\" is the whole site and says the same thing as an owner budget of zero.",
"items": {
"maxLength": 1024,
"type": "string"
},
"maxLength": 64,
"type": "array"
}
},
"type": "object"
},
"manifest": {
"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.",
"properties": {
"name": {
"description": "Bundle name. Required when the manifest is a tile's content; optional for an inline site source.",
"maxGraphemes": 100,
"maxLength": 1000,
"type": "string"
},
"resources": {
"description": "Map of absolute request path (beginning with '/') to space.highport.sites.defs#resource. Lexicon has no map type. A '/' entry is required for tile content and recommended for sites.",
"type": "unknown"
}
},
"required": [
"resources"
],
"type": "object"
},
"redirect": {
"properties": {
"from": {
"description": "The request path to match, optionally including a query string. Matching is exact.",
"maxLength": 2048,
"type": "string"
},
"status": {
"description": "Redirect status. Defaults to 302.",
"knownValues": [
301,
302,
307,
308
],
"type": "integer"
},
"to": {
"description": "Destination path. Must be an absolute path on this site that exists as a manifest key.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"resource": {
"description": "A single addressable resource within a manifest.",
"properties": {
"contentEncoding": {
"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"
],
"type": "string"
},
"contentType": {
"description": "Serve the asset with this content type instead of the blob's mimeType.",
"maxLength": 255,
"type": "string"
},
"src": {
"description": "The blob holding this resource's bytes.",
"type": "blob"
},
"status": {
"description": "Response status. Defaults to 200 for manifest entries and 404 for the notFound resource.",
"knownValues": [
200,
404,
410
],
"type": "integer"
}
},
"required": [
"src"
],
"type": "object"
},
"spaceMembers": {
"description": "The members of the space this site is held in, as its host answers for them. Valid only on a site served from a space; a site published to a repository has no space to ask about and the field is refused there rather than ignored. Carries no member list and names no identity: the space's own host is asked, and the answer is not part of the record.",
"properties": {},
"type": "object"
},
"wellKnown": {
"description": "Controls the responses bard synthesizes under /.well-known/. The two flags default to true and exist only to turn things off; standardSitePublication is absent unless a publisher names one.",
"properties": {
"atproto": {
"description": "Serve GET /.well-known/atproto-did with the site's owning DID. Default true.",
"type": "boolean"
},
"rasl": {
"description": "Serve GET /.well-known/rasl/{cid} for every CID this site references. Default true.",
"type": "boolean"
},
"standardSitePublication": {
"description": "Serve GET /.well-known/site.standard.publication with this AT-URI, so the domain proves a standard.site publication. It must name a site.standard.publication record in the site owner's own repository whose url host is this domain; bard checks both when it indexes the site record and refuses the record otherwise. A manifest entry at that path is refused while this is set.",
"format": "at-uri",
"type": "string"
}
},
"type": "object"
}
},
"id": "space.highport.sites.defs",
"lexicon": 1
}
Metadata
- DID
-
did:plc:ciygg5hma4q7ah2kxaszkyob - CID
-
bafyreig2azc6rnz5yfnaqe73kqj3cfnoyr5nskpgzkfrlza67sbtmttave - Indexed At
- 2026-09-15 14:11 UTC
- AT-URI
-
at://did:plc:ciygg5hma4q7ah2kxaszkyob/com.atproto.lexicon.schema/space.highport.sites.defs
Version History (5 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
space.highport.sites.site record
A static website hosted from an AT Protocol repository. The record key is the site's hostname in lowercase IDNA A-label form. A site serves either an inline manifest or a tile bound by strong reference: a space.highport…