space.highport.sites.defs

lexicons.highport.space

Documentation

access object

Which parts of a site require a signed-in reader, and which readers qualify. Absent means nothing is gated and the owner budget decides every path, which suits most sites. This is content policy, not billing: it lives in the record, so it moves with the site and anyone can read it.

Properties

audience union Optional

Who the requireAuth paths are for. Absent means any signed-in reader. Only meaningful alongside requireAuth. The union is closed so that a host which does not recognize an audience rejects the record instead of opening the gate to everyone.

requireAuth array of string Optional

Path prefixes that always require a signed-in reader and always bill that reader, whatever the owner budget says. Matched against the normalized request path, so a prefix covers everything under it. "/" gates the whole site, the same as an owner budget of zero.

maxLength: 64 items
View raw schema
{
  "type": "object",
  "properties": {
    "audience": {
      "refs": [
        "space.highport.sites.defs#spaceMembers"
      ],
      "type": "union",
      "closed": true,
      "description": "Who the requireAuth paths are for. Absent means any signed-in reader. Only meaningful alongside requireAuth. The union is closed so that a host which does not recognize an audience rejects the record instead of opening the gate to everyone."
    },
    "requireAuth": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1024
      },
      "maxLength": 64,
      "description": "Path prefixes that always require a signed-in reader and always bill that reader, whatever the owner budget says. Matched against the normalized request path, so a prefix covers everything under it. \"/\" gates the whole site, the same as an owner budget of zero."
    }
  },
  "description": "Which parts of a site require a signed-in reader, and which readers qualify. Absent means nothing is gated and the owner budget decides every path, which suits most sites. This is content policy, not billing: it lives in the record, so it moves with the site and anyone can read it."
}
manifest object

A bundle of resources keyed by path, using bard's camelCase subset of a MASL bundle-mode document. It is a site's inline source or a tile's content.

Properties

name string Optional

Bundle name. Required for tile content, optional for an inline site source.

maxLength: 1000 bytesmaxGraphemes: 100 graphemes
resources unknown Required

Map of absolute request path (starting with '/') to space.highport.sites.defs#resource, since Lexicon has no map type. Tile content must have a '/' entry, and sites should.

View raw schema
{
  "type": "object",
  "required": [
    "resources"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 1000,
      "description": "Bundle name. Required for tile content, optional for an inline site source.",
      "maxGraphemes": 100
    },
    "resources": {
      "type": "unknown",
      "description": "Map of absolute request path (starting with '/') to space.highport.sites.defs#resource, since Lexicon has no map type. Tile content must have a '/' entry, and sites should."
    }
  },
  "description": "A bundle of resources keyed by path, using bard's camelCase subset of a MASL bundle-mode document. It is a site's inline source or a tile's content."
}
redirect object

No description available.

Properties

from string Required

The request path to match, optionally with a query string. Must match exactly.

maxLength: 2048 bytes
status integer Optional

Redirect status. Defaults to 302.

to string Required

Destination path. Must be an absolute path that exists as a manifest key on this site.

maxLength: 2048 bytes
View raw schema
{
  "type": "object",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 2048,
      "description": "Destination path. Must be an absolute path that exists as a manifest key on this site."
    },
    "from": {
      "type": "string",
      "maxLength": 2048,
      "description": "The request path to match, optionally with a query string. Must match exactly."
    },
    "status": {
      "type": "integer",
      "description": "Redirect status. Defaults to 302.",
      "knownValues": [
        301,
        302,
        307,
        308
      ]
    }
  }
}
resource object

One addressable resource in a manifest.

Properties

contentEncoding string Optional

The encoding the stored blob already has. The origin serves it unchanged, with a matching Content-Encoding header.

Known values: gzip, br, zstd, identity
contentType string Optional

Content type to serve instead of the blob's mimeType.

maxLength: 255 bytes
src blob Required

The blob holding this resource's bytes.

status integer Optional

Response status. Defaults to 200 for manifest entries and 404 for the notFound resource.

View raw schema
{
  "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": "Content type to serve instead of the blob's mimeType."
    },
    "contentEncoding": {
      "type": "string",
      "description": "The encoding the stored blob already has. The origin serves it unchanged, with a matching Content-Encoding header.",
      "knownValues": [
        "gzip",
        "br",
        "zstd",
        "identity"
      ]
    }
  },
  "description": "One addressable resource in a manifest."
}
spaceMembers object

The members of the space this site lives in, as the space's host reports them. Only valid on a site served from a space, and rejected (not ignored) anywhere else. The record lists no members; the space's host is asked.

This object has no properties defined.

View raw schema
{
  "type": "object",
  "properties": {},
  "description": "The members of the space this site lives in, as the space's host reports them. Only valid on a site served from a space, and rejected (not ignored) anywhere else. The record lists no members; the space's host is asked."
}
wellKnown object

Controls the responses bard generates under /.well-known/. Both flags default to true and exist only to turn things off. standardSitePublication is absent unless the publisher sets it.

Properties

atproto boolean Optional

Serve GET /.well-known/atproto-did with the site's owning DID. Default true.

rasl boolean Optional

Serve GET /.well-known/rasl/{cid} for every CID this site references. Default true.

standardSitePublication string at-uri Optional

Serve GET /.well-known/site.standard.publication with this AT-URI. It must name a site.standard.publication record in the site owner's repository whose url host is this domain, or the site record is rejected at indexing. While set, a manifest entry at that path is rejected.

View raw schema
{
  "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."
    },
    "standardSitePublication": {
      "type": "string",
      "format": "at-uri",
      "description": "Serve GET /.well-known/site.standard.publication with this AT-URI. It must name a site.standard.publication record in the site owner's repository whose url host is this domain, or the site record is rejected at indexing. While set, a manifest entry at that path is rejected."
    }
  },
  "description": "Controls the responses bard generates under /.well-known/. Both flags default to true and exist only to turn things off. standardSitePublication is absent unless the publisher sets it."
}

Lexicon Garden

@