Texecom Event Schemas

JSON Schema Documentation

Account Deleted Payload

Payload emitted when an identity account is deleted - the Support Console admin delete (SOFTC-7245). A tombstone, not a snapshot: there is no facet left to converge onto, so it carries what identifies the account plus who removed it and why. Consumed by push-notification-service's device-token Lambda, which deletes the account's device tokens and needs only accountId. v1.1.0 adds version, deletedAt, deletedBy, reason and monolithOwned, and widens accountType to TEXECOM_USER; all additions are optional, so a v1.0.0 payload is still valid (SOFTC-7251).

$idhttps://schemas.texecom-prod.com/v2/events/payload/service/identity/account/deleted/v1.1.0.json
$schemahttp://json-schema.org/draft-07/schema

Properties

NameType
accountIdString
emailString
accountTypeString
versionInteger
deletedAtString
deletedByString
reasonString
monolithOwnedBoolean

accountId

Description UUID of the account that was deleted (identity.accounts.account_id).
TypeString
Required Yes
Format uuid

email

Description Email address of the account at the time of deletion (identity.accounts.email). Case-insensitive, not unique across accounts. Once deleted, the same email may register again as a new account with a new accountId.
TypeString
Required No
Format email

accountType

Description Type of the account at the time of deletion (identity.accounts.account_type). TEXECOM_USER: Texecom admins can delete staff accounts.
TypeString
Required No
Enum
  • END_USER
  • INSTALLER_USER
  • TEXECOM_USER

version

Description The accounts row version committed with the delete, incremented in SQL - one past the last identity.account.updated, so a consumer ordering by version sees the tombstone last.
TypeInteger
Required No
Minimum 1

deletedAt

Description When the account was deleted (identity.accounts.deleted_at).
TypeString
Required No
Format date-time

deletedBy

Description accountId of the Texecom admin who deleted the account (identity.accounts.deleted_by).
TypeString
Required No
Format uuid

reason

Description Free-text reason the admin gave for the delete. Required by the API; 1-500 characters.
TypeString
Required No
Min Length 1
Max Length 500

monolithOwned

Description True when the account was a legacy installer the monolith owns (develop and test only). identity-service dropped its own shadow of that person; the monolith still has them and their next login re-creates a fresh shadow. NOT a request to delete anything in the monolith: the Legacy Bridge must not converge this event onto it.
TypeBoolean
Required No

Schema

{
    "$id": "https://schemas.texecom-prod.com/v2/events/payload/service/identity/account/deleted/v1.1.0.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Account Deleted Payload",
    "description": "Payload emitted when an identity account is deleted - the Support Console admin delete (SOFTC-7245). A tombstone, not a snapshot: there is no facet left to converge onto, so it carries what identifies the account plus who removed it and why. Consumed by push-notification-service's device-token Lambda, which deletes the account's device tokens and needs only accountId. v1.1.0 adds version, deletedAt, deletedBy, reason and monolithOwned, and widens accountType to TEXECOM_USER; all additions are optional, so a v1.0.0 payload is still valid (SOFTC-7251).",
    "type": "object",
    "properties": {
        "accountId": {
            "description": "UUID of the account that was deleted (identity.accounts.account_id).",
            "type": "string",
            "format": "uuid"
        },
        "email": {
            "description": "Email address of the account at the time of deletion (identity.accounts.email). Case-insensitive, not unique across accounts. Once deleted, the same email may register again as a new account with a new accountId.",
            "type": "string",
            "format": "email"
        },
        "accountType": {
            "description": "Type of the account at the time of deletion (identity.accounts.account_type). TEXECOM_USER: Texecom admins can delete staff accounts.",
            "type": "string",
            "enum": [
                "END_USER",
                "INSTALLER_USER",
                "TEXECOM_USER"
            ]
        },
        "version": {
            "description": "The accounts row version committed with the delete, incremented in SQL - one past the last identity.account.updated, so a consumer ordering by version sees the tombstone last.",
            "type": "integer",
            "minimum": 1
        },
        "deletedAt": {
            "description": "When the account was deleted (identity.accounts.deleted_at).",
            "type": "string",
            "format": "date-time"
        },
        "deletedBy": {
            "description": "accountId of the Texecom admin who deleted the account (identity.accounts.deleted_by).",
            "type": "string",
            "format": "uuid"
        },
        "reason": {
            "description": "Free-text reason the admin gave for the delete. Required by the API; 1-500 characters.",
            "type": "string",
            "minLength": 1,
            "maxLength": 500
        },
        "monolithOwned": {
            "description": "True when the account was a legacy installer the monolith owns (develop and test only). identity-service dropped its own shadow of that person; the monolith still has them and their next login re-creates a fresh shadow. NOT a request to delete anything in the monolith: the Legacy Bridge must not converge this event onto it.",
            "type": "boolean"
        }
    },
    "required": [
        "accountId"
    ],
    "additionalProperties": false
}