Local Token Issued Payload
Audit event emitted when identity-service mints a local-interface panel token (PLAT-295): a commissioning token (POST /auth/panels/:serial/commissioning-token) or an emergency BLE token for a user. Published on identity.outbox.external from identity-service apps/auth/src/domains/local-tokens/audit.ts. Emitted only when the call has an acting account. At-least-once, not transactional with the DynamoDB write; the generation counters in DynamoDB remain the system of record. The token itself is never included.
| $id | https://schemas.texecom-prod.com/v2/events/payload/service/identity/local_token/issued/v1.0.0.json |
| $schema | http://json-schema.org/draft-07/schema |
Properties
serial
| Description |
Serial number of the panel the token is for. |
| Type | String |
| Required |
Yes |
| Min Length |
1 |
scope
| Description |
Which local-interface token: 'commissioning' (installer commissioning token, one generation per panel) or 'ble' (emergency BLE token, one generation per panel and user). |
| Type | String |
| Required |
Yes |
| Enum |
|
generation
| Description |
Generation minted into the token. Starts at 0 and only moves on a revoke. |
| Type | Integer |
| Required |
Yes |
actorAccountId
| Description |
UUID of the account that made the call (identity.accounts.account_id). Also the outbox aggregate. |
| Type | String |
| Required |
Yes |
| Format |
uuid |
subjectAccountId
| Description |
UUID of the user the emergency BLE token is for. identity-service sets it when, and only when, scope is 'ble'; a commissioning token has no per-user subject. Not enforced by this schema: the API Gateway model subset this repo publishes has no conditional keywords (if/then/else, oneOf). |
| Type | String |
| Required |
No |
| Format |
uuid |
Schema
{
"$id": "https://schemas.texecom-prod.com/v2/events/payload/service/identity/local_token/issued/v1.0.0.json",
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Local Token Issued Payload",
"description": "Audit event emitted when identity-service mints a local-interface panel token (PLAT-295): a commissioning token (POST /auth/panels/:serial/commissioning-token) or an emergency BLE token for a user. Published on identity.outbox.external from identity-service apps/auth/src/domains/local-tokens/audit.ts. Emitted only when the call has an acting account. At-least-once, not transactional with the DynamoDB write; the generation counters in DynamoDB remain the system of record. The token itself is never included.",
"type": "object",
"properties": {
"serial": {
"description": "Serial number of the panel the token is for.",
"type": "string",
"minLength": 1
},
"scope": {
"description": "Which local-interface token: 'commissioning' (installer commissioning token, one generation per panel) or 'ble' (emergency BLE token, one generation per panel and user).",
"type": "string",
"enum": [
"commissioning",
"ble"
]
},
"generation": {
"description": "Generation minted into the token. Starts at 0 and only moves on a revoke.",
"type": "integer",
"minimum": 0
},
"actorAccountId": {
"description": "UUID of the account that made the call (identity.accounts.account_id). Also the outbox aggregate.",
"type": "string",
"format": "uuid"
},
"subjectAccountId": {
"description": "UUID of the user the emergency BLE token is for. identity-service sets it when, and only when, scope is 'ble'; a commissioning token has no per-user subject. Not enforced by this schema: the API Gateway model subset this repo publishes has no conditional keywords (if/then/else, oneOf).",
"type": "string",
"format": "uuid"
}
},
"required": [
"serial",
"scope",
"generation",
"actorAccountId"
],
"additionalProperties": false
}