Local Charm Support

Registered by Richard Harding


The Juju Gui will be able to deploy a user's local charm into an environment.


User's often have charms that are not able to be pulled from the charm store. These could be because they are private, in development, or aimed for an environment without internet access to the charm store. Users should be able to deploy the charms into any environment they have access to via the Gui as they can with the Juju cli.

Blueprint information

Richard Harding
Series goal:
Accepted for 14.05
Good progress
Milestone target:
Started by
Richard Harding

Related branches



[User Stories]

- A charm developer wants to test his unpublished charm against real environments on several clouds. He brings these environments up and drags and drops a zip of his charm into a Gui service running on each. He then uses the Gui to add other services, test hooks, and verify that the charm behaves correctly.
- IS forks a charm from the store to add IS-specific hook support. The forks can be deployed and updated via the Gui using a drag-n-drop.
- IS wants to use a bundle with a forked charm. They should be able to use the gui to PUT the charm into the environment storage and then deploy a bundle that uses that charm without any issue.


- We need to coordinate with core on the api for putting a charm into the system.
- We need a method to extract information from juju based on contents from the local charm. This is currently an expensive operation involving fetching from the environment object store.
- For best usage dragging the charm folder should be supported. This depends on experimenting with JS based zip tools to enable us to zip/PUT the zip up to core.


Work Items

Work items:
[yellow] add support in Gui api for PUT charm: DONE
[yellow] add support for dropping charm zip on canvas: DONE
[yellow] add support for dropping charm folder on canvas: INPROGRESS
[yellow] add support to the sandbox backend for local charm deploys: DONE
[yellow] deal with series selection when dropping a local charm: DONE

This blueprint contains Public information 
Everyone can see this information.