at.happyproto.admin.rotateEncryptionKey

Give an instance a new encryption key. The old key stays beside it while HappyView re-seals what it sealed, and is then retired on its own. Staff only.

Repository @happyproto.at did:plc:mo7vq4jbioxwafy5zkcc3eux namespace authority
Details · procedure
Kindprocedure
Authorityadmin.happyproto.at
Indexed
cid bafyreihw35nuy75fezebzcktbp5lyjcgztpddulz3bwexavibkmodr6yxu

Checks

Valid
  • unlimited-string defs.main.input.schema.properties.idNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.input.schema.properties.idempotencyKeyNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Give an instance a new encryption key. The old key stays beside it while HappyView re-seals what it sealed, and is then retired on its own. Staff only.",
      "errors": [
        {
          "description": "This endpoint requires an authenticated caller.",
          "name": "AuthRequired"
        },
        {
          "description": "The caller is not HappyProto staff, or the provisioner does not treat them as staff.",
          "name": "Forbidden"
        },
        {
          "description": "The input was malformed, or the provisioner refused it as malformed.",
          "name": "InvalidRequest"
        },
        {
          "description": "No such instance, or it has been deleted.",
          "name": "NotFound"
        },
        {
          "description": "Passed through from the provisioner.",
          "name": "InvalidSlug"
        },
        {
          "description": "Passed through from the provisioner.",
          "name": "SlugTaken"
        },
        {
          "description": "Passed through from the provisioner.",
          "name": "NotEntitled"
        },
        {
          "description": "Passed through from the provisioner.",
          "name": "InstanceLimit"
        },
        {
          "description": "Passed through from the provisioner.",
          "name": "NoCapacity"
        },
        {
          "description": "Another operation is in progress for the instance.",
          "name": "OperationInProgress"
        },
        {
          "description": "The instance is already part-way through a rotation: its old key is not retired yet.",
          "name": "RotationInProgress"
        },
        {
          "description": "The instance is stopped. Start it first.",
          "name": "InstanceStopped"
        },
        {
          "description": "The instance has not gone live yet.",
          "name": "NotLive"
        },
        {
          "description": "The instance's HappyView cannot report a key rotation. Upgrade it first.",
          "name": "RotationUnsupported"
        },
        {
          "description": "The instance's host did not answer, so the provisioner could not check it.",
          "name": "AgentUnreachable"
        },
        {
          "description": "The instance isn't running what an apply would send it now: it's failed, or a change such as a version bump hasn't been applied. Retry the instance first.",
          "name": "NotSettled"
        },
        {
          "description": "The provisioner is unreachable, not configured, or answered with an error it does not explain to callers.",
          "name": "Upstream"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "id": {
              "description": "The instance's id, a UUID.",
              "type": "string"
            },
            "idempotencyKey": {
              "description": "A UUID. Repeating a request with the same key replays its answer.",
              "type": "string"
            }
          },
          "required": [
            "id",
            "idempotencyKey"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "operation": {
              "ref": "at.happyproto.admin.listInstances#operation",
              "type": "ref"
            }
          },
          "required": [
            "operation"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "at.happyproto.admin.rotateEncryptionKey",
  "lexicon": 1
}