# dev.knotless.describeServer

> Published by [lexicons.knotless.dev](https://lexicon.garden/identity/did:plc:yqsg7znbbhfmj3a2nrpnaerk)

✓ This is the authoritative definition for this NSID.

## Description

What an appview offers the clients that use it.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.describeServer)
- [Documentation](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.describeServer/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.describeServer/examples)

## Definitions

### `dev.knotless.describeServer#client`

**Type**: `object`

The oldest version of knotless's client the appview asks clients to be, set when an older one harms what it touches. A client older than it refuses to run, but to upgrade, until it is upgraded. The newest release is at the appview's /releases/latest.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `minimum` | `string` | Yes | A version, as Semantic Versioning 2.0 writes one. |
| `reason` | `string` | No | Why it asks for it, said to whoever runs an older one. |

### `dev.knotless.describeServer`

**Type**: `query`

What this appview offers the clients that use it: the runners a new public repository names unless its owner names others, and the oldest client version it asks for. No authentication; responses are not personalized.

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `client` | `ref` → `#client` | No | The oldest client version this appview asks for. Absent, it asks for none. |
| `runners` | `array` | No | The accounts a new public repository's record names in `runners` unless its owner names others: a runner this appview's operator keeps for whoever names it. Absent or empty, it names none. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "client": {
      "description": "The oldest version of knotless's client the appview asks clients to be, set when an older one harms what it touches. A client older than it refuses to run, but to upgrade, until it is upgraded. The newest release is at the appview's /releases/latest.",
      "properties": {
        "minimum": {
          "description": "A version, as Semantic Versioning 2.0 writes one.",
          "type": "string"
        },
        "reason": {
          "description": "Why it asks for it, said to whoever runs an older one.",
          "type": "string"
        }
      },
      "required": [
        "minimum"
      ],
      "type": "object"
    },
    "main": {
      "description": "What this appview offers the clients that use it: the runners a new public repository names unless its owner names others, and the oldest client version it asks for. No authentication; responses are not personalized.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "client": {
              "description": "The oldest client version this appview asks for. Absent, it asks for none.",
              "ref": "#client",
              "type": "ref"
            },
            "runners": {
              "description": "The accounts a new public repository's record names in `runners` unless its owner names others: a runner this appview's operator keeps for whoever names it. Absent or empty, it names none.",
              "items": {
                "ref": "dev.knotless.repo#runner",
                "type": "ref"
              },
              "maxLength": 32,
              "type": "array"
            }
          },
          "type": "object"
        }
      },
      "type": "query"
    }
  },
  "description": "What an appview offers the clients that use it.",
  "id": "dev.knotless.describeServer",
  "lexicon": 1
}
```
