fyi.opensocial.putSite

lexicons.opensocial.fyi

{
  "$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"
            },
            "files": {
              "items": {
                "ref": "fyi.opensocial.site#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"
            },
            "theme": {
              "ref": "fyi.opensocial.site#theme",
              "type": "ref"
            }
          },
          "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
}

Validate Record

Validate a record against fyi.opensocial.putSite

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:2gqnilpksz2e7faj3bwvo6qc
CID
bafyreidjybl3njw4to7zwjvdsgjkddh46gzc5jvstlykliwozufkyad4ty
Indexed At
2026-10-08 18:10 UTC
AT-URI
at://did:plc:2gqnilpksz2e7faj3bwvo6qc/com.atproto.lexicon.schema/fyi.opensocial.putSite

Referenced Schemas (3)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Upload one of the files a group's site is made of: a page, a stylesheet, a script, an image or a font. Requires group.configure. Binary input like com.atproto.repo.uploadBlob; the group is a parameter because the blob h…

  • Give something in the group's spaces — a record, or a space — a tab on its site, or name its tab again if it has one. Allowed to whoever may write it as the group (a record: its space's credentialScopes) or configur…

  • A group's site, in its members space: channels of tabs, shown one at a time, each a whole HTML document drawn in a sandboxed frame. Authored by the group DID; written through putSite by whoever holds group.configure. An…

Lexicon Garden

@