Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
{
"name": "azure-storage",
"description": "Azure Storage canvas — browse blobs and containers, bulk transfer with live progress, filter with aggregate statistics, mint and open SAS links, preview blobs, and plan account to account copies, all agent-drivable on one live surface.",
"version": "0.3.0",
"version": "0.3.2",
"source": "canvases/azure-storage"
},
{
Expand Down
2 changes: 1 addition & 1 deletion canvases/azure-storage/.github/plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "azure-storage",
"version": "0.3.0",
"version": "0.3.2",
"description": "Azure Storage canvas — browse blobs and containers, bulk transfer with live progress, filter with aggregate statistics, mint and open SAS links, preview blobs, and plan account to account copies, all agent-drivable on one live surface.",
"extensions": {
"com.github.copilot": {
Expand Down
118 changes: 59 additions & 59 deletions canvases/azure-storage/README.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,59 @@
# Azure Storage canvas
Browse Azure Storage and operate it on one live surface that you and Copilot share.
## Install
In GitHub Copilot, open **Customize → Plugins → marketplace gear**, add
`microsoft/azure-dev-tools` (marketplace ID `azure-dev-tools`), and install
`azure-storage` when listed. The full plugin includes the canvas and
its opening skill.
For canvas-only installation, add the [Azure Storage canvas URL](https://github.com/microsoft/azure-dev-tools/tree/azure-storage-latest/canvases/azure-storage/com.github.copilot/extensions/azure-storage)
under **Customize → Canvases → +**. This does not install the opening skill;
open **Azure Storage** from your installed canvases.
The [latest customer README](https://github.com/microsoft/azure-dev-tools/blob/azure-storage-latest/canvases/azure-storage/README.md)
contains the same setup instructions. Use these paths only when published;
if neither is available, report that rather than substituting a source folder.
## Quickstart
1. With the full plugin installed, ask Copilot: **"Open Azure Storage canvas."**
For a canvas-only installation, open **Azure Storage** from installed canvases.
2. Click **Select subscriptions** in **Storage Explorer**, choose the
subscriptions you intend to browse, and apply the selection.
3. Expand a subscription and storage account in the tree, then open a blob
container to see its blobs.
4. Use **Filter** to inspect statistics, or type **"What is taking up the most
space?"** in the canvas question box. Browsing and filtering do not modify data.
## What it does
- Browse storage accounts, blob containers, and blobs with sizes, tiers, and timestamps.
- Filter a container and compute aggregate statistics (totals, size histogram, by type, by tier, by extension, top largest).
- Bulk download selected or filtered blobs with a live progress bar and a per file pass or fail summary.
- Preview a blob inline and ask Copilot to explain the file or the statistics on the canvas.
- Open a container SAS link with no sign in, list its blobs, and download them read only.
- Plan an account to account copy, detect name conflicts, and get the exact `azcopy` command without moving any data.
## How it is driven
Copilot can operate the same controls you see. Ask it to open an account, open a container, filter blobs, or download a set, and it drives the canvas live while you watch and can take over at any time.
## Requirements
Live mode uses the Azure CLI and your existing `az login`. The canvas reads storage with your own sign in and never starts a sign in for you. Every mutating action runs only from an explicit action on the canvas.
## Troubleshooting
- **Canvas unavailable:** check that the plugin is enabled, reload extensions,
fully quit and reopen GitHub Copilot, then retry in a fresh chat.
- **No accounts or access denied:** use **Refresh subscriptions**, confirm the
intended subscription selection, and check your Azure CLI sign-in and storage
permissions. The canvas does not sign in or grant access for you.
- **SAS link rejected:** check its expiry and read/list permissions. Anyone
holding a valid SAS can use its granted access; do not paste it into public
issues or logs.
- **Transfer plan only:** account-to-account copies stop at an `azcopy`
command. Install AzCopy separately to run that command yourself.
# Azure Storage canvas

Browse Azure Storage and operate it on one live surface that you and Copilot share.

## Install

In GitHub Copilot, open **Customize → Plugins → marketplace gear**, add
`microsoft/azure-dev-tools` (marketplace ID `azure-dev-tools`), and install
`azure-storage` when listed. The full plugin includes the canvas and
its opening skill.

For canvas-only installation, add the [Azure Storage canvas URL](https://github.com/microsoft/azure-dev-tools/tree/azure-storage-latest/canvases/azure-storage/com.github.copilot/extensions/azure-storage)
under **Customize → Canvases → +**. This does not install the opening skill;
open **Azure Storage** from your installed canvases.

The [latest customer README](https://github.com/microsoft/azure-dev-tools/blob/azure-storage-latest/canvases/azure-storage/README.md)
contains the same setup instructions. Use these paths only when published;
if neither is available, report that rather than substituting a source folder.

## Quickstart

1. With the full plugin installed, ask Copilot: **"Open Azure Storage canvas."**
For a canvas-only installation, open **Azure Storage** from installed canvases.
2. Click **Select subscriptions** in **Storage Explorer**, choose the
subscriptions you intend to browse, and apply the selection.
3. Expand a subscription and storage account in the tree, then open a blob
container to see its blobs.
4. Use **Filter** to inspect statistics, or type **"What is taking up the most
space?"** in the canvas question box. Browsing and filtering do not modify data.

## What it does

- Browse storage accounts, blob containers, and blobs with sizes, tiers, and timestamps.
- Filter a container and compute aggregate statistics (totals, size histogram, by type, by tier, by extension, top largest).
- Bulk download selected or filtered blobs with a live progress bar and a per file pass or fail summary.
- Preview a blob inline and ask Copilot to explain the file or the statistics on the canvas.
- Open a container SAS link with no sign in, list its blobs, and download them read only.
- Plan an account to account copy, detect name conflicts, and get the exact `azcopy` command without moving any data.

## How it is driven

Copilot can operate the same controls you see. Ask it to open an account, open a container, filter blobs, or download a set, and it drives the canvas live while you watch and can take over at any time.

## Requirements

Live mode uses the Azure CLI and your existing `az login`. The canvas reads storage with your own sign in and never starts a sign in for you. Every mutating action runs only from an explicit action on the canvas.

## Troubleshooting

- **Canvas unavailable:** check that the plugin is enabled, reload extensions,
fully quit and reopen GitHub Copilot, then retry in a fresh chat.
- **No accounts or access denied:** use **Refresh subscriptions**, confirm the
intended subscription selection, and check your Azure CLI sign-in and storage
permissions. The canvas does not sign in or grant access for you.
- **SAS link rejected:** check its expiry and read/list permissions. Anyone
holding a valid SAS can use its granted access; do not paste it into public
issues or logs.
- **Transfer plan only:** account-to-account copies stop at an `azcopy`
command. Install AzCopy separately to run that command yourself.
22 changes: 11 additions & 11 deletions canvases/azure-storage/SHA256SUMS
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
0dd923a312795d762d9853a0e0f715d1aed49e281604b635cfe4ada995131c12 skills/azure-storage/SKILL.md
1352b0a2e44313483df3622b0e8df403038a1e54995137ca3cf1ca8ddfcf6274 com.github.copilot/extensions/azure-storage/extension.mjs
2821b05b200f512e61b7901e6154aab559f38ecb3a1d1e740788f3790c2c685a checksums.json
469f95fb802bf3811935ee552234b42ec1f5bf14dfa9fafafc8ff512bdfd3789 com.github.copilot/extensions/azure-storage/studio-package.json
4bf8866501ff3a135f4d5c1cb4b7f28a54c431ec54061bffdb1dcfca878ed2c5 package.json
5fb6a9018aecd7aede2a8937f78d81867bf00c5550f30ab071d158b3852ccaca assets/preview.png
6553c36dad97992722dd5d1320889ec09038847c31f2a04cf8756930f725c169 com.github.copilot/extensions/azure-storage/sdk/queue.mjs
88d23b0a1a226385486aade505b086c7bf524ef0bd5b031bac4df0351e8a20f6 com.github.copilot/extensions/azure-storage/sdk/file.mjs
3a262e33c0e21381bd1a4f51edb8ffaf6d823d3a1516e4ef510ca3aff95da9b0 .github/plugin/plugin.json
a813071223c79d70046ffde6cd6de1d52eecf7b7b3ce174a3e1bcb2c2ebb283d THIRD_PARTY_NOTICES.txt
afff90d7859f3bf801926ca5907c897f36166a437c1948ac4aa6d32bf8381e30 release.json
c8b84a02d3954378dff3b3a90e3444c71cda4ec09b6037f1d9a4388e0fc5ac8a .github/plugin/plugin.json
cf4b43961f200d9d73f1158aa28b628863274d33e66f53457afa7f6a16562202 com.github.copilot/extensions/azure-storage/sdk/tables.mjs
5fb6a9018aecd7aede2a8937f78d81867bf00c5550f30ab071d158b3852ccaca assets/preview.png
122366309ceaa49cae3a1fad71798502bb0587e31ad50e1746ad8af8e7608a77 checksums.json
45fcd18ae09de9b5542e7a113556482105da42419b1c603fcc69ace3be1a55b4 com.github.copilot/extensions/azure-storage/extension.mjs
f7d102239138f46038f9fbbc576d6a34e2f03370f27c282dc7b59dbe470f791d com.github.copilot/extensions/azure-storage/sdk/blob.mjs
88d23b0a1a226385486aade505b086c7bf524ef0bd5b031bac4df0351e8a20f6 com.github.copilot/extensions/azure-storage/sdk/file.mjs
fa0526b9488b0e797bfa79044b632edb53483e9e2dc12fe672d093bfb9ace670 com.github.copilot/extensions/azure-storage/sdk/identity.mjs
6553c36dad97992722dd5d1320889ec09038847c31f2a04cf8756930f725c169 com.github.copilot/extensions/azure-storage/sdk/queue.mjs
cf4b43961f200d9d73f1158aa28b628863274d33e66f53457afa7f6a16562202 com.github.copilot/extensions/azure-storage/sdk/tables.mjs
5520dc6cc7535a61cae0fe0c5764746837e96ecc5a431b360deca6d2534d0f3f com.github.copilot/extensions/azure-storage/studio-package.json
be4affe6bd79ceb663389d03dc47fc1e55a8223d7075b370dc0f78853825faaf package.json
e534abc17ed846674eeb89b13b1bf1da5efa3aad6e35fbc0fa9454b12eec118b release.json
27a2fce06a96abfd4a76405a78ff80b3be2cacf50f9dd4bde49649cfea84942f skills/azure-storage/SKILL.md
12 changes: 6 additions & 6 deletions canvases/azure-storage/checksums.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
".github/plugin/plugin.json": "c8b84a02d3954378dff3b3a90e3444c71cda4ec09b6037f1d9a4388e0fc5ac8a",
".github/plugin/plugin.json": "3a262e33c0e21381bd1a4f51edb8ffaf6d823d3a1516e4ef510ca3aff95da9b0",
"assets/preview.png": "5fb6a9018aecd7aede2a8937f78d81867bf00c5550f30ab071d158b3852ccaca",
"com.github.copilot/extensions/azure-storage/extension.mjs": "1352b0a2e44313483df3622b0e8df403038a1e54995137ca3cf1ca8ddfcf6274",
"com.github.copilot/extensions/azure-storage/extension.mjs": "45fcd18ae09de9b5542e7a113556482105da42419b1c603fcc69ace3be1a55b4",
"com.github.copilot/extensions/azure-storage/sdk/blob.mjs": "f7d102239138f46038f9fbbc576d6a34e2f03370f27c282dc7b59dbe470f791d",
"com.github.copilot/extensions/azure-storage/sdk/file.mjs": "88d23b0a1a226385486aade505b086c7bf524ef0bd5b031bac4df0351e8a20f6",
"com.github.copilot/extensions/azure-storage/sdk/identity.mjs": "fa0526b9488b0e797bfa79044b632edb53483e9e2dc12fe672d093bfb9ace670",
"com.github.copilot/extensions/azure-storage/sdk/queue.mjs": "6553c36dad97992722dd5d1320889ec09038847c31f2a04cf8756930f725c169",
"com.github.copilot/extensions/azure-storage/sdk/tables.mjs": "cf4b43961f200d9d73f1158aa28b628863274d33e66f53457afa7f6a16562202",
"com.github.copilot/extensions/azure-storage/studio-package.json": "469f95fb802bf3811935ee552234b42ec1f5bf14dfa9fafafc8ff512bdfd3789",
"package.json": "4bf8866501ff3a135f4d5c1cb4b7f28a54c431ec54061bffdb1dcfca878ed2c5",
"release.json": "afff90d7859f3bf801926ca5907c897f36166a437c1948ac4aa6d32bf8381e30",
"skills/azure-storage/SKILL.md": "0dd923a312795d762d9853a0e0f715d1aed49e281604b635cfe4ada995131c12",
"com.github.copilot/extensions/azure-storage/studio-package.json": "5520dc6cc7535a61cae0fe0c5764746837e96ecc5a431b360deca6d2534d0f3f",
"package.json": "be4affe6bd79ceb663389d03dc47fc1e55a8223d7075b370dc0f78853825faaf",
"release.json": "e534abc17ed846674eeb89b13b1bf1da5efa3aad6e35fbc0fa9454b12eec118b",
"skills/azure-storage/SKILL.md": "27a2fce06a96abfd4a76405a78ff80b3be2cacf50f9dd4bde49649cfea84942f",
"THIRD_PARTY_NOTICES.txt": "a813071223c79d70046ffde6cd6de1d52eecf7b7b3ce174a3e1bcb2c2ebb283d"
}
Loading