Graph & Office Report Builder

Add a self-service report builder page that lets users explore and run any report available from Microsoft Graph or reports.office.com for a selected tenant.

Overview

A new page under Tenant > Reports > Report Builder that dynamically discovers available reports via the API and renders the results in a data table — no hardcoded report list required.

User Experience

The toolbar (modelled on the existing report toolbar pattern) contains three controls:

  1. Source selector — toggle/dropdown between Graph (graph.microsoft.com/beta/reports) and Office (reports.office.com/odataux). Changing this resets the report selection and re-fetches the report list.
  2. Report selector — autocomplete populated by GET /api/ListGraphReports?tenantFilter=&type=graph (or type=office). Shows report name and type (function vs navigationLink for Graph; entity set name for Office).
  3. Period selector — dropdown limited to D7, D30, D90, D180. Hidden/disabled for reports that don't accept a period parameter (navigationLink / office reports).

Once all required fields are selected, the page fetches GET /api/ListGraphReports?tenantFilter=&type=&report=&period= and renders the JSON response in a CippDataTable with auto-detected columns.

API Endpoint

Already implemented: ListGraphReports

  • No report param → returns discovery list for the given type
  • With report param → returns the report data as JSON
  • Supports type=graph and type=office
  • Supports period param (D7/D30/D90/D180, default D30)

Acceptance Criteria

  • Source, report, and period controls visible in toolbar
  • Report list populates dynamically from the discovery endpoint
  • Period selector hidden for office reports and Graph navigationLink reports
  • Table renders once a report is selected (and period if required)
  • Tenant selector uses the global current tenant
  • Loading and error states handled gracefully

Please authenticate to join the conversation.

Upvoters
Status

Code Review

Board

Feature Requests

ETA
Apr 10, 2026
Date

About 5 hours ago

Author

John Duprey

Subscribe to post

Get notified by email when there are changes.