@sabrish/power-platform-solution-blueprint 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,57 @@ All notable changes to Power Platform Solution Blueprint will be documented in t
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.5.0] — 2026-10-10
9
+
10
+ Fixes same-entity cross-entity false positives and PPTB rendering of the README, adds SRI hashes and publish-workflow hardening, removes `npm-shrinkwrap.json`, and adds the tool icon, vitest suite and manifest validation.
11
+
12
+ ### Added
13
+ - **PPTB tool icon** — `public/icon/ppsb.svg` (copied to `dist/icon/`) is set as the `icon` field in `package.json`.
14
+ - **Unit test suite (vitest)** — `pnpm test` runs `vitest run`. Tests are co-located as `*.test.ts` under `src/`.
15
+ - **Manifest validation** — `pnpm validate` runs `pptb-validate` against the PPTB manifest.
16
+
17
+ ### Changed
18
+ - **`@pptb/types` upgraded to `^1.2.6`** (was `v1.0.19+`).
19
+ - **Publish workflow runs tests** before publishing to npm.
20
+ - **Publish workflow split into build and publish jobs** — `dist/` is handed to the publish job as a workflow artifact.
21
+ - **Orchestrator and gate documentation aligned with actual `/pre-commit` and `/push-branch` behaviour** — each commit is gated individually by `/pre-commit`; `/push-branch` runs the full pre-PR gate before pushing.
22
+
23
+ ### Fixed
24
+ - **Same-entity flows and classic workflows no longer reported as cross-entity** — entity set names in definitions (for example `accounts`) are resolved to logical names (for example `account`) before the cross-entity comparison.
25
+ - **Operation detection prefers `operationId`** over the action name when identifying the Dataverse operation.
26
+ - **Path entity regex accepts digits** in entity logical names.
27
+ - **README images and links render in PPTB** (#46) — raw HTML removed from the README, absolute URLs used for images and documentation links, links to missing `docs/examples` removed, and the PPSB icon added to the header.
28
+ - **README badges replaced by a text version line** (Refs #46) — PPTB's README viewer blocks `img.shields.io` images, so the version and status badges are now the plain-text line `**Version:** 1.5.0 · **Status:** Stable`.
29
+
30
+ ### Security
31
+ - **SRI hashes on pinned CDN scripts** — the Mermaid 10.9.1 and Cytoscape 3.33.1 `<script>` tags in the HTML export carry `integrity` (sha384) and `crossorigin` attributes.
32
+ - **Publish workflow permissions hardened** — `id-token: write` is scoped to a dedicated publish job (the build/test job is read-only); publishing is restricted to releases or `main`; the unused `workflow_dispatch` `version` input is removed.
33
+ - **HTML export escapes global choice option values** before writing them to the exported HTML.
34
+
35
+ ### Removed
36
+ - **Preview badges from Cross-Entity Automation** — removed from the app and from the HTML export.
37
+ - **`npm-shrinkwrap.json` and its generation process** — the file is no longer committed or published. The PPTB intake ignores it (pptb-web #109, desktop-app #652 / #644), PPTB Desktop installs tools via tar extraction and never reads it, and npm 12 cannot generate it. The development lockfile remains `pnpm-lock.yaml`.
38
+
39
+ ### Technical
40
+ - **Release flow** — no longer regenerates a shrinkwrap; `npm version` now updates only `package.json`.
41
+
42
+ ---
43
+
44
+ ## [1.4.0] — 2026-07-01
45
+
46
+ ### Added
47
+ - **AI-friendly Markdown export — YAML frontmatter and flat headings** — all generated Markdown files now include YAML frontmatter blocks with metadata (`blueprint_type`, logical name, display name, counts, version); entity overview sections include Dataverse description as blockquote for self-contained AI agent reading; cross-entity trace sections replace `<details>`/`<summary>` HTML collapsed blocks with flat `###` headings so content is visible to AI agents and rendered expanded in ADO Wiki
48
+
49
+ ### Changed
50
+ - **Markdown export headings in cross-entity trace** — replaced `<details>`/`<summary>` HTML collapsed sections with flat `###` headings (H3) for improved readability in AI agents and Azure DevOps Wiki rendering
51
+
52
+ ### Technical
53
+ - **MarkdownFormatter new static helpers** — `formatFrontmatter(fields)` generates YAML with proper escaping (string quoting for colons/hashes/newlines, YAML 1.1 literal detection, array flow sequences with per-item escaping); `formatBlockquote(text)` handles multi-line blockquotes with proper indentation
54
+ - **`extractPublisherPrefix` refactoring** — moved 4th duplicate into `src/core/utils/entityName.ts` as named export; `MarkdownReporter.ts` imports it; pre-existing duplicates in `ERDGenerator.ts` and `SolutionDistributionAnalyzer.ts` tracked for follow-up consolidation
55
+ - **Version import consolidation** — both `MarkdownReporter.ts` and `JsonReporter.ts` now import `version` from `package.json` (matching pattern)
56
+
57
+ ---
58
+
8
59
  ## [1.3.0] - 2026-06-23
9
60
 
10
61
  ### Added
package/README.md CHANGED
@@ -1,9 +1,10 @@
1
+ ![PPSB](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/public/icon/ppsb.svg)
2
+
1
3
  # Power Platform Solution Blueprint (PPSB)
2
4
 
3
5
  > Complete architectural blueprints for your Power Platform solutions.
4
6
 
5
- ![Version](https://img.shields.io/badge/version-1.1.2-blue)
6
- ![Status](https://img.shields.io/badge/status-stable-green)
7
+ **Version:** 1.5.0 · **Status:** Stable
7
8
 
8
9
  Generate comprehensive technical documentation for Dataverse and Power Platform solutions with automated discovery, analysis, and export capabilities.
9
10
 
@@ -21,8 +22,7 @@ PPSB benefits **solution architects** (system documentation), **developers** (on
21
22
 
22
23
  ## ✨ Key Features
23
24
 
24
- <details>
25
- <summary><b>📋 Discovery & Documentation</b> (click to expand)</summary>
25
+ ### 📋 Discovery & Documentation
26
26
 
27
27
  - **Entities**: Complete schema (fields, relationships, keys, alternate keys)
28
28
  - **Plugins**: Full registration details with execution order analysis
@@ -36,12 +36,9 @@ PPSB benefits **solution architects** (system documentation), **developers** (on
36
36
  - **Connection References**: Premium connector detection for licensing
37
37
  - **Global Choices**: Shared option sets with usage tracking
38
38
  - **Security**: Roles, field security profiles, attribute masking, column security
39
- - See [SUPPORTED_COMPONENTS.md](./SUPPORTED_COMPONENTS.md) for the full component status list — Supported, Partial, and Planned.
40
-
41
- </details>
39
+ - See [SUPPORTED_COMPONENTS.md](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/SUPPORTED_COMPONENTS.md) for the full component status list — Supported, Partial, and Planned.
42
40
 
43
- <details>
44
- <summary><b>📊 Analysis & Visualization</b> (click to expand)</summary>
41
+ ### 📊 Analysis & Visualization
45
42
 
46
43
  - **Entity Relationship Diagram (ERD)**: Interactive Cytoscape.js force-directed graph with pan, zoom, node isolation, publisher filter, and PNG/SVG export
47
44
  - **Execution Pipeline**: Visual representation of client → sync → async automation flow per entity
@@ -51,28 +48,20 @@ PPSB benefits **solution architects** (system documentation), **developers** (on
51
48
  - **Entity Complexity**: Scoring based on field count, automation density, and relationship complexity
52
49
  - **Performance Risks**: Identify synchronous plugins with external calls, long execution chains
53
50
 
54
- </details>
55
-
56
- <details>
57
- <summary><b>💾 Export Formats</b> (click to expand)</summary>
51
+ ### 💾 Export Formats
58
52
 
59
53
  - **Markdown**: Complete file structure ready for Azure DevOps Wiki upload
60
54
  - **JSON**: Full data export for programmatic use, baselines, and CI/CD pipelines
61
55
  - **HTML**: Single-page interactive document with navigation, search, and accordion sections
62
56
  - **ZIP**: All formats bundled together with organized directory structure
63
57
 
64
- </details>
65
-
66
- <details>
67
- <summary><b>🔍 Smart Scope Selection</b> (click to expand)</summary>
58
+ ### 🔍 Smart Scope Selection
68
59
 
69
60
  - **By Publisher**: Select one or more publishers to document all their solutions
70
61
  - **By Solution**: Choose specific solutions regardless of publisher
71
62
  - **By Entity**: Document all entities (with optional system entity inclusion)
72
63
  - **Filtering**: Multi-select with live filtering and selected item management
73
64
 
74
- </details>
75
-
76
65
  ---
77
66
 
78
67
  ## 🚀 Quick Start
@@ -85,9 +74,8 @@ PPSB benefits **solution architects** (system documentation), **developers** (on
85
74
  6. **Export**: Download as Markdown, JSON, HTML, or ZIP bundle
86
75
  7. **Use**: Upload Markdown to Azure DevOps Wiki or share HTML with stakeholders
87
76
 
88
- 📖 **[Detailed User Guide](docs/user-guide.md)** |
89
- 📊 **[Example Output Structure](docs/examples/example-output-structure.md)** |
90
- 🏗️ **[Architecture Documentation](docs/architecture.md)**
77
+ 📖 **[Detailed User Guide](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/user-guide.md)** |
78
+ 🏗️ **[Architecture Documentation](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/architecture.md)**
91
79
 
92
80
  ---
93
81
 
@@ -96,64 +84,64 @@ PPSB benefits **solution architects** (system documentation), **developers** (on
96
84
  ### Scope Selection
97
85
  Choose what to document - by publisher or solution with multi-select filtering.
98
86
 
99
- ![Scope Selection](docs/screenshots/PPSB-1-What%20to%20document-selector.png)
87
+ ![Scope Selection](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-1-What%20to%20document-selector.png)
100
88
 
101
89
  ### Confirmation Screen
102
90
  Review your selection before generating the blueprint.
103
91
 
104
- ![Generator Confirmation](docs/screenshots/PPSB-2-Generator-Confirmation.png)
92
+ ![Generator Confirmation](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-2-Generator-Confirmation.png)
105
93
 
106
94
  ### Results Dashboard
107
95
  Interactive dashboard with summary metrics, ERD visualization, and component browser.
108
96
 
109
- ![Dashboard](docs/screenshots/PPSB-3-Dashboard.png)
97
+ ![Dashboard](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-3-Dashboard.png)
110
98
 
111
99
  ### Component Details
112
100
  Browse and explore all discovered components with expandable details and inline documentation.
113
101
 
114
- ![Component Details](docs/screenshots/PPSB-4-Component-Details.png)
102
+ ![Component Details](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-4-Component-Details.png)
115
103
 
116
104
  ### Solution Distribution Analysis
117
105
  Analyze component distribution across solutions with dependency mapping and shared component detection.
118
106
 
119
- ![Solution Distribution Analysis](docs/screenshots/PPSB-5-Solution%20Distrubution%20Analysis.png)
107
+ ![Solution Distribution Analysis](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-5-Solution%20Distrubution%20Analysis.png)
120
108
 
121
109
  ### External Dependencies Analysis
122
110
  Identify and assess all external API calls across flows, plugins, and web resources with risk scoring.
123
111
 
124
- ![External Dependencies Analysis](docs/screenshots/PPSB-6-External%20Dependencies%20Analysis.png)
112
+ ![External Dependencies Analysis](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-6-External%20Dependencies%20Analysis.png)
125
113
 
126
114
  ### Export Options
127
115
  Choose your export format - Markdown, JSON, HTML, or ZIP bundle.
128
116
 
129
- ![Export Options](docs/screenshots/PPSB-6-Export%20Options.png)
117
+ ![Export Options](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-6-Export%20Options.png)
130
118
 
131
119
  ### HTML Export
132
120
  Self-contained, interactive HTML documentation ready to share with stakeholders.
133
121
 
134
- ![HTML Export Example 1](docs/screenshots/PPSB-7-Export%20html.png)
122
+ ![HTML Export Example 1](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-7-Export%20html.png)
135
123
 
136
- ![HTML Export Example 2](docs/screenshots/PPSB-8-Export%20html.png)
124
+ ![HTML Export Example 2](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-8-Export%20html.png)
137
125
 
138
126
  ### Entity Relationship Diagram
139
127
  Interactive force-directed ERD with pan, zoom, node isolation, publisher filter, and PNG/SVG export.
140
128
 
141
- ![ERD](docs/screenshots/PPSB-9-ERD.png)
129
+ ![ERD](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-9-ERD.png)
142
130
 
143
131
  ### Cross-Entity Automation
144
132
  Trace automation chains that cross entity boundaries — how plugins and flows on one entity trigger automation on related entities.
145
133
 
146
- ![Cross-Entity Automation](docs/screenshots/PPSB-10-Cross-Entity-Automation.png)
134
+ ![Cross-Entity Automation](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-10-Cross-Entity-Automation.png)
147
135
 
148
136
  ### Global Automation Chain Map
149
137
  Full cross-entity automation chain map showing all entity pipelines and their inter-entity connections.
150
138
 
151
- ![Global Chain Map](docs/screenshots/PPSB-11-Cross-Entity-Automation-Global-Chain-Map.png)
139
+ ![Global Chain Map](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-11-Cross-Entity-Automation-Global-Chain-Map.png)
152
140
 
153
141
  ### Fetch Diagnostics Log
154
142
  Real-time fetch diagnostics showing every Dataverse API call with timing, batch sizes, and retry information.
155
143
 
156
- ![Fetch Log](docs/screenshots/PPSB-12-Fetch-Log.png)
144
+ ![Fetch Log](https://raw.githubusercontent.com/sabrish/power-platform-solution-blueprint/main/docs/screenshots/PPSB-12-Fetch-Log.png)
157
145
 
158
146
  ---
159
147
 
@@ -180,7 +168,7 @@ Real-time fetch diagnostics showing every Dataverse API call with timing, batch
180
168
  - **Complexity Analysis**: Get detailed migration recommendations with step-by-step guidance
181
169
  - **Dependency Mapping**: Understand cross-entity automation before migration
182
170
 
183
- 📖 **[More Use Cases in User Guide](docs/user-guide.md#common-use-cases)**
171
+ 📖 **[More Use Cases in User Guide](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/user-guide.md#8-common-use-cases)**
184
172
 
185
173
  ---
186
174
 
@@ -193,8 +181,8 @@ Real-time fetch diagnostics showing every Dataverse API call with timing, batch
193
181
  - **Export**: JSZip (multi-file packages)
194
182
  - **Architecture**: Flat structure with separated core logic (`src/core/`) and React UI (`src/components/`)
195
183
 
196
- 🏗️ **[Architecture Details](docs/architecture.md)** |
197
- 🛣️ **[Roadmap](docs/roadmap.md)**
184
+ 🏗️ **[Architecture Details](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/architecture.md)** |
185
+ 🛣️ **[Roadmap](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/roadmap.md)**
198
186
 
199
187
  ---
200
188
 
@@ -243,15 +231,11 @@ pnpm typecheck
243
231
 
244
232
  Comprehensive documentation for all aspects of PPSB:
245
233
 
246
- - **[User Guide](docs/user-guide.md)** - Complete usage instructions from scope selection to export
247
- - **[Architecture](docs/architecture.md)** - Technical design, component structure, and extension points
248
- - **[API Security](docs/API_SECURITY.md)** - Complete API reference, security considerations, and data access documentation
249
- - **[Roadmap](docs/roadmap.md)** - Future versions (baseline comparison, CLI, CI/CD integration)
250
- - **[Examples](docs/examples/)** - Sample outputs and documentation structure
251
- - [Output Structure](docs/examples/example-output-structure.md)
252
- - [Sample ERD](docs/examples/sample-erd.md)
253
- - [Sample Entity Documentation](docs/examples/sample-entity-doc.md)
254
- - **[Changelog](CHANGELOG.md)** - Version history and release notes
234
+ - **[User Guide](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/user-guide.md)** - Complete usage instructions from scope selection to export
235
+ - **[Architecture](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/architecture.md)** - Technical design, component structure, and extension points
236
+ - **[API Security](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/API_SECURITY.md)** - Complete API reference, security considerations, and data access documentation
237
+ - **[Roadmap](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/roadmap.md)** - Future versions (baseline comparison, CLI, CI/CD integration)
238
+ - **[Changelog](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/CHANGELOG.md)** - Version history and release notes
255
239
 
256
240
  ---
257
241
 
@@ -326,13 +310,13 @@ PPSB is under active development with exciting features planned:
326
310
  - Multi-tenant support
327
311
  - Advanced visualizations and AI-powered insights
328
312
 
329
- 📖 **[Full Roadmap](docs/roadmap.md)**
313
+ 📖 **[Full Roadmap](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/roadmap.md)**
330
314
 
331
315
  ---
332
316
 
333
317
  ## 📄 License
334
318
 
335
- [MIT License](LICENSE)
319
+ [MIT License](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/LICENSE)
336
320
 
337
321
  Copyright © 2026 SAB. All rights reserved.
338
322
 
@@ -342,18 +326,17 @@ Copyright © 2026 SAB. All rights reserved.
342
326
 
343
327
  - **Issues**: [GitHub Issues](https://github.com/sabrish/power-platform-solution-blueprint/issues) - Report bugs or request features
344
328
  - **Discussions**: [GitHub Discussions](https://github.com/sabrish/power-platform-solution-blueprint/discussions) - Ask questions and share ideas
345
- - **Documentation**: [docs/](docs/) - Comprehensive guides and examples
329
+ - **Documentation**: [docs/](https://github.com/sabrish/power-platform-solution-blueprint/tree/main/docs/) - Comprehensive guides
346
330
 
347
331
  ---
348
332
 
349
333
  ## 🌟 Quick Links
350
334
 
351
- - [Installation](#installation)
352
- - [User Guide](docs/user-guide.md)
353
- - [Architecture](docs/architecture.md)
354
- - [Roadmap](docs/roadmap.md)
355
- - [Changelog](CHANGELOG.md)
356
- - [Examples](docs/examples/)
335
+ - [Installation](#-installation)
336
+ - [User Guide](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/user-guide.md)
337
+ - [Architecture](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/architecture.md)
338
+ - [Roadmap](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/docs/roadmap.md)
339
+ - [Changelog](https://github.com/sabrish/power-platform-solution-blueprint/blob/main/CHANGELOG.md)
357
340
 
358
341
  ---
359
342