Factory Pubkey Rotated Payload
Payload emitted when a serial's factory Ed25519 attestation public key — the BLE/attestation trust anchor — is replaced. Rotation requires the permit stamped by a factory reset or Ops retire; first uploads and idempotent same-key re-uploads do not emit this event (PLAT-449).
| $id | https://schemas.texecom-prod.com/v2/events/payload/service/identity/factory-pubkey/rotated/v1.0.0.json |
| $schema | http://json-schema.org/draft-07/schema |
Properties
serial
| Description |
Serial whose attestation key changed. |
| Type | String |
| Required |
Yes |
previousKey
| Description |
The replaced Ed25519 public key (32 raw bytes, base64). Public material — safe to carry. |
| Type | String |
| Required |
Yes |
newKey
| Description |
The newly registered Ed25519 public key (32 raw bytes, base64). |
| Type | String |
| Required |
Yes |
previousKeyUploadedBy
| Description |
IAM caller that uploaded the replaced key, when recorded. |
| Type | [string, null] |
| Required |
No |
actor
| Description |
IAM caller ARN performing the rotation upload. |
| Type | String |
| Required |
Yes |
rotationPermittedAt
| Description |
When the consumed rotation permit was stamped. |
| Type | [string, null] |
| Required |
No |
rotationPermittedBy
| Description |
Actor that stamped the consumed rotation permit (factory machine ARN or ops user). |
| Type | [string, null] |
| Required |
No |
rotatedAt
| Description |
ISO-8601 timestamp of the rotation. |
| Type | String |
| Required |
Yes |
| Format |
date-time |
Schema
{
"$id": "https://schemas.texecom-prod.com/v2/events/payload/service/identity/factory-pubkey/rotated/v1.0.0.json",
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Factory Pubkey Rotated Payload",
"description": "Payload emitted when a serial's factory Ed25519 attestation public key — the BLE/attestation trust anchor — is replaced. Rotation requires the permit stamped by a factory reset or Ops retire; first uploads and idempotent same-key re-uploads do not emit this event (PLAT-449).",
"type": "object",
"properties": {
"serial": {
"description": "Serial whose attestation key changed.",
"type": "string"
},
"previousKey": {
"description": "The replaced Ed25519 public key (32 raw bytes, base64). Public material — safe to carry.",
"type": "string"
},
"newKey": {
"description": "The newly registered Ed25519 public key (32 raw bytes, base64).",
"type": "string"
},
"previousKeyUploadedBy": {
"description": "IAM caller that uploaded the replaced key, when recorded.",
"type": [
"string",
"null"
]
},
"actor": {
"description": "IAM caller ARN performing the rotation upload.",
"type": "string"
},
"rotationPermittedAt": {
"description": "When the consumed rotation permit was stamped.",
"type": [
"string",
"null"
]
},
"rotationPermittedBy": {
"description": "Actor that stamped the consumed rotation permit (factory machine ARN or ops user).",
"type": [
"string",
"null"
]
},
"rotatedAt": {
"description": "ISO-8601 timestamp of the rotation.",
"type": "string",
"format": "date-time"
}
},
"required": [
"serial",
"previousKey",
"newKey",
"actor",
"rotatedAt"
],
"additionalProperties": false
}