Chore/docs updated provider docs and examples#194
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
@copilot check and fix broken tests because of changed examples (should still be there, just renamed). |
|
@blindzero I've opened a new pull request, #195, to work on those changes. Once the pull request is ready, I'll request review from you. |
There was a problem hiding this comment.
Pull request overview
Updates IdLE’s provider reference docs to use a more consistent structure and to embed “canonical” workflow examples directly from the examples/ tree, supported by a Docusaurus webpack rule to import .ps1/.psd1 as raw source.
Changes:
- Adds a custom Docusaurus plugin to load
.ps1/.psd1files as raw strings for MDX embedding. - Reworks provider reference pages (AD / Entra ID / Exchange Online / DirectorySync / Mock) to embed example workflows from
examples/. - Refreshes and reorganizes workflow templates under
examples/workflows/templates/(add/remove/rename/update placeholder style).
Reviewed changes
Copilot reviewed 23 out of 25 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| website/package.json | Adjusts Docusaurus dependencies (incl. Mermaid theme version). |
| website/package-lock.json | Lockfile updates reflecting dependency changes (incl. qs patch bump). |
| website/docusaurus.config.js | Adds webpack rule plugin for importing .ps1/.psd1 as raw strings; comments out Mermaid theme usage. |
| examples/workflows/templates/joiner-with-entraid-sync.psd1 | Removes older joiner scenario template. |
| examples/workflows/templates/exo-leaver.psd1 | Updates EXO leaver template placeholder style + message content. |
| examples/workflows/templates/exo-joiner.psd1 | Adds EXO joiner baseline template (currently contains non-PSD1 trailing content). |
| examples/workflows/templates/entraid-mover-department-change.psd1 | Removes older Entra mover template. |
| examples/workflows/templates/entraid-leaver.psd1 | Refines Entra leaver template with optional cleanup steps + clearer structure. |
| examples/workflows/templates/entraid-joiner.psd1 | Adds Entra joiner “complete onboarding” template. |
| examples/workflows/templates/entraid-joiner-complete.psd1 | Removes older Entra joiner template variant. |
| examples/workflows/templates/entraid-exo-leaver.psd1 | Adds cross-provider leaver scenario template (still uses legacy ValueFrom refs). |
| examples/workflows/templates/directorysync-entraconnect-trigger-sync.psd1 | Adds Entra Connect trigger-sync operational template. |
| examples/workflows/templates/ad-mover-department-change.psd1 | Removes older AD mover template. |
| examples/workflows/templates/ad-leaver.psd1 | Adds AD leaver template (currently uses unsupported workflow/step schema + disallowed template roots). |
| examples/workflows/templates/ad-leaver-offboarding.psd1 | Removes older AD leaver template. |
| examples/workflows/templates/ad-joiner.psd1 | Adds AD joiner template (currently uses unsupported workflow/step schema + disallowed template roots). |
| examples/workflows/templates/ad-joiner-entraconnect-entraid.psd1 | Adds multi-provider joiner scenario (AD + DirectorySync + Entra). |
| examples/workflows/templates/ad-joiner-complete.psd1 | Removes older AD joiner complete template. |
| examples/workflows/mock/mock-identity-and-entitlements.psd1 | Adds Mock provider workflow example (currently contains non-PSD1 trailing content). |
| docs/reference/providers/provider-mock.md | Simplifies Mock provider reference and embeds canonical example from examples/. |
| docs/reference/providers/provider-exchangeonline.md | Simplifies EXO provider reference and embeds canonical EXO templates. |
| docs/reference/providers/provider-entraID.md | Simplifies Entra provider reference and embeds canonical Entra templates. |
| docs/reference/providers/provider-directorysync-entraconnect.md | Simplifies DirectorySync provider reference and embeds canonical trigger-sync template. |
| docs/reference/providers/provider-ad.md | Simplifies AD provider reference and embeds canonical AD templates (currently references non-existent step types). |
| docs/reference/providers/_provider-name_template.md | Updates the provider doc authoring template to be more admin-oriented and scan-friendly. |
Files not reviewed (1)
- website/package-lock.json: Language not supported
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| Name = 'Mover: update org attributes (optional)' | ||
| With = @{ | ||
| # Guard by convention: only run when request indicates mover | ||
| Condition = '{{Request.Input.IsMover}}' |
There was a problem hiding this comment.
The Condition field is being set as a string value '{{Request.Input.IsMover}}', but based on other workflow examples in the codebase, conditions should be structured as hashtables with operators like Equals, All, etc. The correct syntax should be:
Condition = @{
All = @(
@{
Equals = @{
Path = 'Request.Input.IsMover'
Value = $true
}
}
)
}
This pattern is used consistently in entraid-leaver.psd1 and other workflow examples.
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Mover: adjust group memberships (optional)' | ||
| With = @{ | ||
| Condition = '{{Request.Input.IsMover}}' |
There was a problem hiding this comment.
The Condition field is being set as a string value '{{Request.Input.IsMover}}', but conditions should be structured as hashtables with operators. This is repeated across multiple steps in this file and needs to be corrected.
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Mover: adjust group memberships (optional)' | ||
| With = @{ | ||
| Condition = '{{Request.Input.IsMover}}' |
There was a problem hiding this comment.
The Condition field is being set as a string value '{{Request.Input.IsMover}}', but conditions should be structured as hashtables with operators. This is repeated across multiple steps in this file and needs to be corrected.
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Mover: adjust group memberships (optional)' | ||
| With = @{ | ||
| Condition = '{{Request.Input.IsMover}}' |
There was a problem hiding this comment.
The Condition field is being set as a string value '{{Request.Input.IsMover}}', but conditions should be structured as hashtables with operators. This is repeated across multiple steps in this file and needs to be corrected.
| @{ | ||
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Remove managed group memberships (optional)' | ||
| With = @{ | ||
| Condition = @{ Equals = @{ Path = 'Request.Input.RemoveGroups'; Value = $true } } | ||
| AuthSessionName = 'Directory' | ||
| IdentityKey = '{{Request.Input.SamAccountName}}' | ||
|
|
||
| # Only remove what you explicitly manage via IdLE. | ||
| Entitlement = @{ | ||
| Kind = 'Group'; | ||
| Id = '{{Request.Input.ManagedGroupsToRemove.1}}' | ||
| } | ||
| State = 'Absent' | ||
| } | ||
| } |
There was a problem hiding this comment.
The Condition field is incorrectly nested inside the With hashtable. Based on the codebase conventions, Condition should be a top-level property of the step hashtable, not inside the With block. This step should be restructured so Condition is at the same level as Type, Name, and With.
| @@ -0,0 +1,152 @@ | |||
| @{ | |||
| Name = 'Complete Joiner - EntraID + ExchangeOnline Offboarding' | |||
There was a problem hiding this comment.
The Name field says "Complete Joiner - EntraID + ExchangeOnline Offboarding" but this is an AD joiner workflow template, not an EntraID/EXO workflow. The name should be corrected to match the actual content, such as "AD Joiner - Complete Onboarding" or similar.
| Name = 'Complete Joiner - EntraID + ExchangeOnline Offboarding' | |
| Name = 'AD Joiner - Complete Onboarding' |
| Entitlement = @{ Kind = 'Group'; Id = '{{Request.Input.BaselineGroups.1}}' } | ||
| State = 'Present' | ||
| } | ||
| } |
There was a problem hiding this comment.
There's a syntax error in the PowerShell Data file. Line 125 starts a new hashtable (@{) without being part of an array or closing the previous step's hashtable. This will cause a parsing error. The line should either be removed or properly structured as part of the Steps array.
| } | |
| }, |
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Mover: adjust group memberships (optional)' | ||
| With = @{ | ||
| Condition = '{{Request.Input.IsMover}}' |
There was a problem hiding this comment.
The Condition field is being set as a string value '{{Request.Input.IsMover}}', but conditions should be structured as hashtables with operators like Equals, All, etc. The correct syntax should use the condition structure as shown in other workflow examples (e.g., entraid-leaver.psd1).
| @{ | ||
| Type = 'IdLE.Step.EnsureEntitlement' | ||
| Name = 'Remove managed group memberships (optional)' | ||
| With = @{ | ||
| Condition = @{ Equals = @{ Path = 'Request.Input.RemoveGroups'; Value = $true } } | ||
| AuthSessionName = 'Directory' | ||
| IdentityKey = '{{Request.Input.SamAccountName}}' | ||
|
|
||
| # Only remove what you explicitly manage via IdLE. | ||
| Entitlement = @{ | ||
| Kind = 'Group'; | ||
| Id = '{{Request.Input.ManagedGroupsToRemove.0}}' | ||
| } | ||
| State = 'Absent' | ||
| } |
There was a problem hiding this comment.
The Condition field is incorrectly nested inside the With hashtable. Based on the codebase conventions (see entraid-leaver.psd1 lines 74-83), Condition should be a top-level property of the step hashtable, not inside the With block. This step should be restructured so Condition is at the same level as Type, Name, and With.
Summary
Updated provider docs and examples
Motivation
Consistent structure and usecases with incld. psd1 examples in docs pages
Type of Change
Please select the relevant option: