Add plugin sync via pac plugin push#324
Merged
Merged
Conversation
Extends the dvdt.linker.xml schema with a <Plugins> section and adds two right-click commands on .csproj files: Link to Existing Dataverse Plugin and Push Plugin to Dataverse. Link presents a merged quick-pick of unmanaged PluginAssembly and PluginPackage records (package-backed assemblies filtered out via _packageid_value eq null) and stores the chosen record's id, name, type, project path, and env URL in the linker. Push reads the entry, runs a pac auth pre-flight (installed + profile-for-env), and spawns pac plugin push with output piped to a dedicated OutputChannel and a progress notification.
Power-Maverick
approved these changes
May 24, 2026
Owner
Power-Maverick
left a comment
There was a problem hiding this comment.
Approving with one change for future.
| } | ||
| } | ||
|
|
||
| private async addInLinkerFile(entry: ILinkerPlugin): Promise<ILinkerPlugin | undefined> { |
Owner
There was a problem hiding this comment.
All linker file methods would be good to move into single utility helper class instead duplicating the code.
Power-Maverick
added a commit
that referenced
this pull request
May 25, 2026
* Add tool icons and implement command registration for tools - Added SVG icon for generic tool and PNG icons for PRT and PD tools. - Implemented `registerToolsCommands` function to register commands for opening the Dataverse REST Builder (DRB), launching PRT, CMT, and PD tools. - Created `ToolsHelper` class to manage tool interactions, including opening the DRB and launching tools based on user selection. - Included error handling for command execution failures. * Remove ERD generator function and its import from ToolsHelper * Add "DVDT" to keywords in package.json * Add plugin sync via pac plugin push (#324) * Fix garbled non-ASCII text in Compare with Server (#322) * Docs: Add @Mosh-K as a contributor * Bump version to 2.2.7 in package.json * Update CHANGELOG for v2.2.7 release with merged features and commits --------- Co-authored-by: Mosh-K <158998622+Mosh-K@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds plugin sync to DVDT — a parallel workflow to web resource sync, but for Dataverse plugin assemblies and packages. Lets developers link a local
.csprojto an existing PluginAssembly/PluginPackage record and push changes viapac plugin pushdirectly from VS Code, without leaving the editor.What's new
.csprojfiles: Link to Existing Dataverse Plugin and Push Plugin to Dataverse.dvdt.linker.xmlschema gains a<Plugins>section (sibling to<WebResources>/<Settings>), with one<Plugin>element per linked project storingId,dvName,type(Assembly/Nuget),localProjectPath, andenvironment.Design choices worth highlighting
pac plugin pushrather than re-implementing plugin registration.typeattribute discriminator — matches howpac plugin push --type Nuget|Assemblyitself models the choice.environmentis stored per entry. This lets push run without requiring an active DVDT connection — pac handles its own auth.Test plan
.csproj→ Link → quick-pick shows both kinds with type as the description.pac auth create --environment "<url>".Out of scope for this PR