fyi.opensocial.putSite
Replace the group's site. Requires group.configure. Its files are uploaded first, with uploadSiteFile. Fields are inlined rather than referencing fyi.opensocial.site, because a record def cannot be used as an input object.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | opensocial.fyi |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Replace the group's site. Requires group.configure. Its files are uploaded first, with uploadSiteFile. Fields are inlined rather than referencing fyi.opensocial.site, because a record def cannot be used as an input object.",
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"channels": {
"items": {
"ref": "fyi.opensocial.site#channel",
"type": "ref"
},
"maxLength": 50,
"type": "array"
},
"draft": {
"description": "Into the caller's draft of the site rather than the live site: it's published with the rest of the draft.",
"type": "boolean"
},
"files": {
"items": {
"ref": "fyi.opensocial.defs#file",
"type": "ref"
},
"maxLength": 500,
"type": "array"
},
"group": {
"description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",
"format": "did",
"type": "string"
},
"keepAboutTabs": {
"description": "Keep the tabs the site has now about one thing each (those with about), in the channels still there: for a site published from a folder of files, which doesn't have them.",
"type": "boolean"
},
"lexicons": {
"description": "Lexicon documents of the group's own, for the kinds of record its pages make up that nothing on the network defines. Each is named under the group's handle, reversed (kitchen-sink.opensocial.fyi defines fyi.opensocial.kitchen-sink.task). The host keeps them, checks records of those kinds against them, and lets one change only in ways every record already written still fits. Ones left out are kept as they were.",
"items": {
"type": "unknown"
},
"maxLength": 100,
"type": "array"
},
"menu": {
"description": "The public site's menu, in order, by its pages' paths: a page not listed comes after, in the order its tab is.",
"items": {
"maxLength": 200,
"type": "string"
},
"maxLength": 50,
"type": "array"
},
"theme": {
"ref": "fyi.opensocial.site#theme",
"type": "ref"
},
"updates": {
"description": "How long a new version of a template its tabs are made from waits before it comes in by itself: fyi.opensocial.site's updates. Left out, it stays as it is.",
"knownValues": [
"now",
"day",
"week",
"ask"
],
"maxLength": 16,
"type": "string"
}
},
"required": [
"group",
"channels",
"files"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"format": "cid",
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"cid"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "fyi.opensocial.putSite",
"lexicon": 1
}