Coder Social home page Coder Social logo

projectkudu / azureresourceexplorer Goto Github PK

View Code? Open in Web Editor NEW
197.0 197.0 76.0 4 MB

Azure Resource Explorer - a site to explore and manage your ARM resources in style

Home Page: https://resources.azure.com

License: Apache License 2.0

C# 34.49% JavaScript 11.27% CSS 3.13% TypeScript 45.95% HTML 3.88% PowerShell 0.60% Batchfile 0.67% ASP.NET 0.02%

azureresourceexplorer's People

Contributors

ahmelsayed avatar bala16 avatar balag0 avatar bokobza avatar davidebbo avatar ericsten-msft avatar gbowerman avatar gsacavdm avatar jijohn14 avatar johndowns avatar kheiakiyama avatar linmeng08 avatar lukeslev avatar m0ns1gn0r avatar msabansal avatar ryanbormsft avatar saguiitay avatar shobak101 avatar shuyanwork avatar snobu avatar stuartleeks avatar suwatch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azureresourceexplorer's Issues

Permalink is broken when path has a space

e.g. the ARM path is:

https://management.azure.com/subscriptions/{sub}/resourceGroups/Default-Web-WestUS/providers/Microsoft.Insights/alertrules/CPUHigh%20TmpCloudDeploy?api-version=2014-04

The Explorer browser path is:

https://{explorer domain}/manage/subscriptions/{sub}/resourceGroups/Default-Web-WestUS/providers/Microsoft.Insights/alertrules/CPUHigh%2520TmpCloudDeploy

But trying to request this ails with a 404. It looks like the encoded space is confusing it.

Use /resources call to detect and filter API shape per resource group

Calling /subscriptions/{sub}/resources?api-version=2014-04-01 returns a list of all registered resources in the sub. e.g. entries look like:

/subscriptions/{sub}/resourceGroups/Default-Web-NorthEurope/providers/microsoft.insights/components/MvcApp
/subscriptions/{sub}/resourceGroups/Default-Web-NorthEurope/providers/Microsoft.Web/serverFarms/DefaultServerFarm
/subscriptions/{sub}/resourceGroups/Default-Web-NorthEurope/providers/Microsoft.Web/sites/MySite

This can be used as follows:

  • the first time a subscription node is expanded, we make a request to the server, which gets the resource list for that sub, and pre-processes it into the following data structure:
    /subscriptions/{sub}/resourceGroups/Default-Web-NorthEurope: {
        "microsoft.insights": [
            "components"
        ],
        "Microsoft.Web": [
            "serverFarms",
            "sites"
        ]
    }

Then in the UI, when a specific RG is expanded, we use this data to populate the list of providers, instead of the 'global' list.

Note that in addition to this, we'll need to query the list of registered resource types so that we can get the correct API version. That part can be done as part of the global metadata on the first request.

Provide status URL for long running operations

When doing a long-running operation like resourceGroups/X/providers/Microsoft.Web/sites/Y/slots/Z/slotsswap that has a x-ms-request-id, it'd be nice to automatically have the route to get its current status

Add support for $expand

e.g. VMs support:

/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{mv}?api-version=2015-05-01-preview&$expand=instanceView

expand=instanceView means include the optional instanceView property in the response payload.

Potentially, explorer could turn that into a checkbox that turns on or off expand=instanceView in the path.

Support showing what the code would look like in various platforms

e.g. you make a PUT call, and some pane shows you exactly what the code would look like in C# or Java (or whatever language we have SDKs for). Possibly even PowerShell using the low level CmdLets (high level would be hard as there is no metadata for the flags, ...).

ARMExplorer is broken in IE

Totally busted. Like the templates are not expanding, and it's displaying things like {{ treeControl.get_selected_branch().label }}.

Make the editor itself scrollable rather than the entire right section

Currently if the content in the text editor is long, the whole right part of the page scrolls. this is happening because I am setting the editor maxLines to Infinity.

Issues with that:

  • Performance: ace ends up rendering the whole document rather than what's currently visible, which may affect large documents load time and general page responsiveness
  • keyboard controls (arrows, Home, End, etc) don't work because the editor doesn't know what's visible and what's not.
  • the tabs section at the top disappears when you scroll

Benefits:

  • when you scroll the whole right section, you get a bigger editor area.

The alternative is to have the editor itself scrollable, that pretty much the opposite of what's above.

Thoughts?

Read Only Mode

Support setting the whole portal in a ReadOnlyMode where no PUT, POST, or DELETE operations are allowed.

Storage Account /services request fails

Retrieve a storage account, i.e., /resourceGroups/my-group/providers/Microsoft.ClassicStorage/storageAccounts/mystorage, works fine. Trying to drill down into the services, i.e., /resourceGroups/my-group/providers/Microsoft.ClassicStorage/storageAccounts/mystorage/services, spins forever. Fiddler shows a 400 Bad Request coming back.

Explorer uses the wrong path for database GET

So it gets to the DB list GET and that works fine:

https://management.azure.com/subscriptions/{sub}/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/qfhzpobzl2/databases?api-version=2014-04-01

returns

{
  "value": [
    {
      "id": "/subscriptions/{sub}/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/qfhzpobzl2/databases/master",
      "name": "master",
      "type": "Microsoft.Sql/servers/databases",
      etc...

But when I click on a specific DB, it gets really confused and queries this path:

https://management.azure.com/subscriptions/{sub}/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/master/databases/qfhzpobzl2?api-version=2014-04-01

Notice how it has /servers/master/databases/qfhzpobzl2, reversing the server name and db name! The ID that got returned from the list GET is actually correct.

Confirm on Delete

Make sure to confirm on delete. Also special case deleting a resourceGroup to indicate that it might contain more resources than currently shown in ARMExplorer

Strange error after leaving the site up for many hours

All requests fail with a variant of this:

{
    "data": "",
    "status": 0,
    "config": {
        "method": "GET",
        "transformRequest": [
            null
        ],
        "transformResponse": [
            null
        ],
        "url": "api/subscriptions/9033bcf4-c3c2-4f82-9e98-1cc531f1a8a8/resourceGroups",
        "headers": {
            "Accept": "application/json, text/plain, */*"
        }
    },
    "statusText": ""
}

I'm guessing the token needs a refresh or something like that. Not a huge deal, as refreshing page fixes it.

Support AD directory in path

e.g. it could support https://resources.azure.com/microsoft.com/subscriptions/etc... to make the directory explicit.

Ability to log-out

I have 2 subscriptions under 2 different live id, having a log-out button would help switch between accounts without having to open in-private browsers etc...

Copy to clipboard button for those text areas

Often time I need to copy content and paste somewhere else, it is not easy to do so. Ctrl-A doesn't work as I want - it selects everything. If we could support Ctrl-A, Ctrl-C and Ctrl-V, that would do too.

Searching after clicking on 'Show All' doesn't work

I think it's because after clicking on 'show all', we end up in a state where no node is selected.
We can either make sure 'show all' select a node after refreshing the tree or make search handle that condition. I prefer the former.

Support explicit Edit mode

To make things a bit less confusing, it could work like this:

  • when doing a GET, to get a readonly pane that has exactly what came back from the request
  • to make changes, you click a button to go into 'edit mode', at which point we yank the readonly props, and shows the 'ghost' entries
  • when we don't have spec metadata, the edit mode would just be what came back from GET, and you're on your own (best we can do)

Wrong node can get removed from tree

Steps:

  • create two resources groups, rg1 and rg2 (not from Explorer; I used ARMClient)
  • Go to rg1 and click delete
  • Without letting it complete, click on rg2 in the tree

Result: when the delete completes, rg2 gets yanked from tree instead of rg1. Closing and reopening resourceGroups node restores things.

Seems it assumes that whatever node you're on when the deletion completes is the one that was deleted, which is not always the case.

Add better support for large collections

Today, if a resource group contains thousands of sites, the UI will not behave well. We should find a way to handle this, e.g. by only showing the first 200 items by default.

Paging support in the underlying API can play a part there, though it's not yet implemented for Websites.

Ability to show all providers

If I have a RG with only websites in it, I cant browse to say the "clasic.storage" RP to create a new storage resource within that RG.

This limits discoverability of features/functionality

Tab preservation causes unwanted behavior after deleting an object

Steps:

  • click on a Resource Group
  • Go to the second tab and click Delete

Result: you're still looking at the Delete button for the RG you just asked to delete, so it feels like something went wrong.

Wondering if trying to preserve tab is more trouble than it's worth...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.