social.grain.unspecced.createPoolGallery

Add a gallery to a group's pool: one permissioned space (social.grain.group) anchored on the group, holding every member's galleries. The gallery, its photos and its items are the author's own records in their own repo, written inside that space — so only the group's members can read them, and they leave with the author.

Repository @grain.social did:plc:e7rftrdyz5e2rw4y6ocszew2 not from the namespace authority
Details · procedure
Kindprocedure
Authorityunspecced.grain.social
Indexed
cid bafyreig637t2napigaeghoptxwgvy6h5vbcz3vqtijuljpl5imquzgewd4

Checks

Valid
  • unlimited-string defs.main.output.schema.properties.spaceNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.photoInput.properties.altNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Add a gallery to a group's pool: one permissioned space (social.grain.group) anchored on the group, holding every member's galleries. The gallery, its photos and its items are the author's own records in their own repo, written inside that space — so only the group's members can read them, and they leave with the author.",
      "errors": [
        {
          "description": "The author's PDS does not serve permissioned spaces.",
          "name": "SpacesUnsupported"
        },
        {
          "description": "The viewer is not a member of this group's pool.",
          "name": "NotAuthorized"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "description": {
              "maxLength": 1000,
              "type": "string"
            },
            "group": {
              "description": "The group whose pool this goes into.",
              "format": "did",
              "type": "string"
            },
            "photos": {
              "items": {
                "ref": "#photoInput",
                "type": "ref"
              },
              "maxLength": 100,
              "type": "array"
            },
            "rkey": {
              "description": "Record key for the gallery, in the author's repo.",
              "maxLength": 64,
              "type": "string"
            },
            "title": {
              "maxLength": 100,
              "type": "string"
            }
          },
          "required": [
            "group",
            "rkey",
            "title"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "space": {
              "description": "The pool space it was written into.",
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "space",
            "uri"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    },
    "photoInput": {
      "properties": {
        "alt": {
          "type": "string"
        },
        "aspectRatio": {
          "ref": "social.grain.defs#aspectRatio",
          "type": "ref"
        },
        "photo": {
          "accept": [
            "image/*"
          ],
          "maxSize": 1000000,
          "type": "blob"
        }
      },
      "required": [
        "photo",
        "aspectRatio"
      ],
      "type": "object"
    }
  },
  "id": "social.grain.unspecced.createPoolGallery",
  "lexicon": 1
}