Skip to content

A universal desktop app that contains multiple tools to ease the customization and configuration of Power Platform

License

Notifications You must be signed in to change notification settings

MattBerg11/PPTB-desktop-app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Power Platform Tool Box

A universal desktop app that contains multiple tools to ease the customization and configuration of Power Platform

This repo is an open-source project that provides a code for a Power Platform Tool Box (PPTB)

Download for Windows

Downloads

Download for Windows    Download for macOS

Feature request   |   Report a bug   |   Tool Submission   |   Support


Important

macOS users: If you see a "damaged" or "unidentified developer" warning after installation, run the following command in the terminal to mark the app as safe: xattr -cr "/Applications/Power Platform Tool Box.app"

Known Issues

  • Auto-Update does not work for macOS users as it needs Apple Developer Id (still working through that process)

Features Overview

  • 🔧 Tool Management: Install and manage external tools built by 3rd parties via npm
  • 🔒 Secure Tool Host: VS Code Extension Host-inspired architecture for isolated tool execution
  • 🛡️ Per-Tool CSP: Content Security Policy configuration with user consent for external resource access
  • 🔗 Dataverse Connections: Create and manage connections to Dataverse environments
  • ⚙️ Settings Management:
    • User settings for the ToolBox application
    • Individual tool-specific settings
  • 🎨 Modern Interface: Built with Microsoft Fluent UI components for a consistent, accessible experience aligned with Power Platform
  • 📡 Event-Driven API: ToolBox provides its own APIs that emit events
  • 🔔 Notifications: Built-in notification system to keep users informed
  • 🔄 Auto-Updates: Automatic application updates with user control

Architecture

The application uses a robust Tool Host architecture inspired by VS Code's Extension Host.

See ARCHITECTURE.md for more information.

Security Model

  • Process Isolation: Each tool runs in a separate Node.js process
  • Structured IPC: All communication via validated message protocol
  • Limited API Surface: Tools only access specific ToolBox APIs
  • No Direct Access: Tools cannot access file system, Electron APIs, or other tools
  • Per-Tool CSP: Tools request specific Content Security Policy exceptions with user consent (see CSP Configuration)

Tool Development

Power Platform Tool Box uses a secure, extensible Tool Host architecture that allows developers to create custom tools as npm packages. Tools run in isolated processes and communicate with the ToolBox through a secure API.

See TOOL_DEV.md for the complete guide on creating tools.

Sample Tools Repository

Check out the sample-tools repository for complete, ready-to-use examples demonstrating different frameworks:

ToolBox development

See TOOLBOX_DEV.md for the complete guide on creating tools.

Installing Tools

Users can install tools directly from the application:

  1. Navigate to the Tool Marketplace within the app
  2. Search for the tool and click on Install button on the tool
  3. The tool will be installed, loaded, and activated automatically

Tool Security

  • Each tool runs in an isolated Node.js process
  • Tools communicate with ToolBox via secure IPC protocol
  • Tools only have access to the Power Platform Tool Box API
  • No direct access to file system, Electron, or Node.js APIs

Dataverse Connections

Create connections to Dataverse environments:

  1. Navigate to "Connections" tab
  2. Click "Add Connection"
  3. Follow the prompt

Releases & Downloads

Power Platform Tool Box releases are published on GitHub:

  • Stable Releases: Published when PRs are merged to the main branch
  • Nightly Builds: Pre-release builds from the dev branch (built daily if there are new commits)

Download Latest Release

Visit the Releases page to download:

  • Windows: .exe installer
  • macOS: .dmg installer

Auto-Updates

The application supports automatic updates to keep your ToolBox up to date:

Enabling Auto-Updates

  1. Navigate to "Settings" tab
  2. Check the "Auto Update" checkbox
  3. The application will automatically check for updates every 6 hours

Manual Update Check

  1. Navigate to "Settings" tab
  2. Click "Check for Updates" button
  3. If an update is available, you'll be prompted to download it
  4. Once downloaded, restart the application to install the update

Update Process

  • Updates are downloaded in the background
  • You control when to install updates
  • Updates are published via GitHub releases
  • The application checks for updates on startup (if auto-update is enabled)

Documentation

Porting XrmToolBox Tools

Discussions

If you want to have any discussions on any feature, please use the Discussion Board.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines on how to contribute to the project.

If you wish to offical be part of the team, please reach out to one of the listed contributor below for onboarding.

Offical Team (emoji key):

Danish Naglekar
Danish Naglekar

💬 💻 🖋 🎨 📖 🚇 🛡️ ⚠️ 🔧
Matt Berg
Matt Berg

🖋 📖 💡
Oleksandr Olashyn (dancingwithcrm)
Oleksandr Olashyn (dancingwithcrm)

💻 🎨 🤔 🚧
Reece
Reece

🤔 📆
LinkeD365
LinkeD365

🐛 🤔 ⚠️ 📓
mohsinonxrm
mohsinonxrm

💻 🎨 🤔 🚧
Rob Montague
Rob Montague

💻 🎨 🤔 🚧
Oliver Flint
Oliver Flint

💻 🎨 🤔 🚧
Daryl LaBar
Daryl LaBar

💻 🎨 🤔 🚧
Mike!
Mike!

💻 🎨 🤔 🚧

This project follows the all-contributors specification. Contributions of any kind welcome!

About

A universal desktop app that contains multiple tools to ease the customization and configuration of Power Platform

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Languages

  • TypeScript 77.8%
  • SCSS 13.1%
  • HTML 8.1%
  • Other 1.0%