# io.atcr.tag

> A named tag pointing to a specific manifest digest

- Kind: record
- Record key: any
- Authority: atcr.io
- Lexicon: 1
- Published by [did:web:lexicon.atcr.io](https://lexicon.garden/identity/did:web:lexicon.atcr.io), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:web:lexicon.atcr.io/io.atcr.tag)
- [Schema JSON](https://lexicon.garden/lexicon/did:web:lexicon.atcr.io/io.atcr.tag/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:web:lexicon.atcr.io/io.atcr.tag/analytics)

## Record (`io.atcr.tag`)

Type: record · key any

### Properties

- `manifest` (string · at-uri): AT-URI of the manifest this tag points to (e.g., 'at://did:plc:xyz/io.atcr.manifest/abc123'). Preferred over manifestDigest for new records.
- `manifestDigest` (string): DEPRECATED: Digest of the manifest (e.g., 'sha256:...'). Kept for backward compatibility with old records. New records should use 'manifest' field instead.
  - Constraints: maxLength: 128
- `mediaType` (string): OCI media type of the manifest (e.g., 'application/vnd.oci.image.manifest.v1+json' or 'application/vnd.oci.image.index.v1+json')
  - Constraints: maxLength: 255
- `repository` (string, required): Repository name (e.g., 'myapp'). Scoped to user's DID.
  - Constraints: maxLength: 255
- `tag` (string, required): Tag name (e.g., 'latest', 'v1.0.0', '12-slim')
  - Constraints: maxLength: 128
- `updatedAt` (string · datetime): Timestamp of last tag update

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A named tag pointing to a specific manifest digest",
      "key": "any",
      "record": {
        "properties": {
          "manifest": {
            "description": "AT-URI of the manifest this tag points to (e.g., 'at://did:plc:xyz/io.atcr.manifest/abc123'). Preferred over manifestDigest for new records.",
            "format": "at-uri",
            "type": "string"
          },
          "manifestDigest": {
            "description": "DEPRECATED: Digest of the manifest (e.g., 'sha256:...'). Kept for backward compatibility with old records. New records should use 'manifest' field instead.",
            "maxLength": 128,
            "type": "string"
          },
          "mediaType": {
            "description": "OCI media type of the manifest (e.g., 'application/vnd.oci.image.manifest.v1+json' or 'application/vnd.oci.image.index.v1+json')",
            "maxLength": 255,
            "type": "string"
          },
          "repository": {
            "description": "Repository name (e.g., 'myapp'). Scoped to user's DID.",
            "maxLength": 255,
            "type": "string"
          },
          "tag": {
            "description": "Tag name (e.g., 'latest', 'v1.0.0', '12-slim')",
            "maxLength": 128,
            "type": "string"
          },
          "updatedAt": {
            "description": "Timestamp of last tag update",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "repository",
          "tag"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "io.atcr.tag",
  "lexicon": 1
}
```
