Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>BambooNew to Visual Studio Code? Get it now.
Bamboo

Bamboo

root16

|
274 installs
| (4) | Free
Enables users to create, update, and publish Web Resources and Custom Controls for Microsoft Power Platform — directly from VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Bamboo

Bamboo is a simple, friendly, and ⚡blazingly⚡ fast customization manager, designed to speed up development time on the Microsoft Power Platform. 🚀

Currently supporting web resources and custom controls, Bamboo provides a seamless experience for developers to edit and manage these solution components - all from within VS Code.

Features

Bamboo provides the following features inside VS Code:

  • Create or update web resources.
  • Publish web resources automatically.
  • Add web resources to a solution automatically.
  • Manage custom controls (PCF components) through the import + publish of solutions.
  • List all web resources and custom controls in a given solution in a VS Code tree view.

Component Tree

Component Tree

Commands

Command Palette

Getting Started

  1. Install the extension here.
  2. Add a bamboo.conf.json at the root of your VS Code workspace.
    • Example Project Strucutre
    • Do not check bamboo.conf.json into source control.
  3. Populate the json file with the following data:
{
    "baseUrl": "https://<org>.crm.dynamics.com",
    "solutionUniqueName": "<your-solution-name>",
    "credential": {
        "type": "ClientSecret",
        "clientId": "<your-client-id>",
        "clientSecret": "<your-client-secret>",
        "tenantId": "<your-tenant-id>"
    },
    "webResources": [
        {
            "dataverseName": "new_/forms/account.js",
            "relativePathOnDisk": "path/to/new_/forms/account.js"
        },
        {
            "dataverseName": "new_/forms/contact.js",
            "relativePathOnDisk": "path/to/new_/forms/contact.js"
        },
        ...
    ],
    "customControls": [
        {
            "dataverseName": "new_NEW.ControlOne",
            "relativePathOnDiskToSolution": "path/to/ControlOneSolution.zip",
            "solutionName": "ControlOneSolution"
        },
        {
            "dataverseName": "new_NEW.ControlTwo",
            "relativePathOnDiskToSolution": "path/to/ControlTwoSolution.zip",
            "solutionName": "ControlTwoSolution"
        },
        ...
    ]
}
  1. Reload VS Code
    • Everytime a configuration change is made to bamboo.conf.json VS Code needs to be re reloaded

Authentication Methods Supported

Authentication Scheme Currently Supported
Client Id / Client Secret ✅
OAuth ❌

Important Notes

  • All paths must use the / seperator.
  • baseUrl must not end with a /.
  • The app registration specified must have:
    • Access to the specified Dataverse environment
    • The appropiate Security Role necessary to:
      • Upload solutions
      • Publish solutions
      • Upload web resources
      • Publish web resources
      • Add components to solutions
  • relativePathOnDisk and relativePathOnDiskToSolution must not start with a /.
  • For web resources, dataverseName and relativePathOnDisk don't need to be similar (as shown in the example), this is just encouraged for ease of development

Usage

Command Title
bamboo.syncCurrentFile Sync current file. (Must be present on conf.)
bamboo.syncAllFiles Sync all files. (Each file present in the conf.)
bamboo.syncCustomControl Sync a Custom Control. (Opens up a choice dropdown for each control specified in the conf.)
  • All command can be run in the command palette.

Token Refresh + Cache

  • Bamboo can use the previously cached token to speed up initial load times.
  • Add the file: <vscode-workspace>/bamboo_tokens/tokenCache.json and then restart VS Code.

Extension Settings

Property Type Default Description
bamboo.general.messageVerbosity string "low" Set the verbosity level of how many messages are displayed.
bamboo.general.listSolutionComponentsOnStartup boolean false When the extension is loaded, list all supported solution components in the currently selected solution in a tree view.
bamboo.webResource.publishAfterSync boolean true When syncing a web resource, publish after a successful upload.
bamboo.customControl.publishAfterSync boolean true When syncing a custom control solution, publish after a successful upload.

Feature List

  • [✅] Upload / create web resources
  • [✅] List Web Resources in tree view
  • [✅] List Custom Controls in tree view
  • [✅] Upload Custom Controls via Solution Import
  • [❌] Upload Custom Controls via PAC or individual import
  • [❌] Automatically add custom controls to solution
  • [❌] Manage upload / sync from context of tree view
  • [❌] Sync data from Power Apps to local files
  • [❌] Plugin support

License

Distributed under the MIT License. See LICENSE for more information.

Contact

  • Open an Issue
  • Project Link

Contributing

  • This project is intended to benefit the Power Platform community as well as Root16's internal developers.
  • Contributions are most welcome.
  • But, issues, fixes and feature requests are not guaranteed.
  • Use at your own risk: This software is provided "as is," without warranty of any kind, express or implied. Use it at your own discretion and responsibility.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft