Skip to main content

Lab purpose and architecture

graph-call-dashboard isolates Graph integration experiments from the production mailbox engine. It helps developers inspect callback arrival, continuation behavior, normalized state, and provider edge cases. Prepare Graph application access before using it.

Push and pull​

In push mode, the dashboard creates Graph subscriptions and receives /graphWebhook and /graphWebhook/lifecycle. It records client-state and notification-token checks and can decrypt rich notification content. Matching client state gates decryption. Token validation is diagnostic only. Invalid, unavailable, or absent tokens do not independently block decryption or all lifecycle updates. Calls and events remain available for inspection.

In pull mode, the dashboard supports mailbox-folder delta streams, folder-message delta streams, and Outlook master-category full pulls. Root, continue, and replay actions create executions. One execution follows its @odata.nextLink pages. For delta streams, it stores the final @odata.deltaLink for another round.

Outlook labels instead use STANDARD_PULL. Each run reads the complete paged catalog without retaining a continuation link. Its comparison parent is the latest successful full pull. Whole mailbox runs this label pull before folders and messages. Read-only labels need MailboxSettings.Read with administrator consent. Normalization and the differ show state and lineage.

These lab callbacks differ from production WebhookCatcher's paths and durable-processing contract. A lab event record is not a production mailbox projection.

Modules​

PathResponsibility
src/appPages and API routes
src/components/dashboardUsers, subscriptions, webhook calls, diagnostics
src/components/deltaExplorer and differ views
src/server/graphClient, directory, subscriptions, certificate/decryption
src/server/webhooksIngress and token/client-state checks
src/server/deltaQueries, paging, links, normalization
prisma/schema.prismaSQLite subscription, webhook, and delta state

Graph calls reach webhook routes or delta API requests. Both paths record SQLite state. The dashboard reads that state to show requests, responses, and normalized differences.

Practical use​

Use the lab to reproduce an integration problem with a small mailbox scope. Compare the raw response, normalized events, parent execution, and differ. Replay helps inspect a continuation again. It does not promise the provider will return an identical historical response.

See local setup and delta interpretation.