@sabrish/power-platform-solution-blueprint 1.0.0 → 1.1.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 +46 -0
- package/README.md +1 -1
- package/dist/assets/{index-B47wmM_c.js → index-Di7phMRB.js} +273 -253
- package/dist/index.html +1 -1
- package/npm-shrinkwrap.json +21 -21
- package/package.json +1 -1
- package/dist/assets/index-B47wmM_c.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ 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.1.0] - 2026-03-12
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Pipeline-first Cross-Entity Automation view** — switched from trace-first to pipeline-first layout; Create/Update/Delete/Manual pipelines shown per entity with inbound entry points as context; steps triggered by an inbound cross-entity write are marked with a `← inbound` badge (hover tooltip shows source automation and entity name)
|
|
12
|
+
- **External API call detection on flow steps** — connector names (non-Dataverse) shown as badges; external HTTP call URLs listed below each flow step; `⤷ External calls` badge on entity headers when any step makes external calls
|
|
13
|
+
- **Entities with external calls in default view** — entities that make external API calls but receive no cross-entity writes now appear in the default (filtered) view alongside cross-entity entities
|
|
14
|
+
- **"Default: entities with cross-entity writes or external API calls." filter note** — shown below the filter bar when the default filter is active
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **HTML export: entity headers** now show `⤷ External calls` badge alongside `→ cross-entity`; default filter includes `hasExternalInteraction` in addition to `hasCrossEntityOutput`
|
|
18
|
+
- **HTML export: step rows** now include external call badge, connector name badges, and external URL list
|
|
19
|
+
- **HTML export: Manual/On-Demand pipeline blocks** added to entity accordion bodies for entities with inbound cross-entity entry points
|
|
20
|
+
- **Markdown export: Pipeline Traces section** now includes entities with external calls (no inbound cross-entity writes); connector and external URL details added to flow step output
|
|
21
|
+
- **`gridTemplateColumns` token sweep** across all 20 list components — raw pixel values replaced with `tokens.spacingHorizontal*` equivalents
|
|
22
|
+
- **`htmlEscape` consolidation** — dual `escapeHtml`/`htmlEscape` methods unified into single `htmlEscape` with null guard; 139 callsites updated
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- **Flows using only Dataverse connectors incorrectly tagged as making external calls** — `hasExternalCalls` now only set when `externalCalls` array is non-empty; `shared_commondataservices*` and `dynamicscrm*` connector names filtered from `connectionReferences`
|
|
26
|
+
- **AUDIT-009: raw `<div>` empty states** replaced with `<EmptyState>` in `FieldSecurityProfilesView` and `PluginPackagesList`
|
|
27
|
+
- **AUDIT-011: missing `transition`** added to `profileRow` in `FieldSecurityProfilesView`
|
|
28
|
+
- **Rules of Hooks violation** in `SecurityRolesView` — `useMemo` moved above early-return guard
|
|
29
|
+
- **`useCallback` missing** on toggle handlers across 12 list components
|
|
30
|
+
- **`mergeClasses` replacing template-literal** className concatenation in `FieldSecurityProfilesView` and `GlobalChoicesList`
|
|
31
|
+
- **`onSelectAPI` prop** in `CustomAPIsList` now destructured and wired to row click handler
|
|
32
|
+
- **`FilterGroup` missing `hasActiveFilters`/`onClear`** in `GlobalChoicesList`
|
|
33
|
+
- **Inline `marginTop` style** moved to `makeStyles` in `ScopeSelector`
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## [1.0.1] - 2026-03-11
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- **Custom API / Connection Reference / Custom Connector not discovered in solution-scoped mode** — `SolutionComponentDiscovery` now uses `queryAll()` with `@odata.nextLink` cursor-based pagination for `buildSolutionComponentMap` and for the objectid-intersection queries (Custom APIs, Connection References, Custom Connectors); previously only the first page of results was retrieved, silently dropping components in solutions with large component lists
|
|
41
|
+
- **Publishers missing when environment has only managed solutions** — `PublisherDiscovery` now derives publishers from the solutions list via `$expand` rather than querying the `publishers` table directly with `isreadonly eq false`; the `isreadonly` filter excluded publishers of managed solutions, causing the publisher filter and scope selector to show no entries for environments that import but do not develop solutions
|
|
42
|
+
- **`$skip` pagination error 0x80060888** — replaced `$skip`/`$top` offset pagination in `queryAll()` with `@odata.nextLink` cursor-based pagination; several Dataverse entity types (including `customapis`) return error `0x80060888 Skip Clause is not supported` when `$skip` is used; cursor pagination is universally supported and eliminates this class of failure
|
|
43
|
+
- **Intersection query failures aborting all component discovery** — each objectid-intersection query (Custom APIs, Connection References, Custom Connectors) is now isolated in its own `try/catch` per PATTERN-012; a failure for one component type no longer aborts discovery of the remaining types
|
|
44
|
+
|
|
45
|
+
### Security
|
|
46
|
+
- **OData injection guards on entity logical name inputs** — `BusinessRuleDiscovery`, `SchemaDiscovery`, and `FieldSecurityProfileDiscovery` now validate entity logical names against `/^[a-z][a-z0-9_]*$/` before interpolating them into OData `$filter` strings; the guard is placed before any `try/catch` so a `TypeError` propagates cleanly to callers on invalid input
|
|
47
|
+
- **Workflow GUID normalisation before batching** — `BusinessRuleDiscovery.getBusinessRulesByIds` normalises and validates all workflow GUIDs before constructing batched OData queries, preventing malformed GUIDs from reaching the API
|
|
48
|
+
- **`FieldSecurityProfileDiscovery` refactored to structured `QueryOptions`** — replaced raw OData URL string construction with structured `QueryOptions`; eliminates a category of injection risk from manual string interpolation in field security profile queries
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
8
52
|
## [1.0.0] - 2026-03-11
|
|
9
53
|
|
|
10
54
|
### Added
|
|
@@ -520,6 +564,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
520
564
|
- **No Telemetry**: No usage data collected or transmitted
|
|
521
565
|
|
|
522
566
|
|
|
567
|
+
[1.1.0]: https://github.com/sabrish/power-platform-solution-blueprint/compare/v1.0.1...v1.1.0
|
|
568
|
+
[1.0.1]: https://github.com/sabrish/power-platform-solution-blueprint/compare/v1.0.0...v1.0.1
|
|
523
569
|
[1.0.0]: https://github.com/sabrish/power-platform-solution-blueprint/compare/v0.9.0...v1.0.0
|
|
524
570
|
[0.9.0]: https://github.com/sabrish/power-platform-solution-blueprint/compare/v0.8.0...v0.9.0
|
|
525
571
|
[0.8.0]: https://github.com/sabrish/power-platform-solution-blueprint/compare/v0.7.2...v0.8.0
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Complete architectural blueprints for your Power Platform solutions.
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
Generate comprehensive technical documentation for Dataverse and Power Platform solutions with automated discovery, analysis, and export capabilities.
|