# timothy-itayi/m365-intune-helpdesk-lab architecture

> Architecture diagram of the GitHub repository timothy-itayi/m365-intune-helpdesk-lab, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/timothy-itayi/m365-intune-helpdesk-lab
- Repository: https://github.com/timothy-itayi/m365-intune-helpdesk-lab

## Overview

This repository is a written record of a small-business Microsoft 365/Intune helpdesk lab, not a live service. Its documented workflow moves from tenant setup through groups, Conditional Access and Intune configuration, with PowerShell scripts for joiners, leavers and tenant reporting. Evidence and phase notes document the work; device enrolment and policy enforcement were not demonstrated. No source excerpts were provided, so script internals and runtime call relationships are not inferred.

Main entry points: [`evidence`](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/tree/main/evidence) (Phase evidence), [`docs/phases/01-tenant.md`](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/01-tenant.md) (Tenant setup), [`docs/phases/02-groups.md`](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/02-groups.md) (User groups), [`docs/phases/04-conditional-access.md`](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/04-conditional-access.md) (Conditional Access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_tenant["Tenant setup"]
  node_tenant_setup["Tenant setup<br/>[01-tenant.md]"]
  node_groups["User groups<br/>[02-groups.md]"]
end

subgraph group_policies["Access and devices"]
  node_conditional_access["Conditional Access"]
  node_intune["Intune policies<br/>[05-intune.md]"]
end

subgraph group_automation["Helpdesk automation"]
  node_new_starter["New starter<br/>[New-Starter.ps1]"]
  node_remove_leaver["Remove leaver<br/>[Remove-Leaver.ps1]"]
  node_tenant_report["Tenant report"]
end

subgraph group_records["Lab records"]
  node_phase_evidence["Phase evidence"]
  node_runbooks["Helpdesk runbooks"]
end

node_admin(("IT administrator"))
node_m365_tenant["Microsoft 365 tenant"]

node_admin -->|"documents setup"| node_tenant_setup
node_tenant_setup -->|"next phase"| node_groups
node_groups -->|"next phase"| node_conditional_access
node_conditional_access -->|"next phase"| node_intune
node_tenant_setup -->|"records work"| node_phase_evidence
node_groups -->|"records work"| node_phase_evidence
node_conditional_access -->|"records work"| node_phase_evidence
node_intune -->|"records work"| node_phase_evidence
node_admin -.->|"runs automation"| node_new_starter
node_admin -.->|"runs automation"| node_remove_leaver
node_admin -.->|"runs automation"| node_tenant_report
node_new_starter -.->|"manages users"| node_m365_tenant
node_remove_leaver -.->|"manages users"| node_m365_tenant

click node_tenant_setup "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/01-tenant.md"
click node_groups "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/02-groups.md"
click node_conditional_access "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/04-conditional-access.md"
click node_intune "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/05-intune.md"
click node_new_starter "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/New-Starter.ps1"
click node_remove_leaver "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/Remove-Leaver.ps1"
click node_tenant_report "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/Get-TenantReport.ps1"
click node_phase_evidence "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/tree/main/evidence"
click node_runbooks "https://github.com/timothy-itayi/m365-intune-helpdesk-lab/tree/main/docs/runbooks"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_tenant_setup,node_groups toneBlue
class node_conditional_access,node_intune toneAmber
class node_new_starter,node_remove_leaver,node_tenant_report toneMint
class node_phase_evidence,node_runbooks toneRose
class node_admin,node_m365_tenant toneIndigo
```

## Components

### Tenant setup

- [Tenant setup](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/01-tenant.md): `docs/phases/01-tenant.md`
- [User groups](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/02-groups.md): `docs/phases/02-groups.md`

### Access and devices

- [Conditional Access](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/04-conditional-access.md): `docs/phases/04-conditional-access.md`
- [Intune policies](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/docs/phases/05-intune.md): `docs/phases/05-intune.md`

### Helpdesk automation

- [New starter](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/New-Starter.ps1): `scripts/New-Starter.ps1`
- [Remove leaver](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/Remove-Leaver.ps1): `scripts/Remove-Leaver.ps1`
- [Tenant report](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/blob/main/scripts/Get-TenantReport.ps1): `scripts/Get-TenantReport.ps1`

### Lab records

- [Phase evidence](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/tree/main/evidence): `evidence`
- [Helpdesk runbooks](https://github.com/timothy-itayi/m365-intune-helpdesk-lab/tree/main/docs/runbooks): `docs/runbooks`

### Other components

- **IT administrator**
- **Microsoft 365 tenant**

## Connections

- IT administrator → Tenant setup: documents setup (evidence: `README.md`)
- Tenant setup → User groups: next phase (evidence: `README.md`)
- User groups → Conditional Access: next phase (evidence: `README.md`)
- Conditional Access → Intune policies: next phase (evidence: `README.md`)
- Tenant setup → Phase evidence: records work (evidence: `README.md`)
- User groups → Phase evidence: records work (evidence: `README.md`)
- Conditional Access → Phase evidence: records work (evidence: `README.md`)
- Intune policies → Phase evidence: records work (evidence: `README.md`)
- IT administrator → New starter: runs automation
- IT administrator → Remove leaver: runs automation
- IT administrator → Tenant report: runs automation
- New starter → Microsoft 365 tenant: manages users
- Remove leaver → Microsoft 365 tenant: manages users
