space.highport.sites.defs

lexicons.highport.space

Schema Diff

+15 -0

From

CID
bafyreiheh3kw6lo...
Indexed At
2026-09-01 13:02 UTC
View this version

To

CID
bafyreidpbkq4zfs...
Indexed At
2026-09-04 22:52 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 5 non-breaking changes.

Non-Breaking Changes (5)
  • AddedVertex AddedVertex { vertex_id: "space.highport.sites.defs#access" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.sites.defs#access.requireAuth" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.sites.defs#access.requireAuth:items" }
  • AddedEdge AddedEdge { src: "space.highport.sites.defs#access", tgt: "space.highport.sites.defs#access.requireAuth", kind: "prop", name: Some("requireAuth") }
  • AddedEdge AddedEdge { src: "space.highport.sites.defs#access.requireAuth", tgt: "space.highport.sites.defs#access.requireAuth:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "space.highport.sites.defs#access" }
  • AddedVertex { vertex_id: "space.highport.sites.defs#access.requireAuth" }
  • AddedVertex { vertex_id: "space.highport.sites.defs#access.requireAuth:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "space.highport.sites.defs#access", tgt: "space.highport.sites.defs#access.requireAuth", kind: "prop", name: Some("requireAuth") }
  • Non-breaking: AddedEdge { src: "space.highport.sites.defs#access.requireAuth", tgt: "space.highport.sites.defs#access.requireAuth:items", kind: "items", name: None }
1 1
{
2 2
  "id": "space.highport.sites.defs",
3 3
  "defs": {
4 +
    "access": {
5 +
      "type": "object",
6 +
      "properties": {
7 +
        "requireAuth": {
8 +
          "type": "array",
9 +
          "items": {
10 +
            "type": "string",
11 +
            "maxLength": 1024
12 +
          },
13 +
          "maxLength": 64,
14 +
          "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."
15 +
        }
16 +
      },
17 +
      "description": "Which parts of a site require a signed-in reader. 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, it survives moving to another host, and a reader of the record can see it without asking the host."
18 +
    },
4 19
    "manifest": {
5 20
      "type": "object",
6 21
      "required": [
7 22
        "resources"
8 23
      ],
9 24
      "properties": {
10 25
        "name": {
11 26
          "type": "string",
12 27
          "maxLength": 1000,
13 28
          "description": "Bundle name. Required when the manifest is a tile's content; optional for an inline site source.",
14 29
          "maxGraphemes": 100
15 30
        },
16 31
        "resources": {
17 32
          "type": "unknown",
18 33
          "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."
19 34
        }
20 35
      },
21 36
      "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."
22 37
    },
23 38
    "redirect": {
24 39
      "type": "object",
25 40
      "required": [
26 41
        "from",
27 42
        "to"
28 43
      ],
29 44
      "properties": {
30 45
        "to": {
31 46
          "type": "string",
32 47
          "maxLength": 2048,
33 48
          "description": "Destination path. Must be an absolute path on this site that exists as a manifest key."
34 49
        },
35 50
        "from": {
36 51
          "type": "string",
37 52
          "maxLength": 2048,
38 53
          "description": "The request path to match, optionally including a query string. Matching is exact."
39 54
        },
40 55
        "status": {
41 56
          "type": "integer",
42 57
          "description": "Redirect status. Defaults to 302.",
43 58
          "knownValues": [
44 59
            301,
45 60
            302,
46 61
            307,
47 62
            308
48 63
          ]
49 64
        }
50 65
      }
51 66
    },
52 67
    "resource": {
53 68
      "type": "object",
54 69
      "required": [
55 70
        "src"
56 71
      ],
57 72
      "properties": {
58 73
        "src": {
59 74
          "type": "blob",
60 75
          "description": "The blob holding this resource's bytes."
61 76
        },
62 77
        "status": {
63 78
          "type": "integer",
64 79
          "description": "Response status. Defaults to 200 for manifest entries and 404 for the notFound resource.",
65 80
          "knownValues": [
66 81
            200,
67 82
            404,
68 83
            410
69 84
          ]
70 85
        },
71 86
        "contentType": {
72 87
          "type": "string",
73 88
          "maxLength": 255,
74 89
          "description": "Serve the asset with this content type instead of the blob's mimeType."
75 90
        },
76 91
        "contentEncoding": {
77 92
          "type": "string",
78 93
          "description": "Declares the stored blob is already encoded with this algorithm; the origin serves it as-is with a matching Content-Encoding header.",
79 94
          "knownValues": [
80 95
            "gzip",
81 96
            "br",
82 97
            "zstd",
83 98
            "identity"
84 99
          ]
85 100
        }
86 101
      },
87 102
      "description": "A single addressable resource within a manifest."
88 103
    },
89 104
    "wellKnown": {
90 105
      "type": "object",
91 106
      "properties": {
92 107
        "rasl": {
93 108
          "type": "boolean",
94 109
          "description": "Serve GET /.well-known/rasl/{cid} for every CID this site references. Default true."
95 110
        },
96 111
        "atproto": {
97 112
          "type": "boolean",
98 113
          "description": "Serve GET /.well-known/atproto-did with the site's owning DID. Default true."
99 114
        }
100 115
      },
101 116
      "description": "Controls the responses bard synthesizes under /.well-known/. Every field defaults to true; the object exists only to turn things off."
102 117
    }
103 118
  },
104 119
  "$type": "com.atproto.lexicon.schema",
105 120
  "lexicon": 1
106 121
}

Compare Other Versions

Lexicon Garden

@