dev.knotless.compactRepo

Repacks what the repository's refs reach into one dev.knotless.pack and deletes the packs it replaces, as `knotless repo compact` does, with claims a day old. Packs younger than the grace period stay. Its owner can, logged in to this appview's web pages: the appview writes with the session it keeps for that account, which the pages' session cookie names. For an organization's repository, so can an admin who joined it, logged in to the pages or with a service token from their own PDS for this method: the appview's gateway, which the organization delegated its writes to, writes as the organization.

Details · procedure
Kindprocedure
Authorityknotless.dev
Indexed
cid bafyreielrbwrlljcp2i5or6uqky6cd6nhc4uptkygxvhqyj5tasitojezm

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Repacks what the repository's refs reach into one dev.knotless.pack and deletes the packs it replaces, as `knotless repo compact` does, with claims a day old. Packs younger than the grace period stay. Its owner can, logged in to this appview's web pages: the appview writes with the session it keeps for that account, which the pages' session cookie names. For an organization's repository, so can an admin who joined it, logged in to the pages or with a service token from their own PDS for this method: the appview's gateway, which the organization delegated its writes to, writes as the organization.",
      "errors": [
        {
          "description": "No such repository.",
          "name": "NotFound"
        },
        {
          "description": "No account is logged in to the pages, or its session has ended.",
          "name": "AuthenticationRequired"
        },
        {
          "description": "The account logged in is not the repository's owner.",
          "name": "Forbidden"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "repo": {
              "description": "The repository's dev.knotless.repo record, as dev.knotless.getRepo takes it.",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "repo"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "claims": {
              "description": "How many old claims were dropped.",
              "minimum": 0,
              "type": "integer"
            },
            "folded": {
              "description": "How many of them were folded into one.",
              "minimum": 0,
              "type": "integer"
            },
            "packs": {
              "description": "How many packs it had.",
              "minimum": 0,
              "type": "integer"
            },
            "refs": {
              "description": "How many records of deleted refs were dropped, each left with no target by a client from before a delete removed them.",
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "packs",
            "folded",
            "claims"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Folds a repository's packs into one.",
  "id": "dev.knotless.compactRepo",
  "lexicon": 1
}