io.atcr.hold.notifyManifest

atcr.io

Documentation

Notify hold about a manifest push or pull operation. For pushes: creates layer records and optionally posts to Bluesky. For pulls: just increments stats. Always increments pull/push counts.

main procedure

Notify hold about a manifest push or pull operation. For pushes: creates layer records and optionally posts to Bluesky. For pulls: just increments stats. Always increments pull/push counts.

Input

Encodingapplication/json
manifestDigest string Required

Manifest digest for building layer record AT-URIs

maxLength: 128 bytes
operation string Optional

Operation type (defaults to 'push' for backward compatibility)

maxLength: 16 bytes
repository string Required

Image repository name

maxLength: 256 bytes
tag string Optional

Image tag (optional, required for Bluesky posts)

maxLength: 128 bytes
userDid stringdid Required

DID of the image owner

Output

Encodingapplication/json
layersCreated integer Optional

Number of layer records created (push only)

operation string Required

The operation that was performed ('push' or 'pull')

postCreated boolean Optional

Whether a Bluesky post was created (push only)

postUri stringat-uri Optional

AT-URI of the created Bluesky post (if postCreated is true)

statsUpdated boolean Required

Whether stats were successfully updated

success boolean Required

Whether the operation completed successfully

Errors

InvalidOperation
UserMismatch
QuotaExceeded
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
{
  "type": "procedure",
  "input": {
    "schema": {
      "type": "object",
      "required": [
        "repository",
        "userDid",
        "manifestDigest",
        "manifest"
      ],
      "properties": {
        "tag": {
          "type": "string",
          "maxLength": 128,
          "description": "Image tag (optional, required for Bluesky posts)"
        },
        "userDid": {
          "type": "string",
          "format": "did",
          "description": "DID of the image owner"
        },
        "manifest": {
          "ref": "#manifestInfo",
          "type": "ref"
        },
        "operation": {
          "type": "string",
          "default": "push",
          "maxLength": 16,
          "description": "Operation type (defaults to 'push' for backward compatibility)",
          "knownValues": [
            "push",
            "pull"
          ]
        },
        "repository": {
          "type": "string",
          "maxLength": 256,
          "description": "Image repository name"
        },
        "manifestDigest": {
          "type": "string",
          "maxLength": 128,
          "description": "Manifest digest for building layer record AT-URIs"
        }
      }
    },
    "encoding": "application/json"
  },
  "errors": [
    {
      "name": "InvalidOperation"
    },
    {
      "name": "UserMismatch"
    },
    {
      "name": "QuotaExceeded"
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "success",
        "operation",
        "statsUpdated"
      ],
      "properties": {
        "postUri": {
          "type": "string",
          "format": "at-uri",
          "description": "AT-URI of the created Bluesky post (if postCreated is true)"
        },
        "success": {
          "type": "boolean",
          "description": "Whether the operation completed successfully"
        },
        "operation": {
          "type": "string",
          "maxLength": 16,
          "description": "The operation that was performed ('push' or 'pull')"
        },
        "postCreated": {
          "type": "boolean",
          "description": "Whether a Bluesky post was created (push only)"
        },
        "statsUpdated": {
          "type": "boolean",
          "description": "Whether stats were successfully updated"
        },
        "layersCreated": {
          "type": "integer",
          "description": "Number of layer records created (push only)"
        }
      }
    },
    "encoding": "application/json"
  },
  "description": "Notify hold about a manifest push or pull operation. For pushes: creates layer records and optionally posts to Bluesky. For pulls: just increments stats. Always increments pull/push counts."
}
blobInfo object

No description available.

Properties

digest string Optional

No description available.

maxLength: 128 bytes
size integer Optional

No description available.

View raw schema
{
  "type": "object",
  "properties": {
    "size": {
      "type": "integer"
    },
    "digest": {
      "type": "string",
      "maxLength": 128
    }
  }
}
childManifestInfo object

No description available.

Properties

digest string Optional

No description available.

maxLength: 128 bytes
mediaType string Optional

No description available.

maxLength: 256 bytes
size integer Optional

No description available.

View raw schema
{
  "type": "object",
  "properties": {
    "size": {
      "type": "integer"
    },
    "digest": {
      "type": "string",
      "maxLength": 128
    },
    "platform": {
      "ref": "#platformInfo",
      "type": "ref"
    },
    "mediaType": {
      "type": "string",
      "maxLength": 256
    }
  }
}
layerInfo object

No description available.

Properties

digest string Optional

No description available.

maxLength: 128 bytes
mediaType string Optional

No description available.

maxLength: 256 bytes
size integer Optional

No description available.

View raw schema
{
  "type": "object",
  "properties": {
    "size": {
      "type": "integer"
    },
    "digest": {
      "type": "string",
      "maxLength": 128
    },
    "mediaType": {
      "type": "string",
      "maxLength": 256
    }
  }
}
manifestInfo object

OCI manifest information

Properties

config ref #blobInfo Optional

No description available.

layers array of ref#layerInfo Optional

No description available.

mediaType string Optional

OCI media type

maxLength: 256 bytes
View raw schema
{
  "type": "object",
  "properties": {
    "config": {
      "ref": "#blobInfo",
      "type": "ref"
    },
    "layers": {
      "type": "array",
      "items": {
        "ref": "#layerInfo",
        "type": "ref"
      }
    },
    "manifests": {
      "type": "array",
      "items": {
        "ref": "#childManifestInfo",
        "type": "ref"
      },
      "description": "Child manifests for multi-arch images"
    },
    "mediaType": {
      "type": "string",
      "maxLength": 256,
      "description": "OCI media type"
    }
  },
  "description": "OCI manifest information"
}
platformInfo object

No description available.

Properties

architecture string Optional

No description available.

maxLength: 64 bytes
os string Optional

No description available.

maxLength: 64 bytes
View raw schema
{
  "type": "object",
  "properties": {
    "os": {
      "type": "string",
      "maxLength": 64
    },
    "architecture": {
      "type": "string",
      "maxLength": 64
    }
  }
}

Lexicon Garden

@