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

Compare Other Versions

Lexicon Garden

@