Releases: joshsmithxrm/power-platform-developer-suite
Releases · joshsmithxrm/power-platform-developer-suite
PPDS CLI v1.0.0-beta.13
Immutable
release. Only release title and notes can be modified.
What's Changed
- chore: slim CLAUDE.md and consolidate ecosystem commands by @joshsmithxrm in #239
- chore: add design doc cleanup to pre-pr and branch protection rule by @joshsmithxrm in #240
- fix: apply bypass plugins to M2M and fallback operations by @joshsmithxrm in #241
- feat: add plugin traces CLI commands by @joshsmithxrm in #243
- feat: migrate interactive mode to Terminal.Gui TUI framework by @joshsmithxrm in #242
- chore: enhance triage workflow with autonomous analysis and batch planning by @joshsmithxrm in #245
- feat: enhance /setup-ecosystem with integrated wizard by @joshsmithxrm in #248
- docs: add ADR-0016 file format policy and ADR-0017 git branching by @joshsmithxrm in #249
- docs: add NUL file handling to prune command by @joshsmithxrm in #250
- feat: code scanning cleanup and Roslyn analyzers by @joshsmithxrm in #244
- docs: add PR issue closing syntax guidance by @joshsmithxrm in #252
- feat: add git branch to status line display by @joshsmithxrm in #251
- docs: add /create-worktree command and plan mode integration by @joshsmithxrm in #253
- docs: add MCP server architecture and multi-interface development ADRs by @joshsmithxrm in #283
- docs: add Status column to /new-feature interface matrix by @joshsmithxrm in #284
- feat: improve migration logging output and synchronization by @joshsmithxrm in #286
- feat: add /next-work command for intelligent work recommendations by @joshsmithxrm in #291
- feat: logging and observability improvements by @joshsmithxrm in #296
- feat(mcp): add PPDS.Mcp server with 12 read-only Dataverse tools by @joshsmithxrm in #295
- feat(plugintraces): add quick filter shortcuts, --record filter, and service tests by @joshsmithxrm in #293
- feat: complete service extraction verification and IPluginRegistrationService by @joshsmithxrm in #294
- feat(tui): Terminal.Gui TUI migration with Application Services layer by @joshsmithxrm in #298
- feat: repo consolidation - extension and docs by @joshsmithxrm in #299
- chore: add git pull to /prune command by @joshsmithxrm in #300
- chore: simplify create-worktree command by @joshsmithxrm in #301
- chore: fix worktree permission friction and add multi-machine support by @joshsmithxrm in #306
- chore: rebranding polish and contributor setup by @joshsmithxrm in #305
- chore: consolidate slash commands from 26 to 14 by @joshsmithxrm in #310
- feat: session orchestration v2 with ISessionService by @joshsmithxrm in #312
- fix: distinguish user-provided mapping from auto-created default in summary by @joshsmithxrm in #313
- feat: development process v2 with alignment verification and patterns by @joshsmithxrm in #314
- fix: add worker-plan.md to .gitignore by @joshsmithxrm in #324
- fix(session): inject GitHub owner/repo into worker prompt from git remote by @joshsmithxrm in #320
- feat: add Ralph Wiggum autonomous iteration loop by @joshsmithxrm in #326
- fix(session): enable autonomous /ship for workers by @joshsmithxrm in #325
- fix: clean up error message duplication in bulk operation logs by @joshsmithxrm in #317
- fix(session): enable autonomous worker startup without confirmation prompt by @joshsmithxrm in #330
- feat(session): auto-cleanup orphaned session records in session list by @joshsmithxrm in #331
- fix(session): replace alarming STALE indicator with informational last-update time by @joshsmithxrm in #333
- fix(workflow): design sessions should create issues, not implement directly by @joshsmithxrm in #358
- feat(session): add PR lookup, status tracking, and GITHUB_REPOSITORY injection by @joshsmithxrm in #335
- feat(tui): add F2 rename functionality to ProfileSelectorDialog by @joshsmithxrm in #376
- feat(cli): add ppds query history command by @joshsmithxrm in #379
- feat(tui): add profile creation with all interactive auth methods by @joshsmithxrm in #378
- docs: add GitHub repository info to CLAUDE.md by @joshsmithxrm in #380
- feat(tui): add profile deletion with confirmation dialog by @joshsmithxrm in #377
- refactor(cli): extract shared QueryResultFormatter utility by @joshsmithxrm in #383
- fix(session): enable trust bypass for /create-worktree skill by @joshsmithxrm in #385
- feat(tui): add filter field to environment selector dialog by @joshsmithxrm in #386
- feat(tui): add profile details dialog (who am I) by @joshsmithxrm in #388
- feat(session): add dynamic terminal tab titles and simplify status enum by @joshsmithxrm in #389
- feat(tui): add environment details dialog with multiple access methods by @joshsmithxrm in #387
- fix(prune): add empty folder cleanup and remove hard-coded paths by @joshsmithxrm in #390
- feat(tui): add animated loading spinners for async operations by @joshsmithxrm in #394
- feat(tui): add clear all profiles dialog by @joshsmithxrm in #393
- feat(tui): add type-aware column sizing for SQL query results by @joshsmithxrm in #392
- feat(cli): add ppds backlog command for project health dashboard by @joshsmithxrm in #391
- fix(session): use Console.Title API for terminal tab titles by @joshsmithxrm in #395
- feat(tui): add pre-authentication dialog with cancel and device code fallback by @joshsmithxrm in #396
- chore: remove terminal profile script by @joshsmithxrm in #397
- chore: consolidate Claude settings with workspace by @joshsmithxrm in #399
- fix(migration): include M2M records in import throughput calculation by @joshsmithxrm in #400
- feat(rpc): add solutions/* RPC methods by @joshsmithxrm in #401
- fix(ship): check against origin/main instead of local main by @joshsmithxrm in #403
- refactor(rpc): extract common profile/service provider setup into helper method by @joshsmithxrm in #406
- f...
PPDS CLI v1.0.0-beta.12
Immutable
release. Only release title and notes can be modified.
What's Changed
- chore: slim CLAUDE.md and consolidate ecosystem commands by @joshsmithxrm in #239
- chore: add design doc cleanup to pre-pr and branch protection rule by @joshsmithxrm in #240
- fix: apply bypass plugins to M2M and fallback operations by @joshsmithxrm in #241
- feat: add plugin traces CLI commands by @joshsmithxrm in #243
- feat: migrate interactive mode to Terminal.Gui TUI framework by @joshsmithxrm in #242
- chore: enhance triage workflow with autonomous analysis and batch planning by @joshsmithxrm in #245
- feat: enhance /setup-ecosystem with integrated wizard by @joshsmithxrm in #248
- docs: add ADR-0016 file format policy and ADR-0017 git branching by @joshsmithxrm in #249
- docs: add NUL file handling to prune command by @joshsmithxrm in #250
- feat: code scanning cleanup and Roslyn analyzers by @joshsmithxrm in #244
- docs: add PR issue closing syntax guidance by @joshsmithxrm in #252
- feat: add git branch to status line display by @joshsmithxrm in #251
- docs: add /create-worktree command and plan mode integration by @joshsmithxrm in #253
- docs: add MCP server architecture and multi-interface development ADRs by @joshsmithxrm in #283
- docs: add Status column to /new-feature interface matrix by @joshsmithxrm in #284
- feat: improve migration logging output and synchronization by @joshsmithxrm in #286
- feat: add /next-work command for intelligent work recommendations by @joshsmithxrm in #291
- feat: logging and observability improvements by @joshsmithxrm in #296
- feat(mcp): add PPDS.Mcp server with 12 read-only Dataverse tools by @joshsmithxrm in #295
- feat(plugintraces): add quick filter shortcuts, --record filter, and service tests by @joshsmithxrm in #293
- feat: complete service extraction verification and IPluginRegistrationService by @joshsmithxrm in #294
- feat(tui): Terminal.Gui TUI migration with Application Services layer by @joshsmithxrm in #298
- feat: repo consolidation - extension and docs by @joshsmithxrm in #299
- chore: add git pull to /prune command by @joshsmithxrm in #300
- chore: simplify create-worktree command by @joshsmithxrm in #301
- chore: fix worktree permission friction and add multi-machine support by @joshsmithxrm in #306
- chore: rebranding polish and contributor setup by @joshsmithxrm in #305
- chore: consolidate slash commands from 26 to 14 by @joshsmithxrm in #310
- feat: session orchestration v2 with ISessionService by @joshsmithxrm in #312
- fix: distinguish user-provided mapping from auto-created default in summary by @joshsmithxrm in #313
- feat: development process v2 with alignment verification and patterns by @joshsmithxrm in #314
- fix: add worker-plan.md to .gitignore by @joshsmithxrm in #324
- fix(session): inject GitHub owner/repo into worker prompt from git remote by @joshsmithxrm in #320
- feat: add Ralph Wiggum autonomous iteration loop by @joshsmithxrm in #326
- fix(session): enable autonomous /ship for workers by @joshsmithxrm in #325
- fix: clean up error message duplication in bulk operation logs by @joshsmithxrm in #317
- fix(session): enable autonomous worker startup without confirmation prompt by @joshsmithxrm in #330
- feat(session): auto-cleanup orphaned session records in session list by @joshsmithxrm in #331
- fix(session): replace alarming STALE indicator with informational last-update time by @joshsmithxrm in #333
- fix(workflow): design sessions should create issues, not implement directly by @joshsmithxrm in #358
- feat(session): add PR lookup, status tracking, and GITHUB_REPOSITORY injection by @joshsmithxrm in #335
- feat(tui): add F2 rename functionality to ProfileSelectorDialog by @joshsmithxrm in #376
- feat(cli): add ppds query history command by @joshsmithxrm in #379
- feat(tui): add profile creation with all interactive auth methods by @joshsmithxrm in #378
- docs: add GitHub repository info to CLAUDE.md by @joshsmithxrm in #380
- feat(tui): add profile deletion with confirmation dialog by @joshsmithxrm in #377
- refactor(cli): extract shared QueryResultFormatter utility by @joshsmithxrm in #383
- fix(session): enable trust bypass for /create-worktree skill by @joshsmithxrm in #385
- feat(tui): add filter field to environment selector dialog by @joshsmithxrm in #386
- feat(tui): add profile details dialog (who am I) by @joshsmithxrm in #388
- feat(session): add dynamic terminal tab titles and simplify status enum by @joshsmithxrm in #389
- feat(tui): add environment details dialog with multiple access methods by @joshsmithxrm in #387
- fix(prune): add empty folder cleanup and remove hard-coded paths by @joshsmithxrm in #390
- feat(tui): add animated loading spinners for async operations by @joshsmithxrm in #394
- feat(tui): add clear all profiles dialog by @joshsmithxrm in #393
- feat(tui): add type-aware column sizing for SQL query results by @joshsmithxrm in #392
- feat(cli): add ppds backlog command for project health dashboard by @joshsmithxrm in #391
- fix(session): use Console.Title API for terminal tab titles by @joshsmithxrm in #395
- feat(tui): add pre-authentication dialog with cancel and device code fallback by @joshsmithxrm in #396
- chore: remove terminal profile script by @joshsmithxrm in #397
- chore: consolidate Claude settings with workspace by @joshsmithxrm in #399
- fix(migration): include M2M records in import throughput calculation by @joshsmithxrm in #400
- feat(rpc): add solutions/* RPC methods by @joshsmithxrm in #401
- fix(ship): check against origin/main instead of local main by @joshsmithxrm in #403
- refactor(rpc): extract common profile/service provider setup into helper method by @joshsmithxrm in #406
- f...
PPDS.Migration v1.0.0-beta.5
Immutable
release. Only release title and notes can be modified.
Added
- Error report v1.1 with execution context - Import error reports now include
executionContextwith CLI/SDK versions, runtime, platform, import mode, and option flags. See ADR-0022. - Bulk operation probe-once optimization - Probes with 1 record first for unsupported entities (e.g.,
team).
Changed
- M2M relationship import parallelized - Expected 4-8x performance improvement. (#196)
- M2M import is now idempotent - Duplicate association errors treated as success.
- Deferred field updates use bulk APIs - Expected ~60x performance improvement. (#196)
Fixed
- CMT import compatibility: Added
numbertype alias (#187) - CMT import compatibility: Added
biginttype support (#187) - CMT import compatibility: Added
partylisttype handling (#187) - CMT import compatibility: Infer lookup type from
lookupentityattribute (#187)
Full Changelog: Migration-v1.0.0-beta.4...Migration-v1.0.0-beta.5
PPDS.Dataverse v1.0.0-beta.4
Immutable
release. Only release title and notes can be modified.
Added
Workflowearly-bound entity - Entity class for Power Automate flows (classic workflows). Supports flow management operations. (#149)ConnectionReferenceearly-bound entity - Entity class for connection references used by flows and canvas apps. (#149)- Field-level error context in bulk operation errors -
BulkOperationErrornow includesFieldNameandFieldValueDescription. See ADR-0022.
Changed
- Increased default AcquireTimeout from 30s to 120s - Tasks queue on semaphore and need longer timeouts for large imports.
- Reduced pool exhaustion retry attempts from 3 to 1 - With proper pool queuing, exhaustion indicates real capacity issues.
Fixed
- Pool exhaustion under concurrent bulk operations - See ADR-0019.
- Pool exhaustion during throttling - Capped batch parallelism at pool capacity.
Full Changelog: Dataverse-v1.0.0-beta.3...Dataverse-v1.0.0-beta.4
PPDS CLI v1.0.0-beta.11
Immutable
release. Only release title and notes can be modified.
Added
ppds flowscommand group - Manage cloud flows (#142):ppds flows list- List cloud flows (supports--solution,--state)ppds flows get <name>- Get flow details by unique nameppds flows url <name>- Get Power Automate maker URL for a flow
ppds connectionscommand group - List Power Platform connections (#144):ppds connections list- List connections from Power Apps Admin API (supports--connector)ppds connections get <id>- Get connection details by ID
ppds connectionreferencescommand group - Manage connection references with orphan detection (#143):ppds connectionreferences list- List connection references (supports--solution,--orphaned)ppds connectionreferences get <name>- Get connection reference details by logical nameppds connectionreferences flows <name>- List flows using a connection referenceppds connectionreferences connections <name>- Show bound connection detailsppds connectionreferences analyze- Analyze flow-to-connection-reference relationships with orphan detection
ppds deployment-settingscommand group - Generate and sync deployment settings files (#145):ppds deployment-settings generate- Generate deployment settings file from current environmentppds deployment-settings sync- Sync existing file with solution (preserves values, adds new entries, removes stale)ppds deployment-settings validate- Validate deployment settings file against solution
Changed
- Enhanced interactive table view - Cell-level navigation with left/right arrows, improved keyboard handling, and better UX in SQL query wizard (#225)
- Release workflow uses draft-first flow - CLI releases now create draft releases first, upload binaries, then publish. Fixes binary attachment failures due to GitHub's immutable releases. See ADR-0023.
Installation
```bash
.NET tool (cross-platform)
dotnet tool install --global PPDS.Cli --version 1.0.0-beta.11
Or download platform binary below
```
PPDS CLI v1.0.0-beta.10
Immutable
release. Only release title and notes can be modified.
Added
ppds interactivecommand - Launch interactive TUI mode (#192):- Entry points:
ppds interactive,ppds -i,ppds --interactive - Profile and environment selection with Global Discovery integration
- SQL query wizard with results displayed in interactive table view
- Arrow key navigation for query results (up/down for rows, left/right for columns)
- Open record in browser (
O) or copy URL to clipboard (C) - Query history with up/down arrow recall
- Session-scoped connection pooling for faster subsequent queries
- Entry points:
- Version header at startup - CLI outputs diagnostic header to stderr for issue correlation.
ppds solutionscommand group - Manage Power Platform solutions (#137)ppds importjobscommand group - Monitor solution import jobs (#138)ppds environmentvariablescommand group - Manage environment variables (#139)ppds userscommand group - Manage system users (#119)ppds rolescommand group - Manage security roles (#119)ppds data truncatecommand - Delete ALL records from an entity for dev/test scenarios. See ADR-0021.
Fixed
auth create -envfailed to resolve environment - Auth method now passed to Global Discovery Service.
Full Changelog: Cli-v1.0.0-beta.9...Cli-v1.0.0-beta.10
What's Changed
- fix: profile selection and auth create environment resolution by @joshsmithxrm in #189
- feat: add Phase 1 CLI commands (#119, #137, #138, #139) by @joshsmithxrm in #193
- feat: Add interactive TUI mode with SQL query wizard by @joshsmithxrm in #192
- feat: Add Phase 2 foundation - early-bound entities and Power Platform tokens (#149, #150) by @joshsmithxrm in #195
- feat: CMT import compatibility, pool stability, and truncate command by @joshsmithxrm in #198
- docs: Release prep - Dataverse beta.4, Migration beta.5, Auth beta.5, Cli beta.10 by @joshsmithxrm in #203
Full Changelog: Cli-v1.0.0-beta.9...Cli-v1.0.0-beta.10
PPDS.Auth v1.0.0-beta.5
Immutable
release. Only release title and notes can be modified.
Added
IPowerPlatformTokenProvider- New interface for acquiring tokens for Power Platform REST APIs (Power Apps, Power Automate). (#150)PowerPlatformTokenProvider- Implementation supporting interactive browser, device code, and client credentials (SPN) flows.CloudEndpoints.GetPowerAppsApiUrl()- Returns Power Apps API URL for each cloud environment.CloudEndpoints.GetPowerAutomateApiUrl()- Returns Power Automate API URL for each cloud environment.
Fixed
- Unnamed profile selection silently failed - Active profile tracking now uses index-based lookup with backwards compatibility.
Full Changelog: Auth-v1.0.0-beta.4...Auth-v1.0.0-beta.5
PPDS.Migration v1.0.0-beta.4
Immutable
release. Only release title and notes can be modified.
Fixed
- Boolean values now export as True/False - CMT format uses
True/Falsefor boolean values; PPDS was incorrectly exporting1/0. This change ensures CMT import compatibility. (#181) - Schema export includes relationships section - The
<relationships>section from input schemas is now preserved in exporteddata_schema.xmlfiles. (#182) - M2M relationship export now shows progress counts - Previously displayed
0/0for M2M export progress; now shows actual association counts with relationship names (e.g.,[Export] team M2M teamroles: 112/112). Starting messages no longer trigger entity progress display. (#184)
Full Changelog: Migration-v1.0.0-beta.3...Migration-v1.0.0-beta.4
PPDS.Migration v1.0.0-beta.3
Immutable
release. Only release title and notes can be modified.
Changed
- PluginStepManager and UserMappingGenerator refactored to use early-bound entities - Replaced magic string attribute access with strongly-typed
PPDS.Dataverse.Generatedclasses (SdkMessageProcessingStep,SdkMessageFilter,SystemUser). Provides compile-time type safety and IntelliSense for entity operations. (#56) - Progress reporters output to stderr -
ConsoleProgressReporterandJsonProgressReporternow write toConsole.Errorinstead ofConsole.Out, enabling clean piping of JSON output (#76)
PPDS.Dataverse v1.0.0-beta.3
Immutable
release. Only release title and notes can be modified.
Added
- SQL parser and FetchXML transpiler - Full SQL-to-FetchXML translation for querying Dataverse (#52):
SqlLexer- SQL tokenizer with keyword/operator/literal recognitionSqlParser- Recursive descent parser producing typed ASTSqlToFetchXmlTranspiler- AST to FetchXML conversion- Supports: SELECT (columns, *, aliases), WHERE (=, <>, !=, <, >, <=, >=, LIKE, IS NULL, IN, AND, OR, parentheses), JOIN (INNER, LEFT, RIGHT), ORDER BY, GROUP BY, TOP, DISTINCT, aggregates (COUNT, SUM, AVG, MIN, MAX, COUNT DISTINCT)
- Comment preservation for round-trip scenarios
- Position-aware error messages with context snippets
- Query execution service - New
IQueryExecutorinterface andQueryExecutorimplementation:- Execute FetchXML queries via SDK's
RetrieveMultiple - Proper XML parsing with
System.Xml.Linq - Paging support with cookies
- Total record count via
returntotalrecordcountpreference header - Result mapping to typed
QueryResultwith column metadata
- Execute FetchXML queries via SDK's
- Metadata service for entity browsing - New
IMetadataServiceinterface andDataverseMetadataServiceimplementation (#51) - Comprehensive metadata DTOs - All metadata DTOs now include complete properties for extension Metadata Browser support (#51)
Changed
- Replaced Newtonsoft.Json with System.Text.Json - Removed external dependency; uses built-in JSON serialization with case-insensitive property matching (#72)