powerautodocs
v1.8.0
Published
Automated as-built documentation generator for Power Platform solutions
Maintainers
Readme
PowerAutoDocs
Automated as-built documentation generator for Power Platform solutions.
Reads unpacked solution XML directly from Git and publishes structured, cross-linked documentation to an Azure DevOps Wiki and/or a Word document — run locally or via an Azure DevOps pipeline. (A PDF export is also available today but is being phased out — see Output formats.)
View architecture → · Documentation wiki →
What it documents
Covers the full stack of a Dataverse / Power Platform solution:
| Component | Output | | --- | --- | | Tables & Columns | Schema, types, required flags, custom vs standard | | Views | Filter conditions, linked entity joins, column lists | | Forms | Tab/section/field breakdown, compact or detailed layout | | Relationships | 1:N with direction, custom vs OOB, ER diagram | | Power Automate Flows | Trigger, nested action tree with branch markers, Mermaid flowchart | | Classic Workflows | XAML-based workflows with condition steps | | Business Rules | If/else branches, show/hide/required/clear actions | | Plugins | Assembly metadata, step registrations, entity/message/stage | | Web Resources (JS) | Function index, JSDoc, namespace detection, AI-generated per-function summaries | | Security Roles | Privilege matrix per entity (Create/Read/Write/Delete/Append/AppendTo) | | Environment Variables | Type, default value, secret store | | Connection References | Connector name, logical name | | Global Choices | Option sets with values and labels | | Email Templates | Subject, plain text body with field placeholders | | Model-Driven Apps | Entity list, app settings, role mappings | | Power Pages | Site map, page tree, web templates, content snippets, forms, lists, web roles and access rules (opt-in — off by default) |
Output formats
Configurable independently:
| Format | Description |
| --- | --- |
| ADO Wiki | Structured, cross-linked pages published to Azure DevOps Wiki via REST API. Includes Mermaid ER diagrams and per-flow flowcharts. |
| Word (.docx) | Single self-contained document mirroring the wiki structure. A4, proportional column tables, auto-populated TOC, Mermaid diagrams embedded as images. Renders into your own company template when you supply one — see Company Word template. |
| PDF (deprecated — planned removal) | Same structure as Word but generated via pdfmake, which lags Word on theming and formatting fidelity and omits Mermaid diagrams. Local output only — not published to ADO Wiki. If you need a PDF, use Word's own Export to PDF on the .docx output instead. |
Mermaid diagrams are embedded as images in both the ADO Wiki and Word output. PDF output (deprecated) omits them.
Company Word template
Point output.wordTemplate at your organisation's Word template and the documentation is
rendered into it, rather than into a lookalike of it:
output:
word: true
wordTemplate: ./company-template.dotx # .docx or .dotx
wordTemplateStyles:
table: 'Company Table' # a table style defined in the template
bullet: 'Company Bullet' # a list paragraph style defined in the templateThe template keeps every visual decision it already makes — fonts, heading styles, page size,
margins, and the headers and footers carrying the logo. wordTheme is bypassed for everything
the template defines.
No preparation needed: an ordinary company template works as-is, its sample body replaced by
the generated documentation. Add the text {{content}} to the template to control placement
instead, in which case everything around it — a cover page before, a back page after — is
preserved exactly.
wordTemplate is resolved relative to the folder holding doc-gen.config.yml, unlike
solutions[].path, which resolves against the working directory.
Wiki structure
📁 [Solution Name]
├── 🏠 Overview ← component counts + solutions table
├── 📁 Data Model
│ ├── 📊 ER Diagram ← auto-generated Mermaid erDiagram
│ └── 📋 [Table] × N
│ ├── Columns
│ ├── Views
│ ├── Forms
│ ├── Relationships
│ └── Business Rules
├── 📁 Automation
│ ├── 🔄 Flows ← summary + per-flow pages with Mermaid diagrams
│ ├── ⚡ Classic Workflows
│ └── 🔌 Plugin Assemblies
├── 📁 Custom Code
│ └── 📜 Web Resources (JS)
├── 📁 Security
│ └── 🔐 Security Roles
├── 📁 Integrations
│ ├── 🌍 Environment Variables
│ └── 🔗 Connection References
├── 🎛️ Global Choices
├── 📧 Email Templates
├── 📱 Model-Driven Apps
└── 🌐 Power PagesAI Enrichment (optional)
Generates short, plain-English summaries for the harder-to-skim parts of a solution — Power Automate Flows, Classic Workflows, Business Rules, Plugin Assemblies, and JS Web Resources — injected as a Summary section on each component's page. JS Web Resources also get a per-function one-liner replacing the almost always empty JSDoc "Description" column.
Off by default. Base documentation is fully deterministic whether or not it is enabled.
- Cache-first — summaries are hashed and stored in a committed cache file. Unchanged components reuse their cached summary with no API call and no cost.
- Pluggable provider — Anthropic (Claude) or Azure OpenAI, including managed identity.
- Opt-in per component type — enable only the components you want summarised.
How it works
Unpacked Solution XML / JSON
↓
Parsers (one per component type)
↓
IR (typed TypeScript interfaces)
↓
Enrichment (ERD, Mermaid diagrams, optional AI summaries)
↓
Renderers (emit format-agnostic DocNode[])
↓
MarkdownSerializer → ADO Wiki Publisher (REST API)
DocxSerializer → Word .docx file
PdfSerializer → PDF file (deprecated — planned removal)Parsers only produce IR. Renderers only consume IR. Neither knows about the other — swap or add output formats without touching parsing logic.
Quick start
# 1. Unpack your solution
pac solution unpack --zipfile MySolution.zip --folder ./unpacked/MySolution
# 2. Add a doc-gen.config.yml to your repo root (copy from samples/)
# 3. Run
npx powerautodocs@latestPowerAutoDocs can be run locally or triggered automatically via an Azure DevOps pipeline. For full setup instructions see the documentation wiki:
Requirements
- Node.js 22+ (Node 24 LTS recommended — it is what CI and the sample pipeline use)
- Power Platform CLI (
pac) for unpacking solutions - Azure DevOps Wiki for wiki output (optional if using Word output only)
License
MIT — see LICENSE
