Skip to content
Closed
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.1",
"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.1",
"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
ce386eb2eed22b96961a5d84453285a13c3c27a1d535ad806cd540d8ae6ff845 .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
59f4a7f7a363ccc61864e0a158ed3fe6b8d0b84107633aa49a87dc4a2ca7b9d2 checksums.json
a932c680060911e4abf9751658a6143e7ea170e3d5a234f7de2891dd149b7f14 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
b4f7501b703ead64e3bbe58b9602ddb3599ace1a418625c3f11d52f2a5c1c69c com.github.copilot/extensions/azure-storage/studio-package.json
71dec6a1aa1da4d3e06ee3cd4ffd74d83786b96b6266b0a18ec79abd76007fd2 package.json
9b6db56a64f1ff210541311321109c54fc22d957e0559f9b839a91515efab153 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": "ce386eb2eed22b96961a5d84453285a13c3c27a1d535ad806cd540d8ae6ff845",
"assets/preview.png": "5fb6a9018aecd7aede2a8937f78d81867bf00c5550f30ab071d158b3852ccaca",
"com.github.copilot/extensions/azure-storage/extension.mjs": "1352b0a2e44313483df3622b0e8df403038a1e54995137ca3cf1ca8ddfcf6274",
"com.github.copilot/extensions/azure-storage/extension.mjs": "a932c680060911e4abf9751658a6143e7ea170e3d5a234f7de2891dd149b7f14",
"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": "b4f7501b703ead64e3bbe58b9602ddb3599ace1a418625c3f11d52f2a5c1c69c",
"package.json": "71dec6a1aa1da4d3e06ee3cd4ffd74d83786b96b6266b0a18ec79abd76007fd2",
"release.json": "9b6db56a64f1ff210541311321109c54fc22d957e0559f9b839a91515efab153",
"skills/azure-storage/SKILL.md": "27a2fce06a96abfd4a76405a78ff80b3be2cacf50f9dd4bde49649cfea84942f",
"THIRD_PARTY_NOTICES.txt": "a813071223c79d70046ffde6cd6de1d52eecf7b7b3ce174a3e1bcb2c2ebb283d"
}
Loading