Uh oh!
There was an error while loading. Please reload this page.
feat(microsoft-ad): add Azure AD (Entra ID) integration - #3686
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Wires the integration through the platform by registering a new Written by Cursor Bugbot for commit 44b9431. Configure here. |
Add complete Azure AD integration with 13 tools for managing users and groups via Microsoft Graph API v1.0. Includes OAuth config with PKCE, block definition with conditional subBlocks, and generated docs. Tools: list/get/create/update/delete users, list/get/create/update/delete groups, list/add/remove group members. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
09f0a3a to
159bf64CompareGreptile SummaryThis PR adds a complete Azure AD (Microsoft Entra ID) integration with 13 tools covering the full user and group management lifecycle via Microsoft Graph API v1.0. The implementation is well-structured and follows the existing patterns in the codebase — OAuth config centralized in Key observations:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant UI as Block UI
participant Executor as GenericBlockHandler
participant Tool as microsoft_ad_* Tool
participant OAuth as OAuth Token Layer
participant Graph as Microsoft Graph API v1.0
UI->>Executor: inputs (operation, userId, displayName, ...)
Executor->>Executor: blockConfig.tools.config.params(inputs)<br/>transforms types & remaps group fields
Executor->>Executor: merge(inputs, transformedParams) → finalInputs
Executor->>Tool: executeTool(toolId, finalInputs)
Tool->>OAuth: resolve accessToken for microsoft-ad
OAuth-->>Tool: Bearer token
Tool->>Graph: HTTP request (GET/POST/PATCH/DELETE)<br/>with Authorization + ConsistencyLevel headers
Graph-->>Tool: 200/201/204 response
Tool->>Tool: transformResponse → { success, output }
Tool-->>Executor: result
Executor-->>UI: block output
Last reviewed commit: "fix(microsoft-ad): p..." |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…Id validation - Prevent using $search and $filter together (Graph API rejects this) - Add $count=true when $search is used (required with ConsistencyLevel: eventual) - Validate and trim memberId in add_group_member body before use Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
waleedlatif1
commented
Mar 19, 2026
waleedlatif1
commented
Mar 19, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…safety - Change docsLink from microsoft-ad to microsoft_ad to match docs routing - Split accountEnabled dropdown into separate create/update subBlocks - Update operation shows "No Change" default (empty string) to prevent silently re-enabling disabled accounts when updating other fields - Create operation keeps "Yes" default as before Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
waleedlatif1
commented
Mar 19, 2026
@cursor review |
waleedlatif1
commented
Mar 19, 2026
Uh oh!
There was an error while loading. Please reload this page.
… update Split visibility dropdown into separate create/update subBlocks with "No Change" default for update_group, preventing silent overwrite of group visibility when updating other fields like description. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
waleedlatif1
commented
Mar 19, 2026
waleedlatif1
commented
Mar 19, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
- Use operation-aware checks for accountEnabled and visibility in block params to prevent create defaults bleeding into update operations - Change tool body guards from `!== undefined` to truthy checks so empty-string inputs from unfilled subBlocks are omitted from PATCH Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
waleedlatif1
commented
Mar 19, 2026
Fixed in 44b9431. Both issues addressed:
Same operation-aware pattern applied to |
waleedlatif1
commented
Mar 19, 2026
@cursor review |
waleedlatif1
commented
Mar 19, 2026
Uh oh!
There was an error while loading. Please reload this page.
Summary
Details
oauth.tsusinggetScopesForService()/getCanonicalScopesForProvider()User.Read.All,User.ReadWrite.All,GroupMember.ReadWrite.All,Directory.Read.AllGroup.ReadWrite.Allalready existed from Teams/PlannererrorExtractor: 'nested-error-object'for Microsoft Graph error formatConsistencyLevel: 'eventual'header on search-capable endpoints$refsuffix on add/remove member endpoints (prevents accidental user object deletion)Test plan