# css-identity/adfs-diag architecture

> Architecture diagram of the GitHub repository css-identity/adfs-diag, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/css-identity/adfs-diag
- Repository: https://github.com/css-identity/adfs-diag

## Overview

This repository is a PowerShell diagnostic-collection tool for AD FS and Web Application Proxy (WAP) troubleshooting. The documented workflow is to choose a destination and collection options, gather baseline configuration, optionally run tracing while an operator reproduces an issue, then compile the collected data into a ZIP for support. The README documents these capabilities, but no script source was provided, so the component relationships below reflect documented behavior rather than inspected implementation calls.

Main entry points: [`ADFS-tracing.ps1`](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1) (Trace coordination)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_operation["Operator workflow"]
  node_script["Tracing script<br/>[ADFS-tracing.ps1]"]
  node_setup["Options and destination<br/>[ADFS-tracing.ps1]"]
  node_coordination["Trace coordination<br/>[ADFS-tracing.ps1]"]
end

subgraph group_collection["Diagnostic collection"]
  node_baseline["Static diagnostics<br/>[ADFS-tracing.ps1]"]
  node_eventlogs["Event log collection<br/>[ADFS-tracing.ps1]"]
  node_debugtraces["Service debug traces<br/>[ADFS-tracing.ps1]"]
  node_network["Network tracing<br/>[ADFS-tracing.ps1]"]
  node_performance["Performance counters<br/>[ADFS-tracing.ps1]"]
  node_ldap["LDAP tracing<br/>[ADFS-tracing.ps1]"]
  node_wap["WAP tracing<br/>[ADFS-tracing.ps1]"]
end

subgraph group_delivery["Output packaging"]
  node_archive["ZIP archive<br/>[ADFS-tracing.ps1]"]
end

node_operator(("Administrator"))
node_windows["Windows diagnostic sources"]
node_adfswap["AD FS and WAP"]
node_destination[("Destination folder")]
node_support(("Support workspace"))

node_operator -->|"runs"| node_script
node_script -->|"presents options"| node_setup
node_setup -->|"configures"| node_coordination
node_coordination -->|"starts collection"| node_baseline
node_baseline -->|"collects diagnostics"| node_windows
node_baseline -->|"reads configuration"| node_adfswap
node_coordination -->|"collects logs"| node_eventlogs
node_eventlogs -->|"reads event logs"| node_windows
node_coordination -->|"enables traces"| node_debugtraces
node_debugtraces -->|"traces services"| node_adfswap
node_coordination -->|"optionally captures"| node_network
node_coordination -->|"optionally collects"| node_performance
node_performance -->|"reads counters"| node_windows
node_coordination -->|"optionally enables"| node_ldap
node_ldap -->|"enables debug logging"| node_windows
node_coordination -->|"optionally enables"| node_wap
node_wap -->|"traces WAP"| node_adfswap
node_operator -->|"resumes and stops"| node_coordination
node_coordination -->|"compiles results"| node_archive
node_archive -->|"writes ZIP"| node_destination
node_operator -->|"uploads archive"| node_support

click node_script "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_setup "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_coordination "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_baseline "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_eventlogs "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_debugtraces "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_network "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_performance "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_ldap "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_wap "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"
click node_archive "https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1"

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_script,node_setup,node_coordination toneBlue
class node_baseline,node_eventlogs,node_debugtraces,node_network,node_performance,node_ldap,node_wap,node_destination toneAmber
class node_archive toneMint
class node_operator,node_windows,node_adfswap,node_support toneIndigo
```

## Components

### Operator workflow

- [Tracing script](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Options and destination](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Trace coordination](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`

### Diagnostic collection

- [Static diagnostics](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Event log collection](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Service debug traces](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Network tracing](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [Performance counters](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [LDAP tracing](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`
- [WAP tracing](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`

### Output packaging

- [ZIP archive](https://github.com/css-identity/adfs-diag/blob/main/ADFS-tracing.ps1): `ADFS-tracing.ps1`

### Other components

- **Administrator**
- **Windows diagnostic sources**
- **AD FS and WAP**
- **Destination folder**
- **Support workspace**

## Connections

- Administrator → Tracing script: runs (evidence: `README.md`)
- Tracing script → Options and destination: presents options (evidence: `README.md`)
- Options and destination → Trace coordination: configures (evidence: `README.md`)
- Trace coordination → Static diagnostics: starts collection (evidence: `README.md`)
- Static diagnostics → Windows diagnostic sources: collects diagnostics (evidence: `README.md`)
- Static diagnostics → AD FS and WAP: reads configuration (evidence: `README.md`)
- Trace coordination → Event log collection: collects logs (evidence: `README.md`)
- Event log collection → Windows diagnostic sources: reads event logs (evidence: `README.md`)
- Trace coordination → Service debug traces: enables traces (evidence: `README.md`)
- Service debug traces → AD FS and WAP: traces services (evidence: `README.md`)
- Trace coordination → Network tracing: optionally captures (evidence: `README.md`)
- Trace coordination → Performance counters: optionally collects (evidence: `README.md`)
- Performance counters → Windows diagnostic sources: reads counters (evidence: `README.md`)
- Trace coordination → LDAP tracing: optionally enables (evidence: `README.md`)
- LDAP tracing → Windows diagnostic sources: enables debug logging (evidence: `README.md`)
- Trace coordination → WAP tracing: optionally enables (evidence: `README.md`)
- WAP tracing → AD FS and WAP: traces WAP (evidence: `README.md`)
- Administrator → Trace coordination: resumes and stops (evidence: `README.md`)
- Trace coordination → ZIP archive: compiles results (evidence: `README.md`)
- ZIP archive → Destination folder: writes ZIP (evidence: `README.md`)
- Administrator → Support workspace: uploads archive (evidence: `README.md`)
