Skip to content

Chore/docs updated provider docs and examples#194

Merged
blindzero merged 29 commits intomainfrom
chore/docs
Feb 15, 2026
Merged

Chore/docs updated provider docs and examples#194
blindzero merged 29 commits intomainfrom
chore/docs

Conversation

@blindzero
Copy link
Copy Markdown
Owner

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:

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactoring / internal improvement

Copilot AI review requested due to automatic review settings February 14, 2026 15:33
@blindzero blindzero self-assigned this Feb 14, 2026
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@blindzero blindzero added the type:docs Improvements or additions to documentation. label Feb 14, 2026
@blindzero
Copy link
Copy Markdown
Owner Author

@copilot check and fix broken tests because of changed examples (should still be there, just renamed).
Also check new files for update of links in website.

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 14, 2026

@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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/.psd1 files 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

Comment thread website/package.json Outdated
Comment thread website/package-lock.json Outdated
Comment thread examples/workflows/templates/ad-joiner.psd1
Comment thread docs/reference/providers/provider-ad.md Outdated
Comment thread examples/workflows/templates/exo-joiner.psd1 Outdated
Comment thread examples/workflows/mock/mock-identity-and-entitlements.psd1 Outdated
Comment thread examples/workflows/templates/ad-leaver.psd1 Outdated
Copilot AI review requested due to automatic review settings February 15, 2026 16:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 25 changed files in this pull request and generated 4 comments.

Files not reviewed (1)
  • website/package-lock.json: Language not supported

Comment thread examples/workflows/templates/exo-joiner.psd1 Outdated
Comment thread website/package.json Outdated
Comment thread examples/workflows/templates/ad-joiner.psd1
Comment thread examples/workflows/templates/ad-leaver.psd1 Outdated
Copilot AI review requested due to automatic review settings February 15, 2026 17:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 27 out of 28 changed files in this pull request and generated 11 comments.

Files not reviewed (1)
  • website/package-lock.json: Language not supported

Name = 'Mover: update org attributes (optional)'
With = @{
# Guard by convention: only run when request indicates mover
Condition = '{{Request.Input.IsMover}}'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Type = 'IdLE.Step.EnsureEntitlement'
Name = 'Mover: adjust group memberships (optional)'
With = @{
Condition = '{{Request.Input.IsMover}}'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Type = 'IdLE.Step.EnsureEntitlement'
Name = 'Mover: adjust group memberships (optional)'
With = @{
Condition = '{{Request.Input.IsMover}}'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Type = 'IdLE.Step.EnsureEntitlement'
Name = 'Mover: adjust group memberships (optional)'
With = @{
Condition = '{{Request.Input.IsMover}}'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +48 to +63
@{
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'
}
}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,152 @@
@{
Name = 'Complete Joiner - EntraID + ExchangeOnline Offboarding'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
Name = 'Complete Joiner - EntraID + ExchangeOnline Offboarding'
Name = 'AD Joiner - Complete Onboarding'

Copilot uses AI. Check for mistakes.
Entitlement = @{ Kind = 'Group'; Id = '{{Request.Input.BaselineGroups.1}}' }
State = 'Present'
}
}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
}
},

Copilot uses AI. Check for mistakes.
Type = 'IdLE.Step.EnsureEntitlement'
Name = 'Mover: adjust group memberships (optional)'
With = @{
Condition = '{{Request.Input.IsMover}}'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Comment on lines +32 to +46
@{
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'
}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment thread website/docusaurus.config.js
@blindzero blindzero merged commit 08fa065 into main Feb 15, 2026
8 checks passed
@blindzero blindzero deleted the chore/docs branch February 15, 2026 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:docs Improvements or additions to documentation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants