What data Token Watch holds

Updated September 7, 2026

Every field Token Watch reads from Microsoft Graph, every field it writes to its own database, the data it never receives, and how long each category is retained.

Read from Microsoft Graph

The Graph response for an App Registration carries more than Token Watch uses. Only the fields below are deserialised; the rest is discarded during response parsing and never reaches application code.

Field Contents
id, appIdObject id and application (client) id of the App Registration.
displayNameApp Registration name as shown in the portal.
createdDateTimeCreation timestamp of the App Registration.
passwordCredentials[]Per client secret: keyId, displayName, startDateTime, endDateTime. secretText is not read; Graph returns it as null regardless.
keyCredentials[]Per certificate: keyId, customKeyIdentifier (thumbprint), displayName, startDateTime, endDateTime. key, the public certificate blob, is not read.
owners[].idDirectory object id of each owner. Owner names and email addresses are not requested; the id is sufficient to match an owner to a Token Watch user for scoping.

Stored in the database

Token Watch keeps its state in a single Azure SQL database, in four categories.

Category 2, the credential inventory, is optional. In no-persistence mode names, expiry dates and owners are not stored; only opaque identifiers remain and the rest is read live from Graph.

1. Tenant and identity

StoredSource
Entra tenant idSign-in token
Per user: email address, Entra object id (oid), role, status, created / updated / last-login timestampsSign-in token
Consent state, timestamp of last consent check, timestamp of last syncGenerated

No password, password hash, MFA state or authentication secret. Sign-in is Entra ID SSO; Token Watch validates the Microsoft-issued token and handles no credentials.

2. Credential inventory

StoredSource
Per App Registration: display name, application id, creation date, last-checked timestamp, monitoring on/offMicrosoft Graph
Per credential: identifier (key id for a secret, thumbprint for a certificate), display name, type, start date, expiry date, tracked on/offMicrosoft Graph
Per App Registration: directory object ids of its ownersMicrosoft Graph

One uploaded certificate can appear in Graph as several entries sharing a thumbprint. Token Watch collapses them into a single tracked credential and stores the thumbprint as its identifier. A thumbprint is a fingerprint of the public certificate, not key material.

3. Configuration

StoredSource
Monitoring settings: expiring-soon threshold, expired-credential lookback, reporting on/offYou
Alert recipients: the email addresses configured for reports and expired-credential alertsYou
Webhook configuration, if enabled: HTTPS endpoint URL, channel format, and a per-tenant HMAC signing secretYou / generated
Azure DevOps configuration, if connected: organisation, project name and id, work item type, tags, assignee email addressYou
Billing: billing email, and the customer and subscription identifiers issued by Paddle or Microsoft MarketplaceYou / payment provider

The webhook signing secret is displayed once, at generation or rotation, and is never returned by the API or written to logs afterwards. No payment card number reaches Token Watch; see subprocessors.

4. Operational history

StoredSource
Reports: one per tenant per day, the credentials covered, the recipients, per-channel delivery timestampsGenerated
Audit log: changes to tracking, monitoring, users, roles, reporting settings, webhook configuration and the Azure DevOps connection, with actor and timestampGenerated
Webhook delivery records: one per delivery attempt, with outcomeGenerated
Azure DevOps work item links: work item id and URL per credentialGenerated
Application logs: timestamps, request paths, tenant ids, error tracesGenerated

Related

Top