dev.knotless.site
Kept in the repository owner's account, keyed by the `key` of the dev.knotless.repo whose site it is, so a repository has one site. Each deploy replaces it, and the blobs only the old one named are freed. Deleting it takes the site down. Readers check every file against its `sha256`.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | knotless.dev |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"file": {
"description": "One file of a site.",
"properties": {
"contentType": {
"description": "The `Content-Type` it is served with, such as `text/html; charset=utf-8`, or else the type its path's extension names. Its blobs are `application/octet-stream` whatever it holds.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"parts": {
"description": "The file, split over blobs in order, each no larger than its PDS takes. None for an empty file.",
"items": {
"ref": "#part",
"type": "ref"
},
"maxLength": 1000,
"type": "array"
},
"path": {
"description": "Where it is served under the site's root: `/`-separated, with no leading `/` and no `.` or `..` segment. `x/index.html` is served at `x/` too.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"sha256": {
"description": "The lowercase hex SHA-256 of the file.",
"maxLength": 64,
"minLength": 64,
"type": "string"
},
"size": {
"description": "Bytes in the file.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"path",
"size",
"sha256",
"parts"
],
"type": "object"
},
"main": {
"description": "Kept in the repository owner's account, keyed by the `key` of the dev.knotless.repo whose site it is, so a repository has one site. Each deploy replaces it, and the blobs only the old one named are freed. Deleting it takes the site down. Readers check every file against its `sha256`.",
"key": "tid",
"record": {
"properties": {
"check": {
"description": "The dev.knotless.check, in its runner's account, of the run that built and deployed it. A reader trusts it only from a runner the repository names, and only once it has passed at `commit`.",
"format": "at-uri",
"type": "string"
},
"commit": {
"description": "The hex object ID of the commit the files were built from.",
"maxLength": 64,
"minLength": 40,
"type": "string"
},
"createdAt": {
"description": "When this deploy was made.",
"format": "datetime",
"type": "string"
},
"fallback": {
"description": "The path of a file in `files` served, with status 200, for a page no file has, as a single-page app routes in the browser: a request asking for `text/html`, or for a path whose last segment has no extension. Taken before `notFound`; anything else missing gets `notFound`.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"files": {
"description": "What the site serves, by distinct paths.",
"items": {
"ref": "#file",
"type": "ref"
},
"maxLength": 2000,
"minLength": 1,
"type": "array"
},
"notFound": {
"description": "The path of a file in `files` served, with status 404, for a path no file has.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"files",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"part": {
"description": "One blob of a file, in order.",
"properties": {
"blob": {
"accept": [
"application/octet-stream"
],
"type": "blob"
}
},
"required": [
"blob"
],
"type": "object"
}
},
"description": "A repository's website: the static files served at `https://<owner>.knotless.page/<repo>/`, and the commit they were built from.",
"id": "dev.knotless.site",
"lexicon": 1
}