# technology.agave.blockVersion

> Published by [catalogue.agave.technology](https://lexicon.garden/identity/did:plc:jgjchylj237en76b3hi2xu4g)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:jgjchylj237en76b3hi2xu4g/technology.agave.blockVersion)
- [Documentation](https://lexicon.garden/lexicon/did:plc:jgjchylj237en76b3hi2xu4g/technology.agave.blockVersion/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:jgjchylj237en76b3hi2xu4g/technology.agave.blockVersion/examples)

## Definitions

### `technology.agave.blockVersion`

**Type**: `record`

One published version of an agave block or connector. A version never changes: the next version is a new record, and deleting this one withdraws it.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `archive` | `blob` | Yes | The directory as `git archive --format=tar <tree>` writes it: paths relative to the directory, regular files and directories only. |
| `createdAt` | `string` (datetime) | Yes |  |
| `kind` | `string` | Yes | A block carries block.json and block.nix, a connector connector.json and SKILL.md. A slug keeps its kind. |
| `manifest` | `string` | Yes | The text of the archive's block.json or connector.json, byte for byte. |
| `slug` | `string` | Yes | The directory's name in the publisher's fleet: a lowercase letter, then up to 39 lowercase letters, digits and dashes. Equals the manifest's name. |
| `tree` | `string` | Yes | The directory's git tree id in lowercase hex: 40 digits for SHA-1, 64 for SHA-256. The archive's files hash to it. |
| `version` | `integer` | Yes | Equals the manifest's version. Every version of a slug is newer than the ones before it, withdrawn ones included. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One published version of an agave block or connector. A version never changes: the next version is a new record, and deleting this one withdraws it.",
      "key": "tid",
      "record": {
        "properties": {
          "archive": {
            "accept": [
              "application/x-tar"
            ],
            "description": "The directory as `git archive --format=tar <tree>` writes it: paths relative to the directory, regular files and directories only.",
            "maxSize": 2097152,
            "type": "blob"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "kind": {
            "description": "A block carries block.json and block.nix, a connector connector.json and SKILL.md. A slug keeps its kind.",
            "knownValues": [
              "block",
              "connector"
            ],
            "type": "string"
          },
          "manifest": {
            "description": "The text of the archive's block.json or connector.json, byte for byte.",
            "maxLength": 65536,
            "type": "string"
          },
          "slug": {
            "description": "The directory's name in the publisher's fleet: a lowercase letter, then up to 39 lowercase letters, digits and dashes. Equals the manifest's name.",
            "maxLength": 40,
            "minLength": 1,
            "type": "string"
          },
          "tree": {
            "description": "The directory's git tree id in lowercase hex: 40 digits for SHA-1, 64 for SHA-256. The archive's files hash to it.",
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "version": {
            "description": "Equals the manifest's version. Every version of a slug is newer than the ones before it, withdrawn ones included.",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "slug",
          "version",
          "kind",
          "archive",
          "tree",
          "manifest",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "technology.agave.blockVersion",
  "lexicon": 1
}
```
