Ms Graph
Broad Microsoft Graph extension — nine model types over one shared app-only client: calendar (room/user calendarView, current/next meeting), places (room resources), users (Entra directory reads, manager, memberOf), groups, mail (Outlook messages), teams (chats/teams/channels/messages), presence, sharepoint (document-library navigation, search, and file download, working under either Sites.Read.All or Sites.Selected), and intune (enrolled devices, compliance policies, configuration profiles and settings catalog, remediation scripts, confirmation-gated device actions, and async report exports). Token caching, automatic paging, and a raw-bytes downloader; app credentials supplied from a vault. Supersedes the narrow ms-graph-calendar and absorbs azure-ad-user's lookup.
Adds getMimeContent, which persists a message unmodified RFC822 source (GET /messages/{id}/) as a messageMime file artifact, preserving the Authentication-Results, DKIM-Signature and Received headers that let an email stand on its own as evidence of origin. listMessages now reports when a result set is truncated at maxItems, since results are newest-first and a silent truncation can turn an unsearched window into a false negative.
| Argument | Type | Description |
|---|---|---|
| roomEmail | string | Room or user mailbox address, e.g. conf-b@example.com |
| startDateTime | string | Window start in ISO-8601 format, e.g. 2026-06-29T00:00:00 |
| endDateTime | string | Window end in ISO-8601 format, e.g. 2026-06-29T23:59:59 |
| top | number | Max events per page (1-999). The method auto-follows @odata.nextLink. |
| Argument | Type | Description |
|---|---|---|
| roomEmail | string | Room or user mailbox address that owns the event, e.g. conf-b@example.com |
| eventId | string | Graph event id |
| Argument | Type | Description |
|---|---|---|
| roomEmail | string | Room mailbox address, e.g. conf-b@example.com |
| Argument | Type | Description |
|---|---|---|
| roomEmail | string | Room mailbox address, e.g. conf-b@example.com |
| lookAheadHours | number | How many hours ahead to search for the next meeting (default 8 — remainder of the workday) |
Resources
| Argument | Type | Description |
|---|---|---|
| top | number | Max rooms to return per page (1-100). Paging is handled automatically. |
| Argument | Type | Description |
|---|---|---|
| idOrEmail | string | Room emailAddress (e.g. conf-b@example.com) or Graph object ID |
Resources
| Argument | Type | Description |
|---|---|---|
| idOrUpn | string | Entra object id (GUID) or userPrincipalName (user@example.com) |
| Argument | Type | Description |
|---|---|---|
| filter? | string | OData $filter, e.g. "startswith(displayName,\ |
| maxItems | number | Hard cap on total users collected across pages (default 200). |
| Argument | Type | Description |
|---|---|---|
| idOrUpn | string | Entra object id (GUID) or userPrincipalName of the user whose manager to fetch |
| Argument | Type | Description |
|---|---|---|
| idOrUpn | string | Entra object id (GUID) or userPrincipalName of the user |
Resources
| Argument | Type | Description |
|---|---|---|
| filter? | string | OData $filter, e.g. "securityEnabled eq true" or "startswith(displayName,\ |
| maxItems | number | Hard cap on total groups collected across pages (default 200). |
| Argument | Type | Description |
|---|---|---|
| id | string | Entra group object id (GUID) |
| Argument | Type | Description |
|---|---|---|
| id | string | Entra group object id (GUID) |
| maxItems | number | Hard cap on total members collected across pages (default 500). |
Resources
| Argument | Type | Description |
|---|---|---|
| userId | string | Mailbox userPrincipalName or object id, e.g. user@example.com |
| filter? | string | OData $filter, e.g. "isRead eq false" or "importance eq \ |
| maxItems | number | Hard cap on total messages collected across pages (default 50). |
| Argument | Type | Description |
|---|---|---|
| userId | string | Mailbox userPrincipalName or object id that owns the message |
| messageId | string | Graph message id |
| Argument | Type | Description |
|---|---|---|
| userId | string | Mailbox userPrincipalName or object id that owns the message |
| messageId | string | Graph message id |
| resultName? | string | Instance label for the file artifact; defaults to a slug of the mailbox and message id |
Resources
Files
| Argument | Type | Description |
|---|---|---|
| userId | string | User userPrincipalName or object id, e.g. user@example.com |
| maxItems | number | Hard cap on total chats collected across pages (default 100). |
| Argument | Type | Description |
|---|---|---|
| userId | string | User userPrincipalName or object id, e.g. user@example.com |
| Argument | Type | Description |
|---|---|---|
| teamId | string | Team (group) object id |
| Argument | Type | Description |
|---|---|---|
| chatId? | string | Chat id — provide for chat messages (mutually exclusive with teamId/channelId) |
| teamId? | string | Team id — provide with channelId for channel messages |
| channelId? | string | Channel id — provide with teamId for channel messages |
| maxItems | number | Hard cap on total messages collected across pages (default 50). |
Resources
| Argument | Type | Description |
|---|---|---|
| userId | string | User object id or userPrincipalName, e.g. user@example.com |
Resources
| Argument | Type | Description |
|---|---|---|
| query | string | Search terms, e.g. a project number. Matched against content and names by Graph search, or as a case-insensitive name substring by the walk. |
| maxItems | number | Cap on hits returned |
| maxScan | number | Walk only — cap on entries examined. A site-wide walk issues one request per folder and is slow on deep libraries; prefer scopePath. |
Resources
Files
| Argument | Type | Description |
|---|---|---|
| filter? | string | OData $filter over supported properties, e.g. \ |
| maxItems | number | Hard cap on total devices collected across pages (default 500). |
| Argument | Type | Description |
|---|---|---|
| id | string | Intune managed-device id (GUID) |
| Argument | Type | Description |
|---|---|---|
| includeAssignments | boolean | Expand each policy's assignments so the groups it targets come back in the same call. |
| maxItems | number | Hard cap on total policies collected across pages (default 200). |
| Argument | Type | Description |
|---|---|---|
| includeSettingsCatalog | boolean | Also collect settings-catalog policies. These live only on the beta endpoint, so their shape is not contract-guaranteed. |
| maxItems | number | Hard cap on profiles collected from each surface (default 200 each). |
| Argument | Type | Description |
|---|---|---|
| apiVersion | enum | Graph version to read from. Move this to v1.0 once the resource graduates. |
| maxItems | number | Hard cap on total scripts collected across pages (default 200). |
| Argument | Type | Description |
|---|---|---|
| deviceIds | array | Intune managed-device ids to act on. |
| confirm | boolean | Required for anything beyond sync and locate. Left false, the method previews the batch without calling Graph. |
| keepUserData | boolean | Wipe only — preserve user data instead of a full factory reset. Ignored by every other action. |
| Argument | Type | Description |
|---|---|---|
| reportName | string | Intune report to build, e.g. Devices, DevicesWithInventory, DeviceCompliance, DeviceNonCompliance, or DeviceInstallStatusByApp. |
| format | enum | Payload format inside the returned zip. |
| filter? | string | Report-specific filter expression, passed through to the export job unchanged. |
| select? | array | Columns to include. Omit for the report's default column set. |
| apiVersion | enum | Graph version to submit against. Several report names are published only on beta. |
| timeoutSeconds | number | How long to poll before giving up on the job (default 300). |
Resources
Corrects the registry description: sharepoint is app-only as of this release, not delegated.
Adds the intune model type (enrolled devices, compliance policies, configuration profiles and settings catalog, remediation health scripts, confirmation-gated device actions, async report exports) and moves sharepoint from a delegated az-session token to app-only credentials so it runs unattended. Shared client gains a beta base URL, request bodies, and a raw-bytes downloader.
Added 1 models. updated labels
Manifest description corrected to match the v2026.07.13.3 scope reduction: sharepoint model advertises document-library navigation, drive search, and file download only. No code changes.
Scope reduction: ms-graph-sharepoint now carries only the general-purpose SharePoint surface (getSite, listFolder, searchDriveItems, downloadDriveItem). The organization-specific customer-folder resolution and evidence-collection heuristics moved out of the published artifact into a private internal model. No changes to the four remaining methods.
Modified 1 models
Documentation hardening from a security audit: org-specific references removed from published docs and JSDoc (vault-name examples neutralized to azure-graph, tenant consent-state disclosures dropped, evidence-collection description genericized). No functional changes.
New ms-graph-sharepoint model: document-library navigation, customer-folder resolution (auto-detected letter-bucket layouts), scoped drive search, file download, and the collectCustomerDocs fan-out evidence collector with keyword and project-number scoring. Uses the delegated az-session token so document access rides the operator's own SharePoint permissions; site locator supplied per instance.
Added 1 models. updated labels
Initial public publish (extension was catalog-only after the productization merge).
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned