Skip to content

Commit f4ff7a0

Browse files
authored
Merge pull request #28508 from microsoftgraph/main
Merge to publish.
2 parents 77666fd + 9c10230 commit f4ff7a0

File tree

328 files changed

+2794
-524
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

328 files changed

+2794
-524
lines changed

.gdn/.gdnbaselines

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
4141
"createdDate": "2026-02-24 12:06:54Z"
4242
},
43-
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44-
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
43+
"3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915": {
44+
"signature": "3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915",
4545
"alternativeSignatures": [],
46-
"target": "update-permissions-reference-fic.ps1",
46+
"target": "scripts/update-permissions-reference-fic.ps1",
4747
"line": 179,
4848
"memberOf": [
4949
"default"
5050
],
5151
"tool": "psscriptanalyzer",
5252
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53-
"createdDate": "2026-02-24 12:06:54Z"
53+
"createdDate": "2026-03-24 12:06:54Z"
5454
}
5555
}
5656
}

.gdn/.gdnsuppress

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
4141
"createdDate": "2026-02-24 12:06:54Z"
4242
},
43-
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44-
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
43+
"3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915": {
44+
"signature": "3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915",
4545
"alternativeSignatures": [],
46-
"target": "update-permissions-reference-fic.ps1",
46+
"target": "scripts/update-permissions-reference-fic.ps1",
4747
"line": 179,
4848
"memberOf": [
4949
"default"
5050
],
5151
"tool": "psscriptanalyzer",
5252
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53-
"createdDate": "2026-02-24 12:06:54Z"
53+
"createdDate": "2026-03-24 12:06:54Z"
5454
}
5555
}
5656
}

.github/prompts/author-api-docs/common.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,19 @@ Use the following format when reporting file processing results, so output is co
603603
⚠️ Blocked: [list with reasons, or "None"]
604604
```
605605

606+
**Mid-phase validation** (required at every ⏸ phase gate, before moving to the next phase):
607+
608+
Re-read each file completed in the current phase and verify it meets expectations for its file type. Output a validation checklist:
609+
610+
```
611+
✅ Phase [N] Validation
612+
- [file1.md]: H1 ✓ | Namespace ✓ | Properties table ✓ | JSON representation ✓
613+
- [file2.md]: H1 ✓ | Namespace ✓ | Permissions ✓ | HTTP request ✓ | Examples ✓
614+
- [file3.md]: H1 ✓ | Namespace ✓ | Properties table ✗ (missing "newProperty") — FIXING
615+
```
616+
617+
Fix any failures before proceeding to the next phase. Do not defer fixes to end-of-session.
618+
606619
## State Tracking
607620

608621
Maintain a running progress tracker throughout the session. After each file or batch of files, update and display:
@@ -625,8 +638,9 @@ For Documentation Plans with many files (10+):
625638
1. **Group by type:** resources, API methods, enumerations, permissions, supporting files
626639
2. **Process in batches of 5 files** — complete all steps for each file before moving to the next
627640
3. **After each batch**, output a phase status summary (see [Structured Output Format](#structured-output-format))
628-
4. **Present the execution plan upfront** and proceed unless the author objects — avoid blocking confirmations for each batch when the Documentation Plan is clear
629-
5. **If the plan exceeds 20 files**, create a numbered task list at the start, group into batches, and checkpoint progress after each batch
641+
4. **Verify each batch before proceeding:** Re-read every file in the completed batch and confirm it contains the expected sections (e.g., H1, namespace, Permissions, HTTP request, Examples for API files; H1, namespace, Properties table, JSON representation for resource files). Fix any issues before starting the next batch.
642+
5. **Present the execution plan upfront** and proceed unless the author objects — avoid blocking confirmations for each batch when the Documentation Plan is clear
643+
6. **If the plan exceeds 20 files**, after the first batch completes and is verified, **stop and ask the author to confirm quality** before continuing. This catches systematic errors early.
630644

631645
## Decision Trees for Ambiguous Cases
632646

@@ -702,6 +716,8 @@ Report any inconsistencies in the final summary to the author.
702716

703717
The following checks apply to every documentation scenario. Scenario-specific checklists add additional items on top of these.
704718

719+
> **IMPORTANT:** For each checklist item, re-read the actual file content to confirm — do not check items from memory.
720+
705721
**For all files (new and updated):**
706722
- [ ] All required sections are present and in correct order
707723
- [ ] Headings match the expected format

.github/prompts/author-api-docs/deprecate-retire.md

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,15 @@ Retirement is the final stage of the API lifecycle — the deprecated API has re
214214

215215
### Inputs for retirement
216216

217-
The Documentation Plan must explicitly identify:
218-
- Which resources (entity types, complex types) are being retired (marked as "Deleted" or "Removed")
219-
- Which API operation files are linked to the retired resources
220-
- **Dependency analysis for related types:** Complex types referenced as property return types and entity types referenced as relationship targets must be explicitly called out. The Documentation Plan must state whether each related type is also being retired or should be retained.
217+
Retirement can be triggered by:
218+
- **Schema change:** A Documentation Plan or changelog showing `ChangeType: "Deletion"` for entities, complex types, properties, relationships, actions, or functions
219+
- **Endpoint removal:** The product stops supporting an endpoint — this may not appear in the schema. The author will specify which endpoints are removed and the affected version(s).
220+
221+
The Documentation Plan or author prompt must identify:
222+
- Which resources (entity types, complex types) are being retired
223+
- Which version(s): beta, v1.0, or both
224+
- The alternative API or resource (for redirects)
225+
- **Dependency analysis for related types:** Complex types referenced as property return types and entity types referenced as relationship targets may still be in use by other APIs. Only delete a related type if it is explicitly called out as retired — otherwise retain it.
221226

222227
### Retirement workflow
223228

@@ -242,11 +247,14 @@ Based on the Documentation Plan, delete:
242247
3. **Permission include files** for the retired API operation files:
243248
- `api-reference/{version}/includes/permissions/{operation}-permissions.md` (naming may vary — match the include reference in each API operation file)
244249

245-
4. **Complex type files** explicitly called out as retired/deleted in the Documentation Plan:
250+
4. **RBAC include files** for the retired API operation files (if they exist and not in use by other APIs):
251+
- `api-reference/{version}/includes/rbac-for-apis/{rbac-file}.md` (match the include reference in each API operation file)
252+
253+
5. **Complex type files** explicitly called out as retired/deleted in the Documentation Plan:
246254
- Only delete if the Documentation Plan explicitly marks the complex type as retired/deleted
247255
- If not explicitly called out as retired, retain the file
248256

249-
5. **Enum files or sections** explicitly called out as retired/deleted in the Documentation Plan:
257+
6. **Enum files or sections** explicitly called out as retired/deleted in the Documentation Plan:
250258
- For standalone enum files: delete if explicitly marked as retired
251259
- For H3 sections in parent resources: removed when parent resource is deleted
252260
- For entries in global enums files (`enums.md`, `enums-{subnamespace}.md`): remove the enum section
@@ -277,12 +285,12 @@ Add redirects for **resource files that include Methods tables** (entity types)
277285
"redirections": [
278286
{
279287
"source_path": "api-reference/{version}/resources/{retired-resource}.md",
280-
"redirect_url": "/graph/api/resources/{alternative-resource}",
288+
"redirect_url": "/graph/api/resources/{alternative-resource}?view=graph-rest-{version}",
281289
"redirect_document_id": false
282290
},
283291
{
284292
"source_path": "api-reference/{version}/api/{retired-operation}.md",
285-
"redirect_url": "/graph/api/{alternative-operation}",
293+
"redirect_url": "/graph/api/{alternative-operation}?view=graph-rest-{version}",
286294
"redirect_document_id": false
287295
}
288296
]
@@ -367,6 +375,7 @@ In addition to the [base quality checklist](common.md#base-quality-checklist), v
367375
- [ ] All resource files explicitly marked as retired/deleted are deleted
368376
- [ ] All API operation files linked to retired resources are deleted
369377
- [ ] All permission include files for retired operations are deleted
378+
- [ ] All RBAC include files for retired operations are deleted (if they existed and not in use by other APIs)
370379
- [ ] Complex types and enums only deleted if explicitly called out as retired in the Documentation Plan
371380
- [ ] References to retired resources removed from parent/related resource tables (Methods, Relationships, Properties)
372381
- [ ] TOC entries removed for deleted files

.github/prompts/review-api-docs.prompt.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,18 @@ When reviewing resources that are part of a polymorphic hierarchy (base types wi
208208

209209
Full rules: [common.md — Cross-file consistency validation](./author-api-docs/common.md#cross-file-consistency-validation) (point d) and [public-preview.md — Handling polymorphic entity types](./author-api-docs/public-preview.md#handling-polymorphic-entity-types)
210210

211+
### Retirement (file deletion) review
212+
213+
When a PR deletes API documentation files, validate:
214+
- **Completeness:** All API operation files, permission includes, and RBAC includes tied to a deleted entity type resource are also deleted
215+
- **Retained types:** Complex types and entity types referenced by the deleted resource are NOT deleted unless explicitly called out — they may be in use by other APIs
216+
- **Reference cleanup:** Deleted resources are removed from Methods tables, Relationships tables, and Properties tables in parent/related resource files
217+
- **Redirects:** Each deleted entity type resource file and API operation file has a redirect entry in the latest `.openpublishing.redirection.yyyy-mm.json` file in `redirects/`
218+
- **TOC:** Entries for deleted files removed from `toc.mapping.json`
219+
- **Changelog and What's New:** Entries with Change type "Deletion" are present
220+
221+
Full rules: [deprecate-retire.md — Retirement workflow](./author-api-docs/deprecate-retire.md#retirement-api-removal) and [Retirement quality checklist](./author-api-docs/deprecate-retire.md#quality-checklist)
222+
211223
---
212224

213225
## Optional Context-Enhanced Review
@@ -285,6 +297,8 @@ Group files by type:
285297

286298
For each file, apply the appropriate review checklist from above.
287299

300+
**For PRs with 15+ changed files:** Review in batches of 10 files. After each batch, output findings so far before continuing to the next batch. This keeps context focused and prevents quality degradation on later files.
301+
288302
### Step 4: Run Validation Scripts
289303

290304
Run automated validation scripts to ensure compliance (see [Common Process: Validation](#common-process-validation)):
@@ -306,6 +320,8 @@ Use these criteria consistently when categorizing findings:
306320

307321
### Step 6: Report Findings
308322

323+
> **IMPORTANT:** Before finalizing the report, re-read each reviewed file to confirm your findings. Do not report issues or approvals from memory alone.
324+
309325
Provide a structured review report:
310326

311327
**Summary:**
@@ -341,6 +357,7 @@ If requested, provide specific edits to fix identified issues.
341357

342358
**Special handling:**
343359
- Mixed scenarios: If both deprecation and other changes exist, flag this for the reviewer
360+
- Retirement (file deletions): Validate redirect entries, reference cleanup, and dependency safety — see [Retirement review](#retirement-file-deletion-review)
344361
- Autogenerated content: If file appears autogenerated (check metadata), validate that manual edits are appropriate
345362
- Permission files: These are typically autogenerated; validate format but don't require extensive review unless issues are evident
346363

.github/workflows/permissions-reference-gen-fic.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ jobs:
2727
- name: Azure Login using Federated Identity
2828
uses: azure/login@v2
2929
with:
30-
client-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_CLIENT_ID }}
31-
tenant-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_TENANT_ID }}
30+
client-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_CLIENT_ID }}
31+
tenant-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_TENANT_ID }}
3232
allow-no-subscriptions: true
3333

3434
- name: Run PowerShell script to update permissions
3535
shell: pwsh
3636
run: |
37-
$ClientId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_CLIENT_ID }}"
38-
$TenantId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_TENANT_ID }}"
39-
./docs/update-permissions-reference-fic.ps1 -ClientId $ClientId -TenantId $TenantId
37+
$ClientId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_CLIENT_ID }}"
38+
$TenantId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_TENANT_ID }}"
39+
./docs/scripts/update-permissions-reference-fic.ps1 -ClientId $ClientId -TenantId $TenantId
4040
4141
- name: Get token
4242
id: get_token
@@ -65,7 +65,7 @@ jobs:
6565
- name: Run PowerShell script to correct errors in permissions descriptions
6666
shell: pwsh
6767
run: |
68-
./docs/correct-permissions-reference-errors.ps1
68+
./docs/scripts/correct-permissions-reference-errors.ps1
6969
7070
- name: Commit errors correction and open a pull request
7171
working-directory: ./docs
@@ -87,4 +87,4 @@ jobs:
8787
git push --set-upstream origin $branchName -f
8888
8989
gh pr create --base main --title $prTitle --body "Scheduled permissions reference update using Federated Identity Credentials" --reviewer "FaithOmbongi,msewaweru" --label "ready for content review"
90-
}
90+
}

.github/workflows/request-ref-toc-gen.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ jobs:
6464
INPUT_OWNER: ${{ github.repository_owner }}
6565
INPUT_REPO: ${{ github.event.repository.name }}
6666
INPUT_PULL: ${{ github.event.issue.number }}
67-
INPUT_BODY: ${{ needs.request-toc-gen.outputs.result }}
67+
INPUT_BODY: ${{ needs.request-toc-gen.outputs.result || 'TOC generation did not produce a result. Please check the workflow logs.' }}

api-reference/beta/api/accesspackageassignmentrequest-resume.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,6 @@ Content-Type: application/json
321321

322322
---
323323

324-
325324
### Response
326325

327326
The following example shows the response.

api-reference/beta/api/accesspackagesuggestions-filterbycurrentuser.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ GET https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/ac
8181

8282
---
8383

84-
8584
#### Response
8685

8786
The following example shows the response.
@@ -160,7 +159,6 @@ GET https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/ac
160159

161160
---
162161

163-
164162
#### Response
165163

166164
The following example shows the response.

api-reference/beta/api/agentcardmanifest-get.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ GET https://graph.microsoft.com/beta/agentRegistry/agentCardManifests/{agentCard
9696

9797
---
9898

99-
10099
### Response
101100

102101
The following example shows the response.

0 commit comments

Comments
 (0)