at.happyproto.admin.createSpaces

happyproto.at

Documentation

Create HappyProto's admin and customers spaces under HAPPYPROTO_DID, member-only, keeping either that already exists, and add each of staff to the admin space with write access, skipping existing members. Idempotent: a second call creates nothing and adds no one. Only HappyProto's own account may call it.

main procedure

Create HappyProto's admin and customers spaces under HAPPYPROTO_DID, member-only, keeping either that already exists, and add each of staff to the admin space with write access, skipping existing members. Idempotent: a second call creates nothing and adds no one. Only HappyProto's own account may call it.

Input

Encodingapplication/json
staff array Optional

DIDs to add to the admin space with write access. A DID listed twice is added once. A DID that is already a member is left at its current access (a read-only member is not upgraded) and is not listed in staffAdded.

maxLength: 50 items

Output

Encodingapplication/json
adminSpace ref#space Required

No description available.

customersSpace ref#space Required

No description available.

staffAdded array Required

The DIDs this call added to the admin space; members already present are left out.

Errors

Forbidden The caller is not HAPPYPROTO_DID, is signed out, or HAPPYPROTO_DID is unset or not a DID.
InvalidRequest staff is not a list of at most 50 DIDs.
Upstream A space could not be read, created or changed, or the instance anchors new spaces under its own DID rather than HAPPYPROTO_DID. A failure part-way through staff names, in its message, the DIDs already added. Retrying is safe.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "description": "Create HappyProto's admin and customers spaces under HAPPYPROTO_DID, member-only, keeping either that already exists, and add each of staff to the admin space with write access, skipping existing members. Idempotent: a second call creates nothing and adds no one. Only HappyProto's own account may call it.",
  "errors": [
    {
      "description": "The caller is not HAPPYPROTO_DID, is signed out, or HAPPYPROTO_DID is unset or not a DID.",
      "name": "Forbidden"
    },
    {
      "description": "staff is not a list of at most 50 DIDs.",
      "name": "InvalidRequest"
    },
    {
      "description": "A space could not be read, created or changed, or the instance anchors new spaces under its own DID rather than HAPPYPROTO_DID. A failure part-way through staff names, in its message, the DIDs already added. Retrying is safe.",
      "name": "Upstream"
    }
  ],
  "input": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "staff": {
          "description": "DIDs to add to the admin space with write access. A DID listed twice is added once. A DID that is already a member is left at its current access (a read-only member is not upgraded) and is not listed in staffAdded.",
          "items": {
            "format": "did",
            "type": "string"
          },
          "maxLength": 50,
          "type": "array"
        }
      },
      "type": "object"
    }
  },
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "adminSpace": {
          "ref": "#space",
          "type": "ref"
        },
        "customersSpace": {
          "ref": "#space",
          "type": "ref"
        },
        "staffAdded": {
          "description": "The DIDs this call added to the admin space; members already present are left out.",
          "items": {
            "format": "did",
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "adminSpace",
        "customersSpace",
        "staffAdded"
      ],
      "type": "object"
    }
  },
  "type": "procedure"
}
space object

No description available.

Properties

created boolean Required

Whether this call created the space; false when it already existed.

uri string uri Required

The space's at:// uri, at://<HAPPYPROTO_DID>/space/<type>/main. Not format at-uri: that format allows a collection NSID and a record key at most, and a space uri has four path segments and `space` where the NSID would be, so @atproto/lexicon refuses it.

View raw schema
{
  "properties": {
    "created": {
      "description": "Whether this call created the space; false when it already existed.",
      "type": "boolean"
    },
    "uri": {
      "description": "The space's at:// uri, at://<HAPPYPROTO_DID>/space/<type>/main. Not format at-uri: that format allows a collection NSID and a record key at most, and a space uri has four path segments and `space` where the NSID would be, so @atproto/lexicon refuses it.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "uri",
    "created"
  ],
  "type": "object"
}

Lexicon Garden

@