# airdress.identity.*

{/* Generated by scripts/generate-event-reference.mjs from https://schemas.airdress.co/operator/events/v1.json (operator v0.1.138).
    Do not edit by hand: run `pnpm generate:event-reference` and commit the result. */}

The events in the `airdress.identity` family. How to read a section, and what
each audience means, is on the [event reference](/events/) page.

## `airdress.identity.key_created`

Owner info Functions

A purpose key was created on first use. Public identifiers only: the key's kid and the file it lives in.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `kid` | string | yes |  |
| `path` | string | yes |  |
| `purpose` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A purpose key was created on first use. Public identifiers only: the key's kid and the file it lives in.",
  "properties": {
    "kid": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "purpose": {
      "type": "string"
    }
  },
  "required": [
    "kid",
    "path",
    "purpose"
  ],
  "title": "IdentityKeyCreated",
  "type": "object"
}
```

</details>

## `airdress.identity.key_rotated`

Owner info Functions

A purpose key was rotated; the previous key stays valid until `previous_not_after` (Unix seconds).

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `kid` | string | yes |  |
| `previous_kid` | string | yes |  |
| `previous_not_after` | integer (uint64) | yes |  |
| `purpose` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A purpose key was rotated; the previous key stays valid until `previous_not_after` (Unix seconds).",
  "properties": {
    "kid": {
      "type": "string"
    },
    "previous_kid": {
      "type": "string"
    },
    "previous_not_after": {
      "format": "uint64",
      "minimum": 0,
      "type": "integer"
    },
    "purpose": {
      "type": "string"
    }
  },
  "required": [
    "kid",
    "previous_kid",
    "previous_not_after",
    "purpose"
  ],
  "title": "IdentityKeyRotated",
  "type": "object"
}
```

</details>

## `airdress.identity.key_unreadable`

Owner warn Functions

A key file the service user cannot use was found at startup. Signed outbound requests and key publishing fail until it is readable.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `error` | string | yes |  |
| `path` | string | yes |  |
| `purpose` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "A key file the service user cannot use was found at startup. Signed outbound requests and key publishing fail until it is readable.",
  "properties": {
    "error": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "purpose": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "path",
    "purpose"
  ],
  "title": "IdentityKeyUnreadable",
  "type": "object"
}
```

</details>

## `airdress.identity.keys_published`

Owner info Functions

This operator publishes its public keys at `path`.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `path` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "This operator publishes its public keys at `path`.",
  "properties": {
    "path": {
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "title": "IdentityKeysPublished",
  "type": "object"
}
```

</details>

## `airdress.identity.keys_unavailable`

Owner warn Functions

The published keys could not be rendered; the route answered 503.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `error` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "The published keys could not be rendered; the route answered 503.",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "title": "IdentityKeysUnavailable",
  "type": "object"
}
```

</details>

## `airdress.identity.transport_certificate_issued`

Owner info Functions

This operator issued itself a new transport certificate.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- **Functions bound to this operator's events** (`source: operator`).

**Versions**

- Version 1: first carried by operator v0.1.138.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `fqdn` | string | yes |  |
| `kid` | string | yes |  |
| `not_after` | integer (uint64) | yes | Unix seconds. |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "This operator issued itself a new transport certificate.",
  "properties": {
    "fqdn": {
      "type": "string"
    },
    "kid": {
      "type": "string"
    },
    "not_after": {
      "description": "Unix seconds.",
      "format": "uint64",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "fqdn",
    "kid",
    "not_after"
  ],
  "title": "TransportCertificateIssued",
  "type": "object"
}
```

</details>

## `airdress.identity.transport_unavailable`

Owner warn

The transport certificate is unavailable; signed outbound requests present none. Key plumbing: not on the bus.

**Audience: owner.** About the airdress as a whole. Only the owner receives it: the owner's devices and the owner's subscriptions.

**Where it goes**

- **The operator's journal**, as one log line at this level, and **the event log**, where `airdress events tail` reads it.
- **Subscriptions** that name it, within its audience.
- Not functions bound to this operator's events: it is kept off that path as too frequent or too internal. A subscription with a function target still receives it.

**Versions**

- Version 1: first carried by operator v0.1.133.

**Data**

| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `error` | string | yes |  |

<details>
<summary>JSON Schema</summary>

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "The transport certificate is unavailable; signed outbound requests present none. Key plumbing: not on the bus.",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "title": "IdentityTransportUnavailable",
  "type": "object"
}
```

</details>